Exemplo n.º 1
0
 public Group GetGroup(int id)
 {
     using (var db = new UserManagementDBContext())
     {
         return(db.Groups.First(group => group.Id == id && !group.Deleted));
     }
 }
Exemplo n.º 2
0
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
        public UsersController(UserManagementDBContext context, IMapper mapper, IAdService adService)
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
        {
            _context   = context;
            _mapper    = mapper;
            _adService = adService;
        }
Exemplo n.º 3
0
        public async Task RefreshToken_AuthTokenExpired()
        {
            using UserManagementDBContext context = CreateDnContext();
            var db            = CreateUnitOfWork(context);
            var tokenProvider = GetTokenProvider();
            var mock          = new Mock <IOptions <TokenServiceOptions> >();
            var options       = MockOptions(TimeSpan.FromSeconds(-1), TimeSpan.FromSeconds(10), 3);


            TokenService service = new TokenService(db, tokenProvider, options, new NullLogger <TokenService>());

            var userid      = Guid.NewGuid();
            var fingerprint = Guid.NewGuid().ToString();
            var useragent   = Guid.NewGuid().ToString();

            var(authToken, refreshToken) = await service.Create(userid, fingerprint, useragent);

            var dbRecords = await db.Tokens.GetAsync(a => a.UserId == userid);

            var(refreshedAuthToken, refreshedRefreshToken) = await service.Refresh(authToken, refreshToken, fingerprint, useragent);

            var dbRecordsRefreshed = await db.Tokens.GetAsync(a => a.UserId == userid);

            Assert.NotNull(authToken);
            Assert.NotNull(refreshToken);
            Assert.NotNull(refreshedAuthToken);
            Assert.NotNull(refreshedRefreshToken);
            Assert.NotEqual(authToken, refreshedAuthToken);
            Assert.NotEqual(refreshToken, refreshedRefreshToken);
            Assert.Single(dbRecordsRefreshed);
            Assert.NotEqual(dbRecordsRefreshed.First().Id, dbRecords.First().Id);
        }
Exemplo n.º 4
0
        public async Task CreateToken_MaxTokenCountReached()
        {
            using UserManagementDBContext context = CreateDnContext();
            var db            = CreateUnitOfWork(context);
            var tokenProvider = GetTokenProvider();
            var mock          = new Mock <IOptions <TokenServiceOptions> >();
            var options       = MockOptions(TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10), 3);

            TokenService service = new TokenService(db, tokenProvider, options, new NullLogger <TokenService>());

            var userid    = Guid.NewGuid();
            var useragent = Guid.NewGuid().ToString();

            var(authToken1, refreshToken1) = await service.Create(userid, Guid.NewGuid().ToString(), useragent);

            Assert.Single(await db.Tokens.GetAsync(a => a.UserId == userid));

            var(authToken2, refreshToken2) = await service.Create(userid, Guid.NewGuid().ToString(), useragent);

            Assert.Equal(2, (await db.Tokens.GetAsync(a => a.UserId == userid)).Count());

            var(authToken3, refreshToken3) = await service.Create(userid, Guid.NewGuid().ToString(), useragent);

            Assert.Equal(3, (await db.Tokens.GetAsync(a => a.UserId == userid)).Count());

            var(authToken4, refreshToken4) = await service.Create(userid, Guid.NewGuid().ToString(), useragent);

            Assert.Single(await db.Tokens.GetAsync(a => a.UserId == userid));
        }
Exemplo n.º 5
0
 public IEnumerable <User> GetUsers()
 {
     using (var db = new UserManagementDBContext())
     {
         return(db.Users.Where(u => !u.Deleted));
     }
 }
Exemplo n.º 6
0
 public User GetUser(Func <User, bool> predicate)
 {
     using (var db = new UserManagementDBContext())
     {
         return(db.Users.Where(user => !user.Deleted).SingleOrDefault(predicate));
     }
 }
Exemplo n.º 7
0
 public IEnumerable <User> GetUsers(Func <User, bool> predicate)
 {
     using (var db = new UserManagementDBContext())
     {
         return(db.Users.Where(u => !u.Deleted).Where(predicate));
     }
 }
