public ActionResult Edit(EditUser user) { if (DataBase.Users.Exists(p => p.Contact.Email == user.Email && p.UserId != user.UserId)) { this.AddMessage(Rp3.Resources.ErrorMessageValidation.EmailAccountAlreadyExists); } else if (ModelState.IsValid) { UserBase userUpdate = DataBase.Users.Get(p => p.UserId == user.UserId && p.UserRole.Any(q => q.Role.OrganizationId == this.OrganizationId), includeProperties: "Contact,UserRole.Role").SingleOrDefault(); if (userUpdate.IsPrivate) { return(RedirectToAction("Index")); } userUpdate.Contact.Email = user.Email; userUpdate.Contact.LastNames = user.LastNames; userUpdate.Contact.Names = user.Names; userUpdate.Active = user.Active; if (userUpdate.ActiveDirectoryEnabled || Rp3.Configuration.Rp3ConfigurationSection.Current.Authentication.AuthenticationType == Configuration.AuthenticationElement.AuthenticationTypes.ActiveDirectory) { userUpdate.ActiveDirectoryEnabled = user.ActiveDirectoryEnabled; } UserRoleBase userRoleOrig = userUpdate.UserRole.FirstOrDefault(p => p.Role.OrganizationId == this.OrganizationId); if (userRoleOrig.RoleId != user.RoleId) { RoleBase role = DataBase.Roles.GetByID(user.RoleId); if (role.OrganizationId == this.OrganizationId) { DataBase.UserRoles.Delete(userRoleOrig); DataBase.UserRoles.Insert(new UserRoleBase() { UserId = userUpdate.UserId, RoleId = user.RoleId }); } } DataBase.Users.Update(userUpdate); DataBase.Contacts.Update(userUpdate.Contact); DataBase.Save(); return(RedirectToAction("Index")); } ViewBag.RoleSelectList = DataBase.Roles.Get(p => p.OrganizationId == this.OrganizationId && p.Active && !p.IsPrivate).ToSelectList(); return(View(user)); }
public ActionResult SyncActiveDirectory() { int count = 0; try { List <UserBase> userList = Rp3.Security.User.GetLDAPUsers(); List <UserBase> existUsers = DataBase.Users.Get(p => p.UserRole.Any(r => r.Role.OrganizationId == this.OrganizationId), includeProperties: "Contact").ToList(); RoleBase roleBase = DataBase.Roles.Get(p => p.OrganizationId == this.OrganizationId && p.IsDefault).FirstOrDefault(); var insertUsers = userList.Where(p => !existUsers.Select(e => e.LogonName).Contains(p.LogonName)).ToList(); foreach (var insert in insertUsers) { if (!existUsers.Any(p => p.Contact.Email == insert.Contact.Email)) { insert.Active = true; insert.Contact.GenerateId(); insert.UserId = insert.Contact.ContactId; insert.ActiveDirectoryEnabled = true; UserRoleBase userRole = new UserRoleBase(); userRole.RoleId = roleBase.RoleId; userRole.UserId = insert.UserId; insert.UserRole = new List <UserRoleBase>(); insert.UserRole.Add(userRole); DataBase.Users.Insert(insert); DataBase.UserRoles.Insert(userRole); DataBase.Save(); count++; } } this.AddMessage(string.Format(Rp3.Resources.MessageFor.SyncActiveDirectoryUsersSuccess, count), Data.MessageType.Success); } catch { if (count > 0) { this.AddMessage(string.Format(Rp3.Resources.MessageFor.SyncActiveDirectoryUsersIncomplete, count), Data.MessageType.Error); } else { this.AddDefaultErrorMessage(); } } return(Json()); }
public ActionResult Create(CreateUser user) { if (ModelState.IsValid) { UserBase userInsert = new UserBase(); userInsert.LogonName = user.LogonName; userInsert.Password = Rp3.Security.Authentication.GetEncodePassword(user.LogonName, user.Password); userInsert.Contact = new Data.Models.General.ContactBase(); userInsert.Contact.LastNames = user.LastNames; userInsert.Contact.Names = user.Names; userInsert.Contact.Email = user.Email; userInsert.Active = true; if (Rp3.Configuration.Rp3ConfigurationSection.Current.Authentication.AuthenticationType == Configuration.AuthenticationElement.AuthenticationTypes.ActiveDirectory) { userInsert.ActiveDirectoryEnabled = user.ActiveDirectoryEnabled; } userInsert.Contact.GenerateId(); userInsert.UserId = userInsert.Contact.ContactId; RoleBase role = DataBase.Roles.GetByID(user.RoleId); if (role.OrganizationId == this.OrganizationId) { UserRoleBase userRole = new UserRoleBase(); userRole.RoleId = user.RoleId; userRole.UserId = userInsert.UserId; userInsert.UserRole = new List <UserRoleBase>(); userInsert.UserRole.Add(userRole); DataBase.UserRoles.Insert(userRole); } DataBase.Users.Insert(userInsert); if (!Rp3.Security.User.ExistEmail(userInsert.Contact.Email)) { DataBase.Save(); } return(RedirectToAction("Index")); } ViewBag.RoleSelectList = DataBase.Roles.Get(p => p.OrganizationId == this.OrganizationId && p.Active && !p.IsPrivate).ToSelectList(); return(View(user)); }
public virtual ActionResult PartialRegister(Register contact) { string message = string.Empty; bool success = false; ContactBase contactSave = null; if (AccountController.ValidateRegister(contact, out message, false, true, true)) { try { contactSave = new ContactBase(); contactSave.Email = contact.Email; contactSave.LastNames = contact.LastNames; contactSave.Names = contact.Names; contactSave.RegisterOrganizationName = contact.RegisterOrganizationName; contactSave.RegisterDate = Rp3.Web.Mvc.Session.CurrentDateTime; contactSave.PhoneNumber = contact.PhoneNumber; contactSave.User = new UserBase(); contactSave.User.Active = true; contactSave.User.LogonName = contact.Email; contactSave.User.DecodePassword = contactSave.User.Password; contactSave.User.Password = Rp3.Security.Authentication.GetEncodePassword(contactSave.User.LogonName, contact.Password); contactSave.GenerateId(); contactSave.User.UserId = contactSave.ContactId; RoleBase defaultRole = DataBase.Roles.Get(p => p.IsDefault && p.OrganizationId == this.OrganizationId).FirstOrDefault(); if (defaultRole != null) { UserRoleBase userRole = new UserRoleBase() { Role = defaultRole, User = contactSave.User, UserId = contactSave.User.UserId }; DataBase.UserRoles.Insert(userRole); } DataBase.Contacts.Insert(contactSave); DataBase.Users.Insert(contactSave.User); DataBase.Save(); SessionStart(contactSave.User.LogonName); message = Rp3.Resources.Resource.MessageForRegisterContactSuccess; success = true; } catch { message = Rp3.Resources.Resource.MessageForRegisterContactFail; success = false; } } try { if (success) { List <MailContact> contacts = new List <MailContact>(); contacts.Add(new MailContact() { Mail = contact.Email, Name = contact.Email }); contacts.Add(new MailContact() { Mail = RegisterMailAccount, Name = RegisterMailAccount, MailtoType = MailtoType.Cco }); new MailController().SendAsEmail(Rp3.Resources.Resource.MailSubjectForRegister, contacts, "Register", contactSave).DeliverAsync(); } } catch { //Do Nothing } return(new JsonResult() { Data = new { Message = message, Success = success } }); }
public User(string name, UserRoleBase role) { this.Id = Guid.NewGuid(); this.Name = name; this.Role = role; }