private bool?CompanyCanAddUsers() { int companyUserCount = 0; int companyUserLimit = 0; using (UsersRepository usersRep = new UsersRepository(CurrentUser.CompanyId)) using (PendingUsersRepository pendingUsersRep = new PendingUsersRepository()) using (CompaniesRepository companiesRep = new CompaniesRepository()) { try { companyUserCount = usersRep.GetList().Where(x => x.CompanyId == CurrentUser.CompanyId && x.IsActive).Count() + pendingUsersRep.GetList().Where(x => x.CompanyId == CurrentUser.CompanyId).Count(); companyUserLimit = companiesRep.GetEntity(CurrentUser.CompanyId).UsersLimit; } catch { return(null); } } return(companyUserCount < companyUserLimit); }
private LogInResult ResponseIntoUser(IAuthenticationResponse response) { LogInResult logInResult = new LogInResult(); logInResult.IsAuthenticated = true; var fetchResponse = response.GetExtension<FetchResponse>(); if (fetchResponse != null) { logInResult.User = new OpenIdUser(fetchResponse, response.ClaimedIdentifier); using (AllUsersRepository userRep = new AllUsersRepository()) using (PendingUsersRepository pendingUserRep = new PendingUsersRepository()) { User user = userRep.GetList().SingleOrDefault(x => x.Email == logInResult.User.Email); if (user != null) { if (user.IsActive) { if (user.FirstName != logInResult.User.FirstName || user.LastName != logInResult.User.LastName) { user.FirstName = logInResult.User.FirstName; user.LastName = logInResult.User.LastName; userRep.Update(user); } logInResult.IsRegistered = true; logInResult.User.UserId = user.Id; return logInResult; } else { logInResult.IsRegistered = false; logInResult.IsCanceled = true; logInResult.User.UserId = user.Id; return logInResult; } } else { PendingUser pendingUser = pendingUserRep.GetList().SingleOrDefault(x => x.Email == logInResult.User.Email); if (pendingUser != null) { User newUser = new User() { CompanyId = pendingUser.CompanyId, Email = logInResult.User.Email, FirstName = logInResult.User.FirstName, LastName = logInResult.User.LastName, CreationTime = DateTime.Now, LastLogInTime = DateTime.Now, Roles = pendingUser.Roles, LanguageId = pendingUser.LanguageId, IsActive = true }; if (!userRep.Create(newUser)) return logInResult; logInResult.User.UserId = newUser.Id; pendingUserRep.Delete(pendingUser.Id); logInResult.IsNewUser = true; logInResult.IsRegistered = true; return logInResult; } else { return logInResult; } } } } else { return logInResult; } }
public ActionResult Create(User user, string[] roleNames) { if (!ModelState.IsValid) { List <string> allRoleNames = GetRoleNames(); List <SelectListItemDB> ApprovalRoutesList = new List <SelectListItemDB>() { new SelectListItemDB() { Id = -1, Name = Loc.Dic.NoApprovalRoute } }; SelectList languagesList; using (ApprovalRoutesRepository routesRep = new ApprovalRoutesRepository(CurrentUser.CompanyId)) using (LanguagesRepository languagesRep = new LanguagesRepository()) { ApprovalRoutesList.AddRange( routesRep.GetList() .Select(x => new SelectListItemDB() { Id = x.Id, Name = x.Name }) ); languagesList = new SelectList(languagesRep.GetList().ToList(), "Id", "Name"); } ViewBag.RolesList = allRoleNames; ViewBag.RoutesList = new SelectList(ApprovalRoutesList, "Id", "Name"); ViewBag.LanguagesList = languagesList; return(View(user)); } if (user.DefaultApprovalRouteId == -1) { user.DefaultApprovalRouteId = null; } if (!Authorized(RoleType.SystemManager)) { return(Error(Loc.Dic.error_no_permission)); } int companyUserCount = 0; int companyUserLimit = 0; using (UsersRepository usersRep = new UsersRepository(CurrentUser.CompanyId)) using (ApprovalRoutesRepository routesRep = new ApprovalRoutesRepository(CurrentUser.CompanyId)) using (PendingUsersRepository pendingUsersRep = new PendingUsersRepository()) using (CompaniesRepository companiesRep = new CompaniesRepository()) { if (user.DefaultApprovalRouteId.HasValue) { var route = routesRep.GetEntity(user.DefaultApprovalRouteId.Value); if (route == null) { return(Error(Loc.Dic.error_invalid_form)); } } try { companyUserCount = usersRep.GetList().Where(x => x.IsActive).Count() + pendingUsersRep.GetList().Where(x => x.CompanyId == CurrentUser.CompanyId).Count(); companyUserLimit = companiesRep.GetEntity(CurrentUser.CompanyId).UsersLimit; } catch { return(Error(Loc.Dic.error_database_error)); } bool userExists = usersRep.GetList().Any(x => x.CompanyId == CurrentUser.CompanyId && x.Email == user.Email); bool pendingUserExists = pendingUsersRep.GetList().Any(x => x.CompanyId == CurrentUser.CompanyId && x.Email == user.Email); if (userExists || pendingUserExists) { return(Error(Loc.Dic.error_users_exist_error)); } } if (companyUserCount >= companyUserLimit) { return(Error(Loc.Dic.error_users_limit_reached)); } user.CompanyId = CurrentUser.CompanyId; user.CreationTime = DateTime.Now; RoleType combinedRoles = RoleType.None; List <RoleType> forbiddenRoles = GetForbiddenRoles(); if (roleNames == null || roleNames.Count() == 0) { return(Error(Loc.Dic.error_invalid_form)); } foreach (string roleName in roleNames) { RoleType role; if (!Enum.TryParse(roleName, out role) || forbiddenRoles.Contains(role)) { return(Error(Loc.Dic.error_invalid_form)); } combinedRoles = Roles.CombineRoles(combinedRoles, role); } user.Roles = (int)combinedRoles; user.DefaultApprovalRouteId = user.DefaultApprovalRouteId.HasValue && user.DefaultApprovalRouteId.Value == -1 ? null : user.DefaultApprovalRouteId; using (UsersRepository usersRep = new UsersRepository(CurrentUser.CompanyId)) { if (!usersRep.Create(user)) { return(Error(Loc.Dic.error_users_create_error)); } } return(RedirectToAction("Index")); }
private bool? CompanyCanAddUsers() { int companyUserCount = 0; int companyUserLimit = 0; using (UsersRepository usersRep = new UsersRepository(CurrentUser.CompanyId)) using (PendingUsersRepository pendingUsersRep = new PendingUsersRepository()) using (CompaniesRepository companiesRep = new CompaniesRepository()) { try { companyUserCount = usersRep.GetList().Where(x => x.CompanyId == CurrentUser.CompanyId && x.IsActive).Count() + pendingUsersRep.GetList().Where(x => x.CompanyId == CurrentUser.CompanyId).Count(); companyUserLimit = companiesRep.GetEntity(CurrentUser.CompanyId).UsersLimit; } catch { return null; } } return companyUserCount < companyUserLimit; }
public ActionResult Create(User user, string[] roleNames) { if (!ModelState.IsValid) { List<string> allRoleNames = GetRoleNames(); List<SelectListItemDB> ApprovalRoutesList = new List<SelectListItemDB>() { new SelectListItemDB() { Id = -1, Name = Loc.Dic.NoApprovalRoute } }; SelectList languagesList; using (ApprovalRoutesRepository routesRep = new ApprovalRoutesRepository(CurrentUser.CompanyId)) using (LanguagesRepository languagesRep = new LanguagesRepository()) { ApprovalRoutesList.AddRange( routesRep.GetList() .Select(x => new SelectListItemDB() { Id = x.Id, Name = x.Name }) ); languagesList = new SelectList(languagesRep.GetList().ToList(), "Id", "Name"); } ViewBag.RolesList = allRoleNames; ViewBag.RoutesList = new SelectList(ApprovalRoutesList, "Id", "Name"); ViewBag.LanguagesList = languagesList; return View(user); } if (user.DefaultApprovalRouteId == -1) user.DefaultApprovalRouteId = null; if (!Authorized(RoleType.SystemManager)) return Error(Loc.Dic.error_no_permission); int companyUserCount = 0; int companyUserLimit = 0; using (UsersRepository usersRep = new UsersRepository(CurrentUser.CompanyId)) using (ApprovalRoutesRepository routesRep = new ApprovalRoutesRepository(CurrentUser.CompanyId)) using (PendingUsersRepository pendingUsersRep = new PendingUsersRepository()) using (CompaniesRepository companiesRep = new CompaniesRepository()) { if (user.DefaultApprovalRouteId.HasValue) { var route = routesRep.GetEntity(user.DefaultApprovalRouteId.Value); if (route == null) return Error(Loc.Dic.error_invalid_form); } try { companyUserCount = usersRep.GetList().Where(x => x.IsActive).Count() + pendingUsersRep.GetList().Where(x => x.CompanyId == CurrentUser.CompanyId).Count(); companyUserLimit = companiesRep.GetEntity(CurrentUser.CompanyId).UsersLimit; } catch { return Error(Loc.Dic.error_database_error); } bool userExists = usersRep.GetList().Any(x => x.CompanyId == CurrentUser.CompanyId && x.Email == user.Email); bool pendingUserExists = pendingUsersRep.GetList().Any(x => x.CompanyId == CurrentUser.CompanyId && x.Email == user.Email); if (userExists || pendingUserExists) return Error(Loc.Dic.error_users_exist_error); } if (companyUserCount >= companyUserLimit) return Error(Loc.Dic.error_users_limit_reached); user.CompanyId = CurrentUser.CompanyId; user.CreationTime = DateTime.Now; RoleType combinedRoles = RoleType.None; List<RoleType> forbiddenRoles = GetForbiddenRoles(); if (roleNames == null || roleNames.Count() == 0) return Error(Loc.Dic.error_invalid_form); foreach (string roleName in roleNames) { RoleType role; if (!Enum.TryParse(roleName, out role) || forbiddenRoles.Contains(role)) return Error(Loc.Dic.error_invalid_form); combinedRoles = Roles.CombineRoles(combinedRoles, role); } user.Roles = (int)combinedRoles; user.DefaultApprovalRouteId = user.DefaultApprovalRouteId.HasValue && user.DefaultApprovalRouteId.Value == -1 ? null : user.DefaultApprovalRouteId; using (UsersRepository usersRep = new UsersRepository(CurrentUser.CompanyId)) { if (!usersRep.Create(user)) return Error(Loc.Dic.error_users_create_error); } return RedirectToAction("Index"); }
private LogInResult ResponseIntoUser(IAuthenticationResponse response) { LogInResult logInResult = new LogInResult(); logInResult.IsAuthenticated = true; var fetchResponse = response.GetExtension <FetchResponse>(); if (fetchResponse != null) { logInResult.User = new OpenIdUser(fetchResponse, response.ClaimedIdentifier); using (AllUsersRepository userRep = new AllUsersRepository()) using (PendingUsersRepository pendingUserRep = new PendingUsersRepository()) { User user = userRep.GetList().SingleOrDefault(x => x.Email == logInResult.User.Email); if (user != null) { if (user.IsActive) { if (user.FirstName != logInResult.User.FirstName || user.LastName != logInResult.User.LastName) { user.FirstName = logInResult.User.FirstName; user.LastName = logInResult.User.LastName; userRep.Update(user); } logInResult.IsRegistered = true; logInResult.User.UserId = user.Id; return(logInResult); } else { logInResult.IsRegistered = false; logInResult.IsCanceled = true; logInResult.User.UserId = user.Id; return(logInResult); } } else { PendingUser pendingUser = pendingUserRep.GetList().SingleOrDefault(x => x.Email == logInResult.User.Email); if (pendingUser != null) { User newUser = new User() { CompanyId = pendingUser.CompanyId, Email = logInResult.User.Email, FirstName = logInResult.User.FirstName, LastName = logInResult.User.LastName, CreationTime = DateTime.Now, LastLogInTime = DateTime.Now, Roles = pendingUser.Roles, LanguageId = pendingUser.LanguageId, IsActive = true }; if (!userRep.Create(newUser)) { return(logInResult); } logInResult.User.UserId = newUser.Id; pendingUserRep.Delete(pendingUser.Id); logInResult.IsNewUser = true; logInResult.IsRegistered = true; return(logInResult); } else { return(logInResult); } } } } else { return(logInResult); } }