Esempio n. 1
0
        public override async Task ExecuteCommandAsync(BotContext context, XanBotMember executingMember, DiscordMessage originalMessage, string[] args, string allArgs)
        {
            if (args.Length != 2)
            {
                throw new CommandException(this, "Invalid argument count! Expected a user ID and a permission level.");
            }
            else
            {
                XanBotMember member = await UserGetter.GetMemberFromDataIDStrictAsync(context.Server, args[0]);

                byte permLvl = byte.Parse(args[1]);
                if (member == null)
                {
                    throw new CommandException(this, "The specified member could not be found. Are you searching by user ID?");
                }
                if (executingMember == member)
                {
                    throw new CommandException(this, "You cannot alter your own permission level.");
                }
                if (executingMember.PermissionLevel <= permLvl)
                {
                    throw new CommandException(this, string.Format("You cannot set the permission level of user `{0}` to a permission level equal to or higher than your own.", member.FullName));
                }
                if (executingMember.PermissionLevel <= member.PermissionLevel)
                {
                    // Trying to edit the permission level of someone higher than or equal to themselves.
                    throw new CommandException(this, "You cannot edit the permission level of someone at a rank greater than or equal to your own.");
                }
                member.PermissionLevel = permLvl;
                await ResponseUtil.RespondToAsync(originalMessage, string.Format("Set the permission level of user `{0}` to `{1}`", member.FullName, permLvl.ToString()));
            }
        }
        private async Task SetPermissionInContext(BotContext context, string[] args)
        {
            XanBotMember person = await UserGetter.GetMemberFromDataIDStrictAsync(context.Server, args[0]);

            if (person == null)
            {
                throw new ArchonCommandException(this, "Invalid user.");
            }
            if (person == context.Bot)
            {
                throw new ArchonCommandException(this, "My permission level is immutable and cannot be lowered from 255.");
            }

            if (byte.TryParse(args[1], out byte newLvl))
            {
                person.PermissionLevel = newLvl;
            }
            else
            {
                if (decimal.TryParse(args[1], out decimal value))
                {
                    throw new ArchonCommandException(this, "Invalid permission level. The specified value is out of the acceptable range of values for a byte (0 to 255).");
                }
                else
                {
                    throw new ArchonCommandException(this, "Invalid permission level. Could not cast the input data into a byte value.");
                }
            }
        }
Esempio n. 3
0
 public AccountController(UserManager <UserModel> _userManager, IJwtFactory _jwtFactory, IOptions <JwtIssuerOptions> _jwtOptions, DbHandler _db, IHttpContextAccessor httpContextAccessor)
 {
     db          = _db;
     userGetter  = new UserGetter(db, httpContextAccessor);
     userManager = _userManager;
     jwtFactory  = _jwtFactory;
     jwtOptions  = _jwtOptions.Value;
 }
Esempio n. 4
0
 public TeachersController(AppContext dbContext, ItemManager itemManager,
                           UserManager <ApplicationUser> userManager, IMessageService messageService, UserGetter userGetter)
 {
     _context        = dbContext;
     _itemManager    = itemManager;
     _userManager    = userManager;
     _messageService = messageService;
     _userGetter     = userGetter;
 }
 public GeneralController(AppContext dbContext, ItemManager itemManager, UserGetter userGetter, UserManager <ApplicationUser> userManager, IEmailService emailService, IHostingEnvironment env, IConfiguration configuration)
 {
     _context       = dbContext;
     _itemManager   = itemManager;
     _userGetter    = userGetter;
     _userManager   = userManager;
     _emailService  = emailService;
     _hostingEnv    = env;
     _configuration = configuration;
 }
Esempio n. 6
0
        public IActionResult GetUser()
        {
            var x    = new UserGetter(userDataAccess);
            var user = x.GetUserFromClaims(HttpContext);

            return(Ok(new
            {
                username = user.Name,
                userID = user.UserID
            }));
        }
