public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
 {
     if (string.IsNullOrEmpty(roleName))
         {
             return false;
         }
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             Role Role = null;
             Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
             if (Role == null)
             {
                 return false;
             }
             if (throwOnPopulatedRole)
             {
                 if (Role.Users.Any())
                 {
                     return false;
                 }
             }
             else
             {
                 Role.Users.Clear();
             }
             Context.Roles.Remove(Role);
             Context.SaveChanges();
             return true;
         }
 }
 public override void AddUsersToRoles(string[] usernames, string[] roleNames)
 {
     using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             List<User> Users = Context.Users.Where(Usr => usernames.Contains(Usr.Username)).ToList();
             List<Role> Roles = Context.Roles.Where(Rl => roleNames.Contains(Rl.RoleName)).ToList();
             foreach (User user in Users)
             {
                 foreach (Role role in Roles)
                 {
                     if (!user.Roles.Contains(role))
                     {
                         user.Roles.Add(role);
                     }
                 }
             }
             Context.SaveChanges();
         }
 }
 public override void CreateRole(string roleName)
 {
     if (!string.IsNullOrEmpty(roleName))
         {
             using (FileManagerDbContext Context = new FileManagerDbContext())
             {
                 Role Role = null;
                 Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
                 if (Role == null)
                 {
                     Role NewRole = new Role
                     {
                         RoleId = Guid.NewGuid(),
                         RoleName = roleName
                     };
                     Context.Roles.Add(NewRole);
                     Context.SaveChanges();
                 }
             }
         }
 }
