public async Task <ActionResult <SearchResult <Collection> > > GetCollectionsAsync(string id) { if (UserId != id && !User.HasPermissions(UserPermissions.ManageUsers)) { return(ResultUtilities.Forbidden("Insufficient permissions to see user collections.")); } var result = await _collections.GetUserCollectionsAsync(id); return(result.Project(c => c.Convert(_services))); }
public async Task <ActionResult <Collection> > GetSpecialCollectionAsync(string id, ObjectType type, SpecialCollection collection) { if (UserId != id && !User.HasPermissions(UserPermissions.ManageUsers)) { return(ResultUtilities.Forbidden("Insufficient permissions to see user collections.")); } var result = await _collections.GetOrCreateUserSpecialCollectionAsync(id, type, collection); if (!result.TryPickT0(out var coll, out _)) { return(ResultUtilities.NotFound(id)); } return(coll.Convert(_services)); }
public async Task <ActionResult <User> > UpdateAsync(string id, UserBase model, [FromQuery] string reason = null) { if (UserId != id && !User.HasPermissions(UserPermissions.ManageUsers)) { return(ResultUtilities.Forbidden("Insufficient permissions to update this user.")); } var result = await _users.UpdateAsync(id, model, new SnapshotArgs { Committer = User, Event = SnapshotEvent.AfterModification, Reason = reason, Source = SnapshotSource.User }); if (!result.TryPickT0(out var user, out _)) { return(ResultUtilities.NotFound(id)); } return(ProcessUser(user.Convert(_services))); }