Sha256: 6fc182d99a3a92b5e258af554c5e96851eee6e05e781f138619a4a59bf7eb12a

Contents?: true

Size: 1.61 KB

Versions: 30

Compression:

Stored size: 1.61 KB

Contents

/**
 * Copyright 2014 Red Hat, Inc.
 *
 * This software is licensed to you under the GNU General Public
 * License as published by the Free Software Foundation; either version
 * 2 of the License (GPLv2) or (at your option) any later version.
 * There is NO WARRANTY for this software, express or implied,
 * including the implied warranties of MERCHANTABILITY,
 * NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
 * have received a copy of GPLv2 along with this software; if not, see
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
 **/

/**
 * @ngdoc service
 * @name Bastion.auth:Authorization
 *
 * @requires CurrentUser
 * @requires Permissions
 *
 * @description
 *   A service for authorization related functionality.
 */
angular.module('Bastion.auth').service('Authorization', ['CurrentUser', 'Permissions', function (CurrentUser, Permissions) {

    this.permitted = function (permissionName, model) {
        var allowedTo = false;

        if (CurrentUser.admin) {
            allowedTo = true;
        } else {
            if (model && model.hasOwnProperty('permissions') && model.permissions.hasOwnProperty(permissionName)) {
                allowedTo = model.permissions[permissionName];
            } else {
                angular.forEach(Permissions, function (permission) {
                    if (permission.permission.name === permissionName) {
                        allowedTo = true;
                    }
                });
            }
        }
        return allowedTo;
    };

    this.denied = function (permissionName, model) {
        return !this.permitted(permissionName, model);
    };
}]);

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
bastion-0.3.3 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-1.0.1 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.3.2 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-1.0.0 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.3.1 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.3.0 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.2.9 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.2.8 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.2.7 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.2.6 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.1.14 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.2.5 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.2.3 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.2.2 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.2.1 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.2.0 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.1.13 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.1.12 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.1.11 app/assets/javascripts/bastion/auth/authorization.service.js
bastion-0.1.10 app/assets/javascripts/bastion/auth/authorization.service.js