public async Task <IActionResult> FindAsync([FromRoute] Guid roleId) { Role role; if (this.UserHasScope(RoleScopes.Admin)) { role = await _findRoleService.FindAsync(roleId); } else { role = await _findRoleService.FindAsync(roleId, this.GetUserId()); } var found = RoleResponseDto.FromRole(role); return(Ok(found)); }
public async Task <IActionResult> CreateAsync([FromBody] RoleRequestDto dto) { Role role; if (this.UserHasScope(RoleScopes.Admin)) { role = await _addRoleService.AddAsync(dto.ToRole()); } else { role = await _addRoleService.AddAsync(dto.ToRole(), this.GetUserId()); } var created = RoleResponseDto.FromRole(role); return(Created($"{_siteSettings.ListenUri}/roles/{role.RoleId}", created)); }
public async Task <IActionResult> UpdateAsync([FromRoute] Guid roleId, [FromBody] RoleRequestDto dto) { Role role; if (this.UserHasScope(RoleScopes.Admin)) { role = await _updateRoleService.UpdateAsync(dto.ToRole(roleId)); } else { role = await _updateRoleService.UpdateAsync(dto.ToRole(roleId), this.GetUserId()); } var updated = RoleResponseDto.FromRole(role); return(Ok(updated)); }
public static RoleResponseDto FromRole(Role role, bool includeChildren) { var dto = new RoleResponseDto { role_id = role.RoleId, name = role.Name, description = role.Description, application_id = role.ApplicationId, created_date = role.CreatedDateTime, modified_date = role.ModifiedDateTime }; if (includeChildren) { dto.scopes = role.Scopes?.Select(s => ScopeResponseDto.FromScope(s, false)).ToList(); } return(dto); }