##// END OF EJS Templates
general metrics: require tags to be present
general metrics: require tags to be present

File last commit:

r28:e98235eb
r48:3c7b7fba
Show More
user.js
91 lines | 3.5 KiB | application/javascript | JavascriptLexer
project: initial commit
r0 // # Copyright (C) 2010-2016 RhodeCode GmbH
// #
// # This program is free software: you can redistribute it and/or modify
// # it under the terms of the GNU Affero General Public License, version 3
// # (only), as published by the Free Software Foundation.
// #
// # This program is distributed in the hope that it will be useful,
// # but WITHOUT ANY WARRANTY; without even the implied warranty of
// # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// # GNU General Public License for more details.
// #
// # You should have received a copy of the GNU Affero General Public License
// # along with this program. If not, see <http://www.gnu.org/licenses/>.
// #
// # This program is dual-licensed. If you wish to learn more about the
refactor: fix inconsistent naming
r28 // # AppEnlight Enterprise Edition, including its added features, Support
project: initial commit
r0 // # services, and proprietary license terms, please see
// # https://rhodecode.com/licenses/
var aeuser = angular.module('appenlight.user', []);
aeuser.factory('AeUser', ['AeConfig', function () {
var decodedAeUser = decodeEncodedJSON(window.AE.user);
console.log('decodedAeUser', decodedAeUser);
var AeUser = {
user_name: decodedAeUser.user_name || null,
id: decodedAeUser.id,
assigned_reports: decodedAeUser.assigned_reports || null,
latest_events: decodedAeUser.latest_events || null,
permissions: decodedAeUser.permissions || null,
groups: decodedAeUser.groups || null,
applications: [],
dashboards: []
};
console.log('AeUser', AeUser);
AeUser.applications_map = {};
AeUser.dashboards_map = {};
AeUser.addApplication = function (item) {
AeUser.applications.push(item);
AeUser.applications_map[item.resource_id] = item;
};
AeUser.addDashboard = function (item) {
AeUser.dashboards.push(item);
AeUser.dashboards_map[item.resource_id] = item;
};
AeUser.removeApplicationById = function (applicationId) {
AeUser.applications = _.filter(AeUser.applications, function (item) {
return item.resource_id != applicationId;
});
delete AeUser.applications_map[applicationId];
};
AeUser.removeDashboardById = function (dashboardId) {
AeUser.dashboards = _.filter(AeUser.dashboards, function (item) {
return item.resource_id != dashboardId;
});
delete AeUser.dashboards_map[dashboardId];
};
AeUser.hasAppPermission = function (perm_name) {
if (AeUser.permissions.indexOf('root_administration') !== -1) {
return true
}
return AeUser.permissions.indexOf(perm_name) !== -1;
};
AeUser.hasContextPermission = function (permName, ACLList) {
var hasPerm = false;
_.each(ACLList, function (ACL) {
// is this the right perm?
if (ACL.perm_name == permName ||
ACL.perm_name == '__all_permissions__') {
// perm for this user or a group user belongs to
if (ACL.user_name === AeUser.user_name ||
AeUser.groups.indexOf(ACL.group_name) !== -1) {
hasPerm = true
}
}
});
console.log('AeUser.hasContextPermission', permName, hasPerm);
return hasPerm;
};
_.each(decodedAeUser.applications, function (item) {
AeUser.addApplication(item);
});
_.each(decodedAeUser.dashboards, function (item) {
AeUser.addDashboard(item);
});
return AeUser;
}]);