blob: dc5768a079c1e41f211f135517331546dd47f1d3 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default class UserMenu {
static $inject = ['$rootScope', 'IgniteUserbar', 'AclService', '$state', 'gettingStarted'];
constructor(
private $root: ng.IRootScopeService,
private IgniteUserbar: any,
private AclService: any,
private $state: any,
private gettingStarted: any
) {}
$onInit() {
this.items = [
{text: 'Profile', sref: 'base.settings.profile'},
{text: 'Getting started', click: '$ctrl.gettingStarted.tryShow(true)'}
];
const _rebuildSettings = () => {
this.items.splice(2);
if (this.AclService.can('admin_page'))
this.items.push({text: 'Admin panel', sref: 'base.settings.admin'});
this.items.push(...this.IgniteUserbar);
if (this.AclService.can('logout'))
this.items.push({text: 'Log out', sref: 'logout'});
};
if (this.$root.user)
_rebuildSettings(null, this.$root.user);
this.$root.$on('user', _rebuildSettings);
}
get user() {
return this.$root.user;
}
}