Esempio n. 7
0
        public void SerializedUserReturnedIfCorrectlySerialized()
        {
            var userGetterSerialized = new Mock <UserGetterSerialized>();

            userGetterSerialized.Setup(g => g.Get("id")).Returns(new User("id", "Full Name", "*****@*****.**"));
            var userGetterDomain = new Mock <UserGetterDomain>();
            var userGetter       = new UserGetter(userGetterSerialized.Object, userGetterDomain.Object);

            var user = userGetter.Get("id");

            Assert.Equal("id", user.UserName);
        }
Esempio n. 8
0
        private void PopulateRecieverTreeView()
        {
            bool            success = false;
            List <BllGroup> groups  = null;

            while (!success)
            {
                try
                {
                    IGroupGetter gg = new GroupGetter(serverInstance.server);
                    groups  = gg.GetAllGroups();
                    success = true;
                }
                catch
                {
                    serverInstance.ConnectToServer();
                    success = false;
                }
            }

            foreach (var group in groups)
            {
                var            node         = treeView1.Nodes.Add(group.Name);
                List <BllUser> usersByGroup = new List <BllUser>();
                success = false;
                while (!success)
                {
                    try
                    {
                        IUserGetter ug = new UserGetter(serverInstance.server);
                        usersByGroup = ug.GetUsersByGroupAndSignInDateRange(group, int.Parse(Properties.Resources.PERMISSIBLE_DATE_RANGE_IN_DAYS));
                        success      = true;
                    }
                    catch
                    {
                        serverInstance.ConnectToServer();
                        success = false;
                    }
                }
                foreach (var user in usersByGroup)
                {
                    if (user.Id != Sender.Id)
                    {
                        node.Nodes.Add(user.Fullname);
                        Users.Add(user);
                    }
                }
            }
        }
Esempio n. 9
0
        public void PlaceholderUserReturnedIfEveryhthingFails()
        {
            var userGetterSerialized = new Mock <UserGetterSerialized>();

            userGetterSerialized.Setup(g => g.Get("id")).Returns((User)null);
            var userGetterDomain = new Mock <UserGetterDomain>();

            userGetterDomain.Setup(g => g.Get("id")).Returns((User)null);
            var userGetter = new UserGetter(userGetterSerialized.Object, userGetterDomain.Object);

            var user = userGetter.Get("id");

            Assert.Equal("id", user.UserName);
            Assert.Equal("id", user.FullName);
            Assert.Equal("id@email", user.EmailAddress);
            Assert.Equal("id", user.DistinguishedName);
        }
Esempio n. 10
0
        public void UserGetterTest()
        {
            LocalUser user   = Login();
            var       status = UserGetter.GetStatus.UnknownError;
            bool      done   = false;
            User      user1  = null;

            var getter = new UserGetter(user, (_status, _user) => {
                status = _status;
                user1  = _user;
                done   = true;
            });

            getter.get(user.Username);
            while (!done)
            {
            }
            Assert.AreEqual(status, UserGetter.GetStatus.Success);
            Assert.AreEqual(user.Username, user1.Username);
        }
        private IEnumerable <BllUser> GetUserByGroups(BllGroup group)
        {
            IEnumerable <BllUser> users = null;
            bool success = false;

            while (!success)
            {
                try
                {
                    IUserGetter ug = new UserGetter(serverInstance.server);
                    users   = ug.GetUsersByGroupAndSignInDateRange(group, int.Parse(Properties.Resources.PERMISSIBLE_DATE_RANGE_IN_DAYS));
                    success = true;
                }
                catch
                {
                    serverInstance.ConnectToServer();
                    success = false;
                }
            }
            return(users);
        }
Esempio n. 12
0
        public override async Task ExecuteCommandAsync(BotContext context, XanBotMember executingMember, DiscordMessage originalMessage, string[] args, string allArgs)
        {
            if (args.Length == 0)
            {
                // User wants to get their own permissions.
                await ResponseUtil.RespondToAsync(originalMessage, string.Format("Your permission level is `{0}`", executingMember.PermissionLevel));
            }
            else if (args.Length >= 1)
            {
                try
                {
                    XanBotMember member = await UserGetter.GetMemberFromDataAsync(context.Server, allArgs);

                    if (member == null)
                    {
                        throw new CommandException(this, "The specified user is not a member of this server.");
                    }
                    await ResponseUtil.RespondToAsync(originalMessage, string.Format("The permission level of `{0}` is `{1}`", member.FullName, member.PermissionLevel));
                }
                catch (NonSingularResultException err)
                {
                    string msg = err.Message;
                    msg += "\nThe potential users are:\n";
                    foreach (XanBotMember member in err.PotentialReturnValues)
                    {
                        msg += member?.FullName + "(User GUID: " + member?.BaseUser.Id + ")\n";
                    }
                    msg += "\nYou can directly copy/paste the user's GUID into this command to get that specific user.";
                    if (msg.Length > 2000)
                    {
                        msg = err.Message + "\n\nUnfortunately, the list of potential users was too large to fit into a message.";
                    }
                    await ResponseUtil.RespondToAsync(originalMessage, msg);
                }
            }
        }
