public IActionResult OnPost() { if (!ModelState.IsValid) { throw new Exception("Antiforgery check failed."); } InitPage(); try { ErpRole newRole = new ErpRole(); newRole.Id = Guid.NewGuid(); newRole.Name = Name; newRole.Description = Description; new SecurityManager().SaveRole(newRole); return(Redirect(ReturnUrl)); } catch (ValidationException ex) { Validation.Message = ex.Message; Validation.Errors = ex.Errors; return(Page()); } }
public IActionResult OnPost() { if (!ModelState.IsValid) { throw new Exception("Antiforgery check failed."); } InitPage(); if (RoleRecord == null) { return(NotFound()); } try { ErpRole role = new ErpRole(); role.Id = (Guid)RoleRecord["id"]; role.Name = Name; role.Description = Description; new SecurityManager().SaveRole(role); return(Redirect(ReturnUrl)); } catch (ValidationException ex) { Validation.Message = ex.Message; Validation.Errors = ex.Errors; return(Page()); } }
public void SaveRole(ErpRole role) { if (role == null) throw new ArgumentNullException(nameof(role)); RecordManager recMan = new RecordManager(); EntityRecord record = new EntityRecord(); var allRoles = GetAllRoles(); ErpRole existingRole = allRoles.SingleOrDefault(x => x.Id == role.Id); ValidationException valEx = new ValidationException(); if (existingRole != null) { record["id"] = role.Id; record["description"] = role.Description; if (existingRole.Name != role.Name) { record["name"] = role.Name; if (string.IsNullOrWhiteSpace(role.Name)) valEx.AddError("name", "Name is required."); else if (allRoles.Any(x => x.Name == role.Name)) valEx.AddError("name", "Role with same name already exists"); } valEx.CheckAndThrow(); var response = recMan.UpdateRecord("role", record); if (!response.Success) throw new Exception(response.Message); } else { record["id"] = role.Id; record["description"] = role.Description; record["name"] = role.Name; if (string.IsNullOrWhiteSpace(role.Name)) valEx.AddError("name", "Name is required."); else if (allRoles.Any(x => x.Name == role.Name)) valEx.AddError("name", "Role with same name already exists"); valEx.CheckAndThrow(); var response = recMan.CreateRecord("role", record); if (!response.Success) throw new Exception(response.Message); } }
public ErpRole GetHigherRole(ApplicationUser user) { IList <Claim> claims = GetUserClaims(user); var roles = claims .Where(c => c.Type == ClaimTypes.Role) .Select(c => c.Value) .ToList(); ErpRole higherRole = ErpRolesManager.GetHigherRole(roles); return(higherRole); }
public static List <ErpRole> AuthorizedRolesToCreate(this ErpRole role) { var allRoles = ErpRolesManager.GetAllRoles(); if (role.RoleName == ErpRoleNames.SuperAdmin) { return(allRoles); } var authorizedRoles = allRoles .Where(e => e.Departamento == role.Departamento && e.Nivel >= role.Nivel) .ToList(); return(authorizedRoles); }
public IActionResult OnPost() { if (!ModelState.IsValid) { throw new Exception("Antiforgery check failed."); } var initResult = Init(); if (initResult != null) { return(initResult); } if (string.IsNullOrWhiteSpace(ReturnUrl)) { ReturnUrl = "/sdk/access/role/l/list"; } try { ErpRole newRole = new ErpRole(); newRole.Id = Guid.NewGuid(); newRole.Name = Name; newRole.Description = Description; new SecurityManager().SaveRole(newRole); BeforeRender(); return(Redirect(ReturnUrl)); } catch (ValidationException ex) { Validation.Message = ex.Message; Validation.Errors = ex.Errors; BeforeRender(); return(Page()); } }