示例#1
0
        public async Task <IActionResult> AddUser(string key, [FromBody] AddUserToCollectionRequest request)
        {
            try
            {
                var  userKey = _contextAccessor.UserKeyFromContext();
                bool userCanAccessCollection = await UserCanAccessCollection(userKey, key, _hiarcDatabase, AccessLevelGroup.ReadWriteOrHigher);

                if (userCanAccessCollection)
                {
                    await _hiarcDatabase.AddUserToCollection(key, request);

                    return(Ok(new Empty()));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status403Forbidden));
                }
            }
            catch (InvalidOperationException ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(StatusCodes.Status403Forbidden));
            }
            catch (Exception ex)
            {
                return(BuildErrorResponse(ex, _logger));
            }
        }
示例#2
0
        public async Task <Empty> AddUserToCollection(string collectionKey, string userKey, string accessLevel, string asUserKey = null, string bearerToken = null, bool logToConsole = true)
        {
            var request = new AddUserToCollectionRequest()
            {
                UserKey = userKey, AccessLevel = accessLevel
            };
            var result = await Put <AddUserToCollectionRequest, Empty>(request, $"collections/{collectionKey}/users", asUserKey, bearerToken);

            if (logToConsole)
            {
                Console.WriteLine($"Added User to Collection: Collection=\"{collectionKey}\", User=\"{userKey}\", AccessLevel=\"{accessLevel}\"");
            }
            ;
            return(result);
        }