Exemplo n.º 8
0
 public bool UsernameExists(string username)
 {
     using (var db = new UserManagementDBContext())
     {
         return(db.Users.Count(u => u.Username == username && u.Deleted == false) > 0);
     }
 }
Exemplo n.º 9
0
 public IEnumerable <User> GetUsers(int pageIndex, int pageSize)
 {
     using (var db = new UserManagementDBContext())
     {
         return(db.Users.Skip(pageIndex).Take(pageSize));
     }
 }
Exemplo n.º 10
0
 public IEnumerable <Group> GetGroups()
 {
     using (var db = new UserManagementDBContext())
     {
         return(db.Groups.Where(g => !g.Deleted));
     }
 }
Exemplo n.º 11
0
 public IEnumerable <User> GetUsersNotInGroup(Group group)
 {
     using (var db = new UserManagementDBContext())
     {
         return(db.Users.Where(u => !u.Deleted).Except(db.Users.Where(m => m.Groups.Contains(group))));
         //return db.Users.Where(u => !u.Deleted).Except(db.GroupUsers.Where(g => g.GroupRef == group.Id).Select(g => g.User));
     }
 }
Exemplo n.º 12
0
        public static IUnitOfWork CreateInMemoryDB()
        {
            var context = new UserManagementDBContext(GetDbContextOptions());

            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();
            return(new UnitOfWork(context));
        }
Exemplo n.º 13
0
        private UserManagementDBContext CreateDnContext()
        {
            var context = new UserManagementDBContext(GetDbContextOptions());

            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();
            return(context);
        }
Exemplo n.º 14
0
        public IEnumerable <Group> GetGroupsAvaliableForUser(User user)
        {
            using (var db = new UserManagementDBContext())
            {
                var groupRefsByUser = GetGroupsByUser(user).Select(g => g.Id);

                return(db.Groups.Where(g => !groupRefsByUser.Contains(g.Id)));
            }
        }
Exemplo n.º 15
0
        public IEnumerable <Group> GetGroupsByUser(User user)
        {
            using (var db = new UserManagementDBContext())
            {
                db.Users.Attach(user);

                return(user.Groups);
            }
        }
Exemplo n.º 16
0
        public void CreateGroup(Group group)
        {
            using (var db = new UserManagementDBContext())
            {
                group.Deleted = false;

                db.Groups.Add(group);
                db.SaveChanges();
            }
        }
Exemplo n.º 17
0
        public void ActivateUser(Guid id)
        {
            using (var db = new UserManagementDBContext())
            {
                var user = db.Users.Single(u => u.Id == id);
                user.IsApproved = true;
                user.ApprovedBy = GetCurrentUser().Id;

                db.SaveChanges();
            }
        }
Exemplo n.º 18
0
        public void DeactivateUser(Guid id)
        {
            using (var db = new UserManagementDBContext())
            {
                var user = db.Users.Single(u => u.Id == id);
                user.IsApproved = false;
                user.ApprovedBy = null;

                db.SaveChanges();
            }
        }
Exemplo n.º 19
0
        public void RemoveUserFromGroup(Group group, User user)
        {
            using (var db = new UserManagementDBContext())
            {
                db.Users.Attach(user);
                db.Groups.Attach(group);

                db.Users.Remove(user);

                db.SaveChanges();
            }
        }
Exemplo n.º 20
0
        public void AddUserToGroup(Group group, User user)
        {
            using (var db = new UserManagementDBContext())
            {
                db.Users.Attach(user);
                db.Groups.Attach(group);

                group.Users.Add(user);

                db.SaveChanges();
            }
        }
Exemplo n.º 21
0
        public void EditGroup(int id, Group group)
        {
            using (var db = new UserManagementDBContext())
            {
                var oldGroup = db.Groups.Single(g => g.Id == id && !g.Deleted);

                oldGroup.Name = group.Name;
                db.SaveChanges();
            }

            _LmsService.Inform(UserNotifications.GroupEdit, group);
        }
