Example #1
0
        public InternalLoginInfo RenewPassword(Person person, EditType editBy, ref String newPassword)
        {
            InternalLoginInfo loginInfo = null;

            try
            {
                Helpers.InternalEncryptor helper = new Helpers.InternalEncryptor();
                if (person != null)
                {
                    Manager.BeginTransaction();
                    Person currentUser = Manager.GetPerson(UC.CurrentUserID);
                    loginInfo = (from li in Manager.GetIQ <InternalLoginInfo>() where li.Person == person select li).Skip(0).Take(1).ToList().FirstOrDefault();

                    if (loginInfo != null)
                    {
                        newPassword        = lm.Comol.Core.DomainModel.Helpers.RandomKeyGenerator.GenerateRandomKey(6, 10, true, true, false);
                        loginInfo.Password = helper.Encrypt(newPassword);
                        loginInfo.UpdateMetaInfo(Manager.GetPerson(UC.CurrentUserID), UC.IpAddress, UC.ProxyIpAddress);
                        loginInfo.ResetType = editBy;
                        Manager.SaveOrUpdate(loginInfo);
                        AddToHistory(loginInfo);
                    }
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
                Manager.RollBack();
                loginInfo = null;
            }
            return(loginInfo);
        }
Example #2
0
        //public String RenewPassword(String login)
        //{
        //    String newPassword = "";
        //    try
        //    {
        //        InternalLoginInfo info  = (from i in this.Manager.GetIQ<InternalLoginInfo>()
        //                  where i.Login == login
        //                  select i).Skip(0).Take(1).ToList().FirstOrDefault();
        //        newPassword = RenewPassword(info);
        //    }
        //    catch (Exception ex)
        //    {
        //        Manager.RollBack();
        //        newPassword = "";
        //    }
        //    return newPassword;
        //}
        public String RenewPassword(InternalLoginInfo userInfo, Person modifyBy, EditType editBy)
        {
            String newPassword = "";

            try
            {
                Helpers.InternalEncryptor helper = new Helpers.InternalEncryptor();
                if (userInfo != null)
                {
                    Manager.BeginTransaction();
                    Person currentUser = Manager.GetPerson(UC.CurrentUserID);
                    if (currentUser == null && UC.CurrentUserID == 0)
                    {
                        currentUser = userInfo.Person;
                    }
                    newPassword       = lm.Comol.Core.DomainModel.Helpers.RandomKeyGenerator.GenerateRandomKey(6, 10, true, true, false);
                    userInfo.Password = helper.Encrypt(newPassword);
                    userInfo.UpdateMetaInfo(modifyBy, UC.IpAddress, UC.ProxyIpAddress);
                    userInfo.ResetType = editBy;
                    Manager.SaveOrUpdate(userInfo);
                    AddToHistory(userInfo);
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
                Manager.RollBack();
                newPassword = "";
            }
            return(newPassword);
        }
Example #3
0
        public InternalLoginInfo AddUserInfo(String login, String password, int idPerson, DateTime passwordExpiresOn, InternalAuthenticationProvider provider)
        {
            InternalLoginInfo userInfo = null;

            try
            {
                Person currentUser = Manager.GetPerson(UC.CurrentUserID);
                Person creator     = Manager.GetPerson(idPerson);
                if (currentUser == null)
                {
                    currentUser = creator;
                }
                if (provider != null && creator != null)
                {
                    Helpers.InternalEncryptor helper = new Helpers.InternalEncryptor();
                    Manager.BeginTransaction();
                    userInfo = new InternalLoginInfo();
                    userInfo.CreateMetaInfo(currentUser, UC.IpAddress, UC.ProxyIpAddress);
                    userInfo.PasswordExpiresOn = passwordExpiresOn;
                    userInfo.Deleted           = BaseStatusDeleted.None;
                    userInfo.isEnabled         = true;
                    userInfo.Provider          = provider;
                    userInfo.Login             = login;
                    userInfo.Password          = helper.Encrypt(password);
                    userInfo.Person            = creator;
                    if (creator.IdDefaultProvider == 0 || String.IsNullOrEmpty(creator.FirstLetter))
                    {
                        //// TEMPORANEO
                        //creator.Login = login;
                        //creator.Password=userInfo.Password;
                        //// TEMPORANEO
                        if (creator.IdDefaultProvider == 0)
                        {
                            creator.IdDefaultProvider = provider.Id;
                        }
                        if (String.IsNullOrEmpty(creator.FirstLetter))
                        {
                            creator.FirstLetter = creator.Surname[0].ToString().ToLower();
                        }
                        Manager.SaveOrUpdate(creator);
                    }
                    Manager.SaveOrUpdate(userInfo);
                    AddToHistory(userInfo);
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
                Manager.RollBack();
                userInfo = null;
            }
            return(userInfo);
        }
Example #4
0
        public Boolean Authenticate(String login, String password)
        {
            Boolean result = false;

            try
            {
                Helpers.InternalEncryptor helper = new Helpers.InternalEncryptor();
                result = (from i in this.Manager.GetIQ <InternalLoginInfo>()
                          where i.Login == login && i.Password == helper.Encrypt(password) && i.Deleted == BaseStatusDeleted.None
                          select i.Id).Any();
            }
            catch (Exception ex) {
            }
            return(result);
        }
Example #5
0
        public InternalLoginInfo GetAuthenticatedUser(String login, String password)
        {
            InternalLoginInfo result = null;

            try
            {
                Helpers.InternalEncryptor helper = new Helpers.InternalEncryptor();
                result = (from i in this.Manager.GetIQ <InternalLoginInfo>()
                          where i.Login == login && i.Password == helper.Encrypt(password) && i.Deleted == BaseStatusDeleted.None
                          select i).Skip(0).Take(1).ToList().FirstOrDefault();
            }
            catch (Exception ex)
            {
                result = null;
            }
            return(result);
        }
Example #6
0
        public InternalLoginInfo SetPassword(Person person, String newPassword, Boolean isOneTimePassword)
        {
            InternalLoginInfo userInfo = null;

            try
            {
                InternalAuthenticationProvider provider = (from p in Manager.GetIQ <InternalAuthenticationProvider>()
                                                           where p.IsEnabled && p.Deleted == BaseStatusDeleted.None
                                                           select p).Skip(0).Take(1).ToList().FirstOrDefault();

                userInfo = (from i in this.Manager.GetIQ <InternalLoginInfo>()
                            where i.Person == person && i.Deleted == BaseStatusDeleted.None
                            select i).Skip(0).Take(1).ToList().FirstOrDefault();
                Person setUser = Manager.GetPerson(UC.CurrentUserID);
                Helpers.InternalEncryptor helper = new Helpers.InternalEncryptor();
                if (userInfo == null || setUser == null)
                {
                    throw new UnknownItemException();
                }
                else
                {
                    Manager.BeginTransaction();
                    userInfo.UpdateMetaInfo(setUser, UC.IpAddress, UC.ProxyIpAddress);
                    userInfo.Password  = helper.Encrypt(newPassword);
                    userInfo.ResetType = (isOneTimePassword) ? EditType.oneTime : EditType.admin;
                    if (provider != null && provider.ChangePasswordAfterDays > 0)
                    {
                        userInfo.PasswordExpiresOn = DateTime.Now.AddDays(provider.ChangePasswordAfterDays);
                    }
                    AddToHistory(userInfo);
                    Manager.Commit();
                }
            }
            catch (UnknownItemException uEx)
            {
                userInfo = null;
                throw uEx;
            }
            catch (Exception ex)
            {
                Manager.RollBack();
                userInfo = null;
            }
            return(userInfo);
        }
Example #7
0
        public InternalLoginInfo GenerateUserInfo(Person person, String login, String password, InternalAuthenticationProvider provider, Boolean oneTimePassword)
        {
            InternalLoginInfo userInfo = null;

            try
            {
                Person currentUser = Manager.GetPerson(UC.CurrentUserID);
                if (currentUser == null)
                {
                    currentUser = person;
                }
                if (provider != null && person != null)
                {
                    Helpers.InternalEncryptor helper = new Helpers.InternalEncryptor();
                    Manager.BeginTransaction();
                    if (!(from l in Manager.GetIQ <InternalLoginInfo>()
                          where l.Person == person && l.Deleted == BaseStatusDeleted.None && l.Provider == provider
                          select l.Id).Any())
                    {
                        userInfo = new InternalLoginInfo();
                        userInfo.CreateMetaInfo(currentUser, UC.IpAddress, UC.ProxyIpAddress);
                        userInfo.PasswordExpiresOn = (provider == null || provider.ChangePasswordAfterDays == 0) ? DateTime.MaxValue : DateTime.Now.AddDays(provider.ChangePasswordAfterDays);
                        userInfo.Deleted           = BaseStatusDeleted.None;
                        userInfo.isEnabled         = true;
                        userInfo.Provider          = provider;
                        userInfo.Login             = login;
                        userInfo.Password          = helper.Encrypt(password);
                        userInfo.Person            = person;
                        userInfo.ResetType         = (oneTimePassword) ? EditType.oneTime : EditType.admin;
                        if (person.IdDefaultProvider == 0 || String.IsNullOrEmpty(person.FirstLetter))
                        {
                            if (person.IdDefaultProvider == 0)
                            {
                                person.IdDefaultProvider = provider.Id;
                            }
                            if (String.IsNullOrEmpty(person.FirstLetter))
                            {
                                person.FirstLetter = person.Surname[0].ToString().ToLower();
                            }
                            Manager.SaveOrUpdate(person);
                        }

                        Manager.SaveOrUpdate(userInfo);
                        AddToHistory(userInfo);
                    }
                    else
                    {
                        userInfo = (from l in Manager.GetIQ <InternalLoginInfo>()
                                    where l.Person == person && l.Deleted == BaseStatusDeleted.None && l.Provider == provider
                                    select l).Skip(0).Take(1).ToList().FirstOrDefault();
                    }
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
                Manager.RollBack();
                userInfo = null;
            }
            return(userInfo);
        }
Example #8
0
        //public Boolean EditPassword(String login, String oldPassword, String newPassword)
        //{
        //    Boolean result = false;
        //    try
        //    {
        //        Helpers.InternalEncryptor helper = new Helpers.InternalEncryptor();
        //        InternalLoginInfo info  = (from i in this.Manager.GetIQ<InternalLoginInfo>()
        //                  where i.Login == login && i.Password == helper.Encrypt(oldPassword)
        //                  select i).Skip(0).Take(1).ToList().FirstOrDefault();
        //        if (info != null) {
        //            Manager.BeginTransaction();
        //            info.Password = helper.Encrypt(newPassword);
        //            info.UpdateMetaInfo(Manager.GetPerson(UC.CurrentUserID), UC.IpAddress, UC.ProxyIpAddress);
        //            Manager.SaveOrUpdate(info);
        //            result = true;
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        Manager.RollBack();
        //    }
        //    return result;
        //}
        public Boolean EditPassword(Person person, String oldPassword, String newPassword, Boolean mustEdit)
        {
            Boolean edited = false;

            try
            {
                InternalAuthenticationProvider provider = (from p in Manager.GetIQ <InternalAuthenticationProvider>()
                                                           where p.IsEnabled && p.Deleted == BaseStatusDeleted.None
                                                           select p).Skip(0).Take(1).ToList().FirstOrDefault();

                InternalLoginInfo info = (from i in this.Manager.GetIQ <InternalLoginInfo>()
                                          where i.Person == person && i.Deleted == BaseStatusDeleted.None
                                          select i).Skip(0).Take(1).ToList().FirstOrDefault();

                Helpers.InternalEncryptor helper = new Helpers.InternalEncryptor();
                if (info == null)
                {
                    throw new UnknownItemException();
                }
                else if (info.Password != helper.Encrypt(oldPassword))
                {
                    throw new InvalidPasswordException();
                }
                else if (mustEdit && info.Password == helper.Encrypt(newPassword))
                {
                    throw new SamePasswordException();
                }
                else
                {
                    Manager.BeginTransaction();
                    info.UpdateMetaInfo(Manager.GetPerson((mustEdit) ? person.Id : UC.CurrentUserID), UC.IpAddress, UC.ProxyIpAddress);
                    info.Password  = helper.Encrypt(newPassword);
                    info.ResetType = (info.ModifiedBy == person || mustEdit) ? EditType.user : EditType.admin;
                    if (provider != null && provider.ChangePasswordAfterDays > 0)
                    {
                        info.PasswordExpiresOn = DateTime.Now.AddDays(provider.ChangePasswordAfterDays);
                    }
                    Manager.Commit();
                    AddToHistory(info);
                    edited = true;
                }
            }

            catch (SamePasswordException uEx)
            {
                throw uEx;
            }
            catch (UnknownItemException uEx) {
                throw uEx;
            }
            catch (InvalidPasswordException pEx)
            {
                throw pEx;
            }
            catch (Exception ex)
            {
                Manager.RollBack();
                newPassword = "";
            }
            return(edited);
        }