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