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); }
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 }; } }
public ChangePermissionsResult SaveRole(RoleModel role) { return SendPostRequest<ChangePermissionsResult, RoleModel>("saveRole", role); }
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); }