public UserInformation Authenticate(string username, string password) { var userInformation = new UserInformation(); var repository = new UserRepository(); var user = repository.FindBy(u => u.Username == username).FirstOrDefault(); var userGroupRepository = new UserGroupRepository(); var groups = userGroupRepository.FindBy(u => u.UserID == user.UserID); if (user == null || !user.CheckPassword(password)) { return(null); } userInformation.Username = user.Username; if (user.Permissions != null) { userInformation.Permissions = user.Permissions.ToDictionary(permission => permission.Operation.Name, permission => permission.Allow); } if (groups != null) { userInformation.Groups = groups.ToDictionary(usergroup => usergroup.GroupID, usergroup => usergroup.Group.Name); } if (user.StoreUsers != null) { userInformation.Stores = user.StoreUsers.ToDictionary(store => store.StoreID, store => store.Store.Name); } if (user.AccountUsers != null) { userInformation.Accounts = user.AccountUsers.ToDictionary(account => account.AccountID, account => account.Account.Name); } return(userInformation); }
public UserInformation Authenticate(string username, string password) { var userInformation = new UserInformation(); var repository = new UserRepository(); var user = repository.FindBy(u => u.Username == username).FirstOrDefault(); var userGroupRepository = new UserGroupRepository(); var groups = userGroupRepository.FindBy(u => u.UserID == user.UserID); if (user == null || !user.CheckPassword(password)) return null; userInformation.Username = user.Username; if (user.Permissions != null) userInformation.Permissions = user.Permissions.ToDictionary(permission => permission.Operation.Name, permission => permission.Allow); if (groups != null) userInformation.Groups = groups.ToDictionary(usergroup => usergroup.GroupID, usergroup => usergroup.Group.Name); if (user.StoreUsers != null) userInformation.Stores = user.StoreUsers.ToDictionary(store => store.StoreID, store => store.Store.Name); if (user.AccountUsers != null) userInformation.Accounts = user.AccountUsers.ToDictionary(account => account.AccountID, account => account.Account.Name); return userInformation; }