Пример #1
0
        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)));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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)));
        }