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)); } }
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); }