Exemplo n.º 22
0
        public void ChangePassword(ChangePasswordModel changePasswordModel)
        {
            var user = GetCurrentUser();

            using (var db = new UserManagementDBContext())
            {
                user.Password = EncryptPassword(changePasswordModel.NewPassword);

                db.SaveChanges();
            }

            SendEmail("admin@iudico", user.Email, "Iudico Notification", "Your passord has been changed.");
        }
Exemplo n.º 23
0
        public void DeleteGroup(int id)
        {
            using (var db = new UserManagementDBContext())
            {
                var group = db.Groups.Single(g => g.Id == id && !g.Deleted);

                group.Users.Clear();
                group.Deleted = true;

                db.SaveChanges();

                _LmsService.Inform(UserNotifications.GroupDelete, group);
            }
        }
Exemplo n.º 24
0
        public void DeleteUser(Func <User, bool> predicate)
        {
            using (var db = new UserManagementDBContext())
            {
                var user = db.Users.Where(u => !u.Deleted).Single(predicate);

                user.Deleted = true;
                user.Groups.Clear();

                db.SaveChanges();

                _LmsService.Inform(UserNotifications.UserDelete, user);
            }
        }
Exemplo n.º 25
0
        public void CreateUser(User user)
        {
            using (var db = new UserManagementDBContext())
            {
                user.Password     = EncryptPassword(user.Password);
                user.OpenId       = user.OpenId ?? string.Empty;
                user.Deleted      = false;
                user.IsApproved   = true;
                user.CreationDate = DateTime.Now;
                user.ApprovedBy   = GetCurrentUser().Id;

                db.Users.Add(user);
                db.SaveChanges();
            }

            _LmsService.Inform(UserNotifications.UserCreate, user);
        }
Exemplo n.º 26
0
        public void EditAccount(EditModel editModel)
        {
            var identity = HttpContext.Current.User.Identity;

            using (var db = new UserManagementDBContext())
            {
                var user = db.Users.Single(u => u.Username == identity.Name);

                user.Name   = editModel.Name;
                user.OpenId = editModel.OpenId ?? string.Empty;
                user.Email  = editModel.Email;

                db.SaveChanges();

                SendEmail("admin@iudico", user.Email, "Iudico Notification", "Your details have been changed.");
            }
        }
Exemplo n.º 27
0
        public void EditUser(Guid id, EditUserModel user)
        {
            using (var db = new UserManagementDBContext())
            {
                var oldUser = db.Users.Single(u => u.Id == id);

                oldUser.Name = user.Name;
                if (user.Password != null && user.Password != string.Empty)
                {
                    oldUser.Password = EncryptPassword(user.Password);
                }
                oldUser.Email  = user.Email;
                oldUser.OpenId = user.OpenId ?? string.Empty;
                oldUser.RoleId = user.RoleId;

                db.SaveChanges();

                _LmsService.Inform(UserNotifications.UserEdit, oldUser);
            }
        }
Exemplo n.º 28
0
        public void RegisterUser(RegisterModel registerModel)
        {
            using (var db = new UserManagementDBContext())
            {
                var user = new User
                {
                    Username     = registerModel.Username,
                    Password     = EncryptPassword(registerModel.Password),
                    OpenId       = registerModel.OpenId ?? string.Empty,
                    Email        = registerModel.Email,
                    Name         = registerModel.Name,
                    Role         = Role.Student,
                    IsApproved   = false,
                    Deleted      = false,
                    CreationDate = DateTime.Now,
                    ApprovedBy   = null
                };

                db.Users.Add(user);
                db.SaveChanges();
            }
        }
Exemplo n.º 29
0
        public User GetCurrentUser()
        {
            if (HttpContext.Current.User == null)
            {
                var user = new User {
                    RoleId = (int)Role.None
                };

                return(user);
            }

            var identity = HttpContext.Current.User.Identity;

            if (!identity.IsAuthenticated)
            {
                return(null);
            }

            using (var db = new UserManagementDBContext())
            {
                return(db.Users.Where(u => u.Username == identity.Name).FirstOrDefault());
            }
        }
Exemplo n.º 30
0
 public UnitOfWork(UserManagementDBContext dbcontext)
 {
     Dbcontext = dbcontext;
 }