Beispiel #1
0
        public ChangePermissionsResult SaveRole(RoleModel role)
        {
            if (role == null)
                return new ChangePermissionsResult { ErrorMessage = Messages.RoleNotFound };
            if (Db.IsUniqueRoleName(role.RoleId, role.Name))
                return new ChangePermissionsResult { ErrorMessage = Messages.RoleNameNotUnique };

            using (var transaction = new TransactionScope())
            {
                var roleDb = new Role
                    {
                        InstanceId = Db.InstanceId.Value,
                        RoleId = role.RoleId,
                        RoleName = role.Name,
                        RoleType = role.Type
                    };
                Db.Save(roleDb);
                var componentsToRole = Db.GetComponentRoles(role.Components, roleDb.RoleId);
                var isPermissionChanged = false;
                foreach (var ctr in componentsToRole)
                {
                    if (ctr.ComponentRoleId != 0 && ctr.AccessLevel == AccessLevel.None)
                    {
                        Db.Delete(ctr);
                        if (!isPermissionChanged) isPermissionChanged = true;
                    }
                    else if ((int)ctr.AccessLevel > (int)AccessLevel.None)
                    {
                        Db.Save(ctr);
                        if (!isPermissionChanged) isPermissionChanged = true;
                    }
                }
                transaction.Complete();
                return new ChangePermissionsResult { EntityId = roleDb.RoleId, IsPermissionsChanged = isPermissionChanged };
            }
        }
 private int InsertRoleAndAccess(int instanceId, SystemRoles systemRole, IEnumerable components, AccessLevel accessLevel)
 {
     var role = new Role
     {
         InstanceId = instanceId,
         RoleType = systemRole,
         RoleName = systemRole.GetDescription()
     };
     Db.Save(role);
     foreach (var component in components)
     {
         if ((int)component == (int)AccessComponent.None)
             continue;
         var componentsToRole = new ComponentRole
         {
             InstanceId = instanceId,
             AccessLevel = accessLevel,
             ComponentId = (int)component,
             RoleId = role.RoleId
         };
         Db.Save(componentsToRole);
     }
     return role.RoleId;
 }
Beispiel #3
0
 public RoleModel(Role role)
 {
     RoleId = role.RoleId;
     Name = role.RoleName;
     Type = role.RoleType;
 }