public override async Task <IActionResult> Create([FromBody] Api.Models.InstanceUser model, CancellationToken cancellationToken) { var test = StandardModelChecks(model); if (test != null) { return(test); } var dbUser = new Models.InstanceUser { ByondRights = model.ByondRights ?? ByondRights.None, ChatBotRights = model.ChatBotRights ?? ChatBotRights.None, ConfigurationRights = model.ConfigurationRights ?? ConfigurationRights.None, DreamDaemonRights = model.DreamDaemonRights ?? DreamDaemonRights.None, DreamMakerRights = model.DreamMakerRights ?? DreamMakerRights.None, RepositoryRights = model.RepositoryRights ?? RepositoryRights.None, InstanceUserRights = model.InstanceUserRights ?? InstanceUserRights.None, UserId = model.UserId, InstanceId = Instance.Id }; DatabaseContext.InstanceUsers.Add(dbUser); await DatabaseContext.Save(cancellationToken).ConfigureAwait(false); return(StatusCode((int)HttpStatusCode.Created, dbUser.ToApi())); }
public async Task <IActionResult> Create([FromBody] Api.Models.InstanceUser model, CancellationToken cancellationToken) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var userCanonicalName = await DatabaseContext .Users .AsQueryable() .Where(x => x.Id == model.UserId) .Select(x => x.CanonicalName) .FirstOrDefaultAsync(cancellationToken) .ConfigureAwait(false); if (userCanonicalName == default) { return(BadRequest(new ErrorMessage(ErrorCode.ModelValidationFailure))); } if (userCanonicalName == Models.User.CanonicalizeName(Models.User.TgsSystemUserName)) { return(Forbid()); } var dbUser = new Models.InstanceUser { ByondRights = RightsHelper.Clamp(model.ByondRights ?? ByondRights.None), ChatBotRights = RightsHelper.Clamp(model.ChatBotRights ?? ChatBotRights.None), ConfigurationRights = RightsHelper.Clamp(model.ConfigurationRights ?? ConfigurationRights.None), DreamDaemonRights = RightsHelper.Clamp(model.DreamDaemonRights ?? DreamDaemonRights.None), DreamMakerRights = RightsHelper.Clamp(model.DreamMakerRights ?? DreamMakerRights.None), RepositoryRights = RightsHelper.Clamp(model.RepositoryRights ?? RepositoryRights.None), InstanceUserRights = RightsHelper.Clamp(model.InstanceUserRights ?? InstanceUserRights.None), UserId = model.UserId, InstanceId = Instance.Id }; DatabaseContext.InstanceUsers.Add(dbUser); await DatabaseContext.Save(cancellationToken).ConfigureAwait(false); return(Created(dbUser.ToApi())); }
Models.InstanceUser InstanceAdminUser(Models.InstanceUser userToModify) { if (userToModify == null) { userToModify = new Models.InstanceUser() { UserId = AuthenticationContext.User.Id.Value } } ; userToModify.ByondRights = RightsHelper.AllRights <ByondRights>(); userToModify.ChatBotRights = RightsHelper.AllRights <ChatBotRights>(); userToModify.ConfigurationRights = RightsHelper.AllRights <ConfigurationRights>(); userToModify.DreamDaemonRights = RightsHelper.AllRights <DreamDaemonRights>(); userToModify.DreamMakerRights = RightsHelper.AllRights <DreamMakerRights>(); userToModify.RepositoryRights = RightsHelper.AllRights <RepositoryRights>(); userToModify.InstanceUserRights = RightsHelper.AllRights <InstanceUserRights>(); return(userToModify); }
public async Task <IActionResult> Create([FromBody] Api.Models.InstanceUser model, CancellationToken cancellationToken) { // Don't check the result as how can a new user have an ID StandardModelChecks(model); var dbUser = new Models.InstanceUser { ByondRights = RightsHelper.Clamp(model.ByondRights ?? ByondRights.None), ChatBotRights = RightsHelper.Clamp(model.ChatBotRights ?? ChatBotRights.None), ConfigurationRights = RightsHelper.Clamp(model.ConfigurationRights ?? ConfigurationRights.None), DreamDaemonRights = RightsHelper.Clamp(model.DreamDaemonRights ?? DreamDaemonRights.None), DreamMakerRights = RightsHelper.Clamp(model.DreamMakerRights ?? DreamMakerRights.None), RepositoryRights = RightsHelper.Clamp(model.RepositoryRights ?? RepositoryRights.None), InstanceUserRights = RightsHelper.Clamp(model.InstanceUserRights ?? InstanceUserRights.None), UserId = model.UserId, InstanceId = Instance.Id }; DatabaseContext.InstanceUsers.Add(dbUser); await DatabaseContext.Save(cancellationToken).ConfigureAwait(false); return(StatusCode((int)HttpStatusCode.Created, dbUser.ToApi())); }