Пример #1
0
        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));
        }
Пример #2
0
        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());
        }
Пример #3
0
        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));
        }
Пример #4
0
        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
                }
            });
        }
Пример #5
0
 public User(string name, UserRoleBase role)
 {
     this.Id   = Guid.NewGuid();
     this.Name = name;
     this.Role = role;
 }