コード例 #1
0
ファイル: RoleManager.cs プロジェクト: urise/MvcRestPattern
 public MethodResult<RoleModel> GetRole(int roleId = 0)
 {
     var role = new RoleModel();
     if (roleId != 0)
     {
         var roleDb = Db.GetById<Role>(roleId);
         role.Name = roleDb.RoleName;
         role.Type = roleDb.RoleType;
         role.RoleId = roleDb.RoleId;
         role.UserNames = Db.GetUserNamesLinkedToRole(roleId);
     }
     else
     {
         roleId = Db.GetSystemRoleId(SystemRoles.Guest);
     }
     role.Components = Db.GetComponents(roleId);
     return new MethodResult<RoleModel>(role);
 }
コード例 #2
0
ファイル: RoleManager.cs プロジェクト: urise/MvcRestPattern
        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 };
            }
        }
コード例 #3
0
 public ChangePermissionsResult SaveRole(RoleModel role)
 {
     return SendPostRequest<ChangePermissionsResult, RoleModel>("saveRole", role);
 }
コード例 #4
0
 public ActionResult Update(RoleModel role)
 {
     var response = ServiceProxySingleton.Instance.SaveRole(role);
     if (response.IsNotLoggedIn()) return SessionHelper.ClearSession();
     if (response.IsError()) return Json(response);
     StoredInstanceRoles = null;
     if (response.CurrentUserPermissions != null)
     {
         SessionHelper.Permissions = response.CurrentUserPermissions;
         return Json(new { response.IsPermissionsChanged });
     }
     role.RoleId = response.EntityId;
     return View("RolePartialRow", role);
 }