Example #4
0
 public AccountController()
 {
     _context = new FileManagerDbContext();
 }
 public FileManagementController(FileManagerDbContext context)
 {
     _context = context;
 }
 public HistoryService(FileManagerDbContext context)
 {
     _context = context;
 }
 public override bool RoleExists(string roleName)
 {
     if (string.IsNullOrEmpty(roleName))
         {
             return false;
         }
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             Role Role = null;
             Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
             if (Role != null)
             {
                 return true;
             }
             else
             {
                 return false;
             }
         }
 }
 public override bool IsUserInRole(string username, string roleName)
 {
     if (string.IsNullOrEmpty(username))
         {
             return false;
         }
         if (string.IsNullOrEmpty(roleName))
         {
             return false;
         }
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             User User = null;
             User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
             if (User == null)
             {
                 return false;
             }
             Role Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
             if (Role == null)
             {
                 return false;
             }
             return User.Roles.Contains(Role);
         }
 }
 public override string[] GetRolesForUser(string username)
 {
     if (string.IsNullOrEmpty(username))
         {
             return null;
         }
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             User User = null;
             User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
             if (User != null)
             {
                 return User.Roles.Select(Rl => Rl.RoleName).ToArray();
             }
             else
             {
                 return null;
             }
         }
 }
    public override string[] FindUsersInRole(string roleName, string usernameToMatch)
    {
        if (string.IsNullOrEmpty(roleName))
            {
                return null;
            }

            if (string.IsNullOrEmpty(usernameToMatch))
            {
                return null;
            }

            using (FileManagerDbContext Context = new FileManagerDbContext())
            {

                return (from Rl in Context.Roles from Usr in Rl.Users where Rl.RoleName == roleName && Usr.Username.Contains(usernameToMatch) select Usr.Username).ToArray();
            }
    }
 public override MembershipUser GetUser(string username, bool userIsOnline)
 {
     if (string.IsNullOrEmpty(username))
         {
             return null;
         }
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             User User = null;
             User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
             if (User != null)
             {
                 if (userIsOnline)
                 {
                     User.LastActivityDate = DateTime.UtcNow;
                     Context.SaveChanges();
                 }
                 return new MembershipUser(Membership.Provider.Name, User.Username, User.UserId, User.Email, null, null, User.IsApproved, User.IsLockedOut, User.CreateDate.Value, User.LastLoginDate.Value, User.LastActivityDate.Value, User.LastPasswordChangedDate.Value, User.LastLockoutDate.Value);
             }
             else
             {
                 return null;
             }
         }
 }
 public override int GetNumberOfUsersOnline()
 {
     DateTime DateActive = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(Convert.ToDouble(Membership.UserIsOnlineTimeWindow)));
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             return Context.Users.Where(Usr => Usr.LastActivityDate > DateActive).Count();
         }
 }
 public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
 {
     MembershipUserCollection MembershipUsers = new MembershipUserCollection();
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             totalRecords = Context.Users.Count();
             IQueryable<User> Users = Context.Users.OrderBy(Usrn => Usrn.Username).Skip(pageIndex * pageSize).Take(pageSize);
             foreach (User user in Users)
             {
                 MembershipUsers.Add(new MembershipUser(Membership.Provider.Name, user.Username, user.UserId, user.Email, null, null, user.IsApproved, user.IsLockedOut, user.CreateDate.Value, user.LastLoginDate.Value, user.LastActivityDate.Value, user.LastPasswordChangedDate.Value, user.LastLockoutDate.Value));
             }
         }
         return MembershipUsers;
 }
 public override bool DeleteUser(string username, bool deleteAllRelatedData)
 {
     if (string.IsNullOrEmpty(username))
         {
             return false;
         }
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             User User = null;
             User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
             if (User != null)
             {
                 Context.Users.Remove(User);
                 Context.SaveChanges();
                 return true;
             }
             else
             {
                 return false;
             }
         }
 }
    public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
    {
        if (string.IsNullOrEmpty(username))
            {
                status = MembershipCreateStatus.InvalidUserName;
                return null;
            }
            if (string.IsNullOrEmpty(password))
            {
                status = MembershipCreateStatus.InvalidPassword;
                return null;
            }
            if (string.IsNullOrEmpty(email))
            {
                status = MembershipCreateStatus.InvalidEmail;
                return null;
            }

            string HashedPassword = Crypto.HashPassword(password);
            if (HashedPassword.Length > 128)
            {
                status = MembershipCreateStatus.InvalidPassword;
                return null;
            }

            using (FileManagerDbContext Context = new FileManagerDbContext())
            {
                if (Context.Users.Where(Usr => Usr.Username == username).Any())
                {
                    status = MembershipCreateStatus.DuplicateUserName;
                    return null;
                }

                if (Context.Users.Where(Usr => Usr.Email == email).Any())
                {
                    status = MembershipCreateStatus.DuplicateEmail;
                    return null;
                }

                User NewUser = new User
                {
                    UserId = Guid.NewGuid(),
                    Username = username,
                    Password = HashedPassword,
                    IsApproved = isApproved,
                    Email = email,
                    CreateDate = DateTime.UtcNow,
                    LastPasswordChangedDate = DateTime.UtcNow,
                    PasswordFailuresSinceLastSuccess = 0,
                    LastLoginDate = DateTime.UtcNow,
                    LastActivityDate = DateTime.UtcNow,
                    LastLockoutDate = DateTime.UtcNow,
                    IsLockedOut = false,
                    LastPasswordFailureDate = DateTime.UtcNow
                };

                Context.Users.Add(NewUser);
                Context.SaveChanges();
                status = MembershipCreateStatus.Success;
                return new MembershipUser(Membership.Provider.Name, NewUser.Username, NewUser.UserId, NewUser.Email, null, null, NewUser.IsApproved, NewUser.IsLockedOut, NewUser.CreateDate.Value, NewUser.LastLoginDate.Value, NewUser.LastActivityDate.Value, NewUser.LastPasswordChangedDate.Value, NewUser.LastLockoutDate.Value);
            }
    }
    public string CreateAccount(string userName, string password, bool requireConfirmationToken)
    {
        if (string.IsNullOrEmpty(userName))
            {
                throw new MembershipCreateUserException(MembershipCreateStatus.InvalidUserName);
            }

            if (string.IsNullOrEmpty(password))
            {
                throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword);
            }

            string hashedPassword = Crypto.HashPassword(password);
            if (hashedPassword.Length > 128)
            {
                throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword);
            }

            using (FileManagerDbContext Context = new FileManagerDbContext())
            {
                if (Context.Users.Where(Usr => Usr.Username == userName).Any())
                {
                    throw new MembershipCreateUserException(MembershipCreateStatus.DuplicateUserName);
                }

                string token = string.Empty;
                if (requireConfirmationToken)
                {
                    token = GenerateToken();
                }

                User NewUser = new User
                {
                    UserId = Guid.NewGuid(),
                    Username = userName,
                    Password = hashedPassword,
                    IsApproved = !requireConfirmationToken,
                    Email = string.Empty,
                    CreateDate = DateTime.UtcNow,
                    LastPasswordChangedDate = DateTime.UtcNow,
                    PasswordFailuresSinceLastSuccess = 0,
                    LastLoginDate = DateTime.UtcNow,
                    LastActivityDate = DateTime.UtcNow,
                    LastLockoutDate = DateTime.UtcNow,
                    IsLockedOut = false,
                    LastPasswordFailureDate = DateTime.UtcNow,
                    ConfirmationToken = token
                };

                Context.Users.Add(NewUser);
                Context.SaveChanges();
                return token;
            }
    }
 public GlobalSettingsService(FileManagerDbContext context)
 {
     _context = context;
 }
 public FileService(FileManagerDbContext context)
 {
     _context = context;
 }
    public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
    {
        if (providerUserKey is Guid) { }
            else
            {
                return null;
            }

            using (FileManagerDbContext Context = new FileManagerDbContext())
            {
                User User = null;
                User = Context.Users.Find(providerUserKey);
                if (User != null)
                {
                    if (userIsOnline)
                    {
                        User.LastActivityDate = DateTime.UtcNow;
                        Context.SaveChanges();
                    }
                    return new MembershipUser(Membership.Provider.Name, User.Username, User.UserId, User.Email, null, null, User.IsApproved, User.IsLockedOut, User.CreateDate.Value, User.LastLoginDate.Value, User.LastActivityDate.Value, User.LastPasswordChangedDate.Value, User.LastLockoutDate.Value);
                }
                else
                {
                    return null;
                }
            }
    }
 public override string[] GetAllRoles()
 {
     using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             return Context.Roles.Select(Rl => Rl.RoleName).ToArray();
         }
 }
 public override string GetUserNameByEmail(string email)
 {
     using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             User User = null;
             User = Context.Users.FirstOrDefault(Usr => Usr.Email == email);
             if (User != null)
             {
                 return User.Username;
             }
             else
             {
                 return string.Empty;
             }
         }
 }
 public override string[] GetUsersInRole(string roleName)
 {
     if (string.IsNullOrEmpty(roleName))
         {
             return null;
         }
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             Role Role = null;
             Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
             if (Role != null)
             {
                 return Role.Users.Select(Usr => Usr.Username).ToArray();
             }
             else
             {
                 return null;
             }
         }
 }
 public override bool UnlockUser(string userName)
 {
     using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             User User = null;
             User = Context.Users.FirstOrDefault(Usr => Usr.Username == userName);
             if (User != null)
             {
                 User.IsLockedOut = false;
                 User.PasswordFailuresSinceLastSuccess = 0;
                 Context.SaveChanges();
                 return true;
             }
             else
             {
                 return false;
             }
         }
 }
 public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames)
 {
     using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             foreach (String username in usernames)
             {
                 String us = username;
                 User user = Context.Users.FirstOrDefault(U => U.Username == us);
                 if (user != null)
                 {
                     foreach (String roleName in roleNames)
                     {
                         String rl = roleName;
                         Role role = user.Roles.FirstOrDefault(R => R.RoleName == rl);
                         if (role != null)
                         {
                             user.Roles.Remove(role);
                         }
                     }
                 }
             }
             Context.SaveChanges();
         }
 }
    public static MembershipCreateStatus Register(string Username, string Password, string Email, bool IsApproved, string FirstName, string LastName)
    {
        MembershipCreateStatus CreateStatus;
            Membership.CreateUser(Username, Password, Email, null, null, IsApproved, Guid.NewGuid(), out CreateStatus);

            if (CreateStatus == MembershipCreateStatus.Success)
            {
                using (FileManagerDbContext Context = new FileManagerDbContext())
                {
                    User User = Context.Users.FirstOrDefault(Usr => Usr.Username == Username);
                    User.FirstName = FirstName;
                    User.LastName = LastName;
                    Context.SaveChanges();
                }

                if (IsApproved)
                {
                    FormsAuthentication.SetAuthCookie(Username, false);
                }
            }

            return CreateStatus;
    }
 public override bool ValidateUser(string username, string password)
 {
     if (string.IsNullOrEmpty(username))
         {
             return false;
         }
         if (string.IsNullOrEmpty(password))
         {
             return false;
         }
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             User User = null;
             User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
             if (User == null)
             {
                 return false;
             }
             if (!User.IsApproved)
             {
                 return false;
             }
             if (User.IsLockedOut)
             {
                 return false;
             }
             String HashedPassword = User.Password;
             Boolean VerificationSucceeded = (HashedPassword != null && Crypto.VerifyHashedPassword(HashedPassword, password));
             if (VerificationSucceeded)
             {
                 User.PasswordFailuresSinceLastSuccess = 0;
                 User.LastLoginDate = DateTime.UtcNow;
                 User.LastActivityDate = DateTime.UtcNow;
             }
             else
             {
                 int Failures = User.PasswordFailuresSinceLastSuccess;
                 if (Failures < MaxInvalidPasswordAttempts)
                 {
                     User.PasswordFailuresSinceLastSuccess += 1;
                     User.LastPasswordFailureDate = DateTime.UtcNow;
                 }
                 else if (Failures >= MaxInvalidPasswordAttempts)
                 {
                     User.LastPasswordFailureDate = DateTime.UtcNow;
                     User.LastLockoutDate = DateTime.UtcNow;
                     User.IsLockedOut = true;
                 }
             }
             Context.SaveChanges();
             if (VerificationSucceeded)
             {
                 return true;
             }
             else
             {
                 return false;
             }
         }
 }
 public GenericRepository(FileManagerDbContext context)
 {
     this.Context = context;
     this.DbSet   = context.Set <TEntity>();
 }
 public override bool ChangePassword(string username, string oldPassword, string newPassword)
 {
     if (string.IsNullOrEmpty(username))
         {
             return false;
         }
         if (string.IsNullOrEmpty(oldPassword))
         {
             return false;
         }
         if (string.IsNullOrEmpty(newPassword))
         {
             return false;
         }
         using (FileManagerDbContext Context = new FileManagerDbContext())
         {
             User User = null;
             User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
             if (User == null)
             {
                 return false;
             }
             String HashedPassword = User.Password;
             Boolean VerificationSucceeded = (HashedPassword != null && Crypto.VerifyHashedPassword(HashedPassword, oldPassword));
             if (VerificationSucceeded)
             {
                 User.PasswordFailuresSinceLastSuccess = 0;
             }
             else
             {
                 int Failures = User.PasswordFailuresSinceLastSuccess;
                 if (Failures < MaxInvalidPasswordAttempts)
                 {
                     User.PasswordFailuresSinceLastSuccess += 1;
                     User.LastPasswordFailureDate = DateTime.UtcNow;
                 }
                 else if (Failures >= MaxInvalidPasswordAttempts)
                 {
                     User.LastPasswordFailureDate = DateTime.UtcNow;
                     User.LastLockoutDate = DateTime.UtcNow;
                     User.IsLockedOut = true;
                 }
                 Context.SaveChanges();
                 return false;
             }
             String NewHashedPassword = Crypto.HashPassword(newPassword);
             if (NewHashedPassword.Length > 128)
             {
                 return false;
             }
             User.Password = NewHashedPassword;
             User.LastPasswordChangedDate = DateTime.UtcNow;
             Context.SaveChanges();
             return true;
         }
 }
Example #29
0
 public FoldersService(FileManagerDbContext context, IFileService filesService)
 {
     _context      = context;
     _filesService = filesService;
 }