Esempio n. 13
0
 public GameController(IGameDataAccess GameDataAccess, IUserDataAccess UserDataAccess)
 {
     gameDataAccess = GameDataAccess;
     userDataAccess = UserDataAccess;
     userGetter     = new UserGetter(userDataAccess);
 }
Esempio n. 14
0
 public SubscriptionController(DbHandler _db, IHttpContextAccessor httpContextAccessor)
 {
     db         = _db;
     userGetter = new UserGetter(db, httpContextAccessor);
 }
Esempio n. 15
0
 public TransactionController(DbHandler _db, IHttpContextAccessor httpContextAccessor)
 {
     db         = _db;
     userGetter = new UserGetter(_db, httpContextAccessor);
 }
Esempio n. 16
0
        public void ProfileUpdaterTest()
        {
            LocalUser user          = Login(username: "******", password: "******");
            var       statusUpdater = UserUpdater.GetStatus.UnknownError;
            var       statusGetter  = UserGetter.GetStatus.UnknownError;
            bool      done          = false;
            User      user1         = null;
            string    firstName     = "";
            string    lastName      = "";
            var       random        = new Random();

            var updater = new UserUpdater(user, (_status, _firstName, _lastName) =>
            {
                statusUpdater = _status;
                firstName     = _firstName;
                lastName      = _lastName;
                done          = true;
            });

            var getter = new UserGetter(user, (_status, _user) => {
                statusGetter = _status;
                user1        = _user;
                done         = true;
            });

            firstName = random.Next().ToString();
            lastName  = random.Next().ToString();

            done = false;
            updater.get(firstName, lastName);

            while (!done)
            {
            }
            Assert.AreEqual(statusUpdater, UserUpdater.GetStatus.Success);
            Assert.AreNotEqual(firstName, null);
            Assert.AreNotEqual(lastName, null);

            done = false;
            getter.get(user.Username);

            while (!done)
            {
            }
            Assert.AreEqual(statusGetter, UserGetter.GetStatus.Success);
            Assert.AreEqual(user.Username, user1.Username);
            Assert.AreNotEqual(user.FirstName, user1.FirstName);
            Assert.AreNotEqual(user.LastName, user1.LastName);
            Assert.AreEqual(firstName, user1.FirstName);
            Assert.AreEqual(lastName, user1.LastName);

            done = false;
            updater.get(user.FirstName, user.LastName);

            while (!done)
            {
            }
            Assert.AreEqual(statusUpdater, UserUpdater.GetStatus.Success);
            Assert.AreNotEqual(firstName, null);
            Assert.AreNotEqual(lastName, null);

            done = false;
            getter.get(user.Username);

            while (!done)
            {
            }
            Assert.AreEqual(statusGetter, UserGetter.GetStatus.Success);
            Assert.AreEqual(user.Username, user1.Username);
            Assert.AreEqual(user.FirstName, user1.FirstName);
            Assert.AreEqual(user.LastName, user1.LastName);
        }
Esempio n. 17
0
 public ForumsController(DbHandler _db, IHttpContextAccessor httpContextAccessor)
 {
     db = _db;
     claimsPrincipal = httpContextAccessor.HttpContext.User;
     userGetter      = new UserGetter(db, httpContextAccessor);
 }
Esempio n. 18
0
 public MessagesController(AppContext dbContext, UserGetter userGetter)
 {
     _context    = dbContext;
     _userGetter = userGetter;
 }