Ejemplo n.º 1
0
        /// <summary>
        /// Authorize permission
        /// </summary>
        /// <param name="permission">Permission record</param>
        /// <param name="customer">Customer</param>
        /// <returns>true - authorized; otherwise, false</returns>
        public virtual bool Authorize(PermissionRecord permission, User user)
        {
            if (permission == null)
                return false;

            if (user == null)
                return false;

            var userRoles = user.UserRoles.Where(cr => cr.Active);
            foreach (var role in userRoles)
                foreach (var permission1 in role.PermissionRecords)
                    if (permission1.SystemName.Equals(permission.SystemName, StringComparison.InvariantCultureIgnoreCase))
                        return true;

            return false;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Updates the permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void Update(PermissionRecord permission)
        {
            Guard.IsNotNull(permission, "permission");

            permissionPecordRepository.Update(permission);

            cacheManager.RemoveByPattern(PERMISSIONS_PATTERN_KEY);
        }
Ejemplo n.º 3
0
 public virtual bool Authorize(PermissionRecord permission)
 {
     return Authorize(permission, workContext.CurrentUser);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void Install(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();
            foreach (var permission in permissions)
            {
                var permission1 = GetBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord()
                    {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category,
                    };

                    //default customer role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        var userRole = userService.GetUserRoleBySystemName(defaultPermission.UserRoleSystemName);
                        if (userRole == null)
                        {
                            //new role (save it)
                            userRole = new UserRole()
                            {
                                Name       = defaultPermission.UserRoleSystemName,
                                Active     = true,
                                SystemName = defaultPermission.UserRoleSystemName
                            };
                            userService.InsertUserRole(userRole);
                        }

                        var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                      where p.SystemName == permission1.SystemName
                                                      select p).Any();
                        var mappingExists = (from p in userRole.PermissionRecords
                                             where p.SystemName == permission1.SystemName
                                             select p).Any();
                        if (defaultMappingProvided && !mappingExists)
                        {
                            permission1.UserRoles.Add(userRole);
                        }
                    }

                    //save new permission
                    Insert(permission1);
                }
            }
        }