public virtual ResponseResource DelegatePermission(IPrincipal principal, AddDelegatedPermissionRequest request) { var member = GetGuaranteedMember(principal, request.OrganisationId); if (member.Organisation.OrganisationLeader.LeaderMemberId != member.Id) { throw new Exception("Access denied - you are not the leader of this organisation."); } var existingDelegatedPermission = member.DelegatedPermissions.FirstOrDefault( p => p.ShurahOrganisationPermission.ToString() == request.PermissionValue); if (existingDelegatedPermission == null) { return(new ResponseResource()); } var delegatedPermission = new DelegatedPermission(); delegatedPermission.ShurahOrganisationPermission = (ShurahOrganisationPermission) Enum.Parse(typeof(ShurahOrganisationPermission), request.PermissionValue); delegatedPermission.Member = member; delegatedPermission.MemberId = member.Id; _dependencies.StorageService.SetOf <DelegatedPermission>().Add(delegatedPermission); _dependencies.StorageService.SaveChanges(); return(new ResponseResource()); }
public HttpResponseMessage PostDelegatePermission(AddDelegatedPermissionRequest request) { return(Request.CreateResponse(HttpStatusCode.OK, _service.DelegatePermission(User, request))); }
public ResponseResource PostDelegatePermission([FromBody] AddDelegatedPermissionRequest request) { return(_service.DelegatePermission(User, request)); }