public string AssociateAccountExists(string Email)
        {
            string          _Email = Email.ToLower();
            WcrCryptography crypto = new WcrCryptography();
            AssociateAccountExistsParameters sqlParams = new AssociateAccountExistsParameters();

            sqlParams.EmailId = crypto.WcrSimpleEncrypt(_Email);
            sqlParams.Action  = "associate";
            HttpResponseMessage resp = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest);

            using (WcrHttpClient client = new WcrHttpClient(WcrVault.Gateway.getwcrusername, WcrVault.Gateway.getwcrpassword))
            {
                resp = client.PostAsJsonAsync("api/AccountCreation/AssociateAccountExists", sqlParams).Result;
                UserAccountStatus returnModel = JsonConvert.DeserializeObject <UserAccountStatus>(resp.Content.ReadAsStringAsync().Result);
                if (returnModel == null)
                {
                    return("-1");
                }
                else
                {
                    DataSet   ds    = new DataSet("dataSet");
                    DataTable table = ds.Tables.Add("associateExists");
                    table.Columns.Add("AccountId", typeof(int));
                    table.Columns.Add("Status", typeof(int));
                    table.Columns.Add("IsEmailVerified", typeof(int));
                    DataRow dr = table.NewRow();
                    dr["AccountId"]       = returnModel.AssociateID;
                    dr["Status"]          = returnModel.Status;
                    dr["IsEmailVerified"] = returnModel.IsEmailVerified;

                    table.Rows.Add(dr);
                    return(ds.GetXml());
                }
            }
        }
        public ActionResult ResetPassword(ForgotPasswordModel resetpassword)
        {
            try
            {
                if (ModelState.ContainsKey("Password"))
                {
                    ModelState.Remove("Password");
                }

                if (ModelState.ContainsKey("UserName"))
                {
                    ModelState.Remove("UserName");
                }

                if (ModelState.IsValid)
                {
                    UserAccountStatus status = UserAccountStatus.NotSet;

                    using (var client = new HttpClient())
                    {
                        client.BaseAddress = new Uri(value);
                        var resetpasswordrequest = client.GetAsync(string.Format("User/ResetPassword?userid={0}&newPassword={1}", resetpassword.UserID, resetpassword.NewPassword));
                        resetpasswordrequest.Wait();
                        var resetpasswordresult = resetpasswordrequest.Result;

                        if (resetpasswordresult.IsSuccessStatusCode)
                        {
                            var resetpasswordtask = resetpasswordresult.Content.ReadAsAsync <UserAccountStatus>();
                            resetpasswordtask.Wait();

                            status = resetpasswordtask.Result;
                            switch (status)
                            {
                            case UserAccountStatus.AccountNotFound:
                                ModelState.AddModelError("UserName", "No matching account could be found. Please try again.");
                                resetpassword.NewPassword        = string.Empty;
                                resetpassword.NewPasswordConfirm = string.Empty;
                                return(View(resetpassword));

                            case UserAccountStatus.UsernameMismatch:
                                ModelState.AddModelError("UserName", "User Name is incorrect. Please try again.");
                                resetpassword.NewPassword        = string.Empty;
                                resetpassword.NewPasswordConfirm = string.Empty;
                                return(View(resetpassword));

                            case UserAccountStatus.Success:
                                return(RedirectToAction("UserLogin", "Account"));
                            }
                        }
                    }
                }
            }
            catch
            {
                ModelState.AddModelError("EmailAddress", "Password has not been reset. Please check the email address entered and try again.");
            }
            return(View(resetpassword));
        }
        private string GenerateConfirmationToken(int userId)
        {
            var userConfirmationToken = Guid.NewGuid();
            var accountStatusModel    = new UserAccountStatus()
            {
                UserAccountConfirmed  = false,
                UserConfirmationToken = userConfirmationToken,
                UserId = userId
            };

            _context.UserAccountStatusValues.Add(accountStatusModel);
            _context.SaveChanges();
            return(userConfirmationToken.ToString());
        }
Example #4
0
        public IHttpActionResult ValidateUser(string username, string password)
        {
            try
            {
                UserAccountStatus    result             = UserAccountStatus.NotSet;
                EFMembershipProvider membershipprovider = new EFMembershipProvider();
                membershipprovider.Initialize("SqlProvider", new NameValueCollection());

                MembershipUser user          = membershipprovider.GetUser(username, false);
                DateTime       lastLoginDate = DateTime.MinValue;
                if (user != null)
                {
                    //Get the last login date
                    lastLoginDate = user.LastLoginDate;
                }

                if (membershipprovider.ValidateUser(username, password))
                {
                    using (var ctx = new InventoryManagementEntities())
                    {
                        //check if the employer, user is with, is active:
                        if (ctx.Users != null && ctx.Users.Any() && ctx.Users.Any(c => c.Email == user.UserName && c.ActiveFL == true) == false)
                        {
                            result = UserAccountStatus.InactiveEmployer;
                            return(Ok(result));
                        }
                        //Update user table with last login date
                        if (user != null)
                        {
                            if (user.ProviderUserKey != null)
                            {
                                Guid.TryParse(user.ProviderUserKey.ToString(), out Guid userid);
                                User loginUser = ctx.Users.FirstOrDefault(c => c.ID == userid);
                                if (loginUser != null)
                                {
                                    loginUser.LastLoginDate = lastLoginDate;
                                    ctx.SaveChanges();
                                }
                            }
                        }
                    }
                    result = UserAccountStatus.Success;
                    return(Ok(result));
                }
                if (user != null)
                {
                    //user is locked out due to too many incorrect login attempts:
                    if (user.IsLockedOut)
                    {
                        return(Ok(UserAccountStatus.LockedOut));
                    }

                    //user account is inactive:
                    return(Ok(!user.IsApproved ? UserAccountStatus.Inactive : UserAccountStatus.InvalidCredentials));
                }
                result = UserAccountStatus.AccountNotFound;
                return(Ok(result));
            }
            catch (Exception e)
            {
                throw new Exception("Error validating user", e);
            }
        }
Example #5
0
 public abstract UserSet UsersInRole(int pageIndex, int pageSize, SortUsersBy sortBy, SortOrder sortOrder, Guid roleID, UserAccountStatus accountStatus, bool returnRecordCount);
Example #6
0
 public abstract UserSet GetUsers(int pageIndex, int pageSize, SortUsersBy sortBy, SortOrder sortOrder, string usernameFilter, bool includeEmailInFilter, UserAccountStatus accountStatus, bool returnRecordCount, bool includeHiddenUsers, bool returnModerationCounters);
        public ActionResult UserLogin(LoginDTO model)
        {
            if (ModelState.IsValid)
            {
                UserAccountStatus loginStatus = UserAccountStatus.NotSet;

                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(value);

                    var validateUserTask = client.GetAsync("User/ValidateUser?username="******"&password="******"Password", "Incorrect username or password, please try again.");
                            break;

                        case UserAccountStatus.LockedOut:
                            ModelState.AddModelError("Password", "Your account has been locked out because of too many failed login attempts. Please contact the administrator to have your account unlocked.");
                            break;

                        case UserAccountStatus.Inactive:
                            ModelState.AddModelError("Password", "Your account is currently inactive, please contact your administrator for any further questions regarding this account.");
                            break;

                        case UserAccountStatus.InactiveEmployer:
                            ModelState.AddModelError("Password", "Your employer account is currently inactive, please contact your administrator for any further questions regarding this account.");
                            break;

                        case UserAccountStatus.AccountNotFound:
                            ModelState.AddModelError("UserName", "Incorrect username or password, please try again.");
                            break;

                        case UserAccountStatus.Success:
                        {
                            result = null;
                            var userinfo = client.GetAsync("User/GetUserByEmail?email=" + model.UserName);
                            userinfo.Wait();
                            result = userinfo.Result;
                            if (result.IsSuccessStatusCode)
                            {
                                var readUserDTOTask = result.Content.ReadAsAsync <UserSecurityToken>();
                                readUserDTOTask.Wait();

                                UserSecurityToken userSecurityToken = readUserDTOTask.Result;
                                Session["CurrentUser"] = userSecurityToken;
                                if (Session["MasterData"] == null)
                                {
                                    Session["MasterData"] = new AdminController().ReadMasterData(MasterDataType.None);
                                }
                                // if (Session["SupplierList"] == null)
                                //    Session["SupplierList"] = new AdminController().GetSupplierList();

                                if (userSecurityToken != null)
                                {
                                    if (userSecurityToken.Role.Guid == RoleType.Admin.Guid)
                                    {
                                        return(RedirectToAction("Index", "Admin"));
                                    }
                                }
                            }
                            break;
                        }
                        }
                    }
                }
            }
            else
            {
            }
            return(View(model));
        }
Example #8
0
        public static void Initialize(ApplicationDbContext context)
        {
            context.Database.EnsureCreated();

            // Look for any users.
            if (context.UserValues.Any())
            {
                return;   // DB has been seeded
            }

            var users = new User[] {
                new Student {
                    UserAccountType       = UserAccountType.Student,
                    UserBestContactNumber = "09047152678",
                    UserDob                           = new DateTime(1999, 5, 26),
                    UserEmail                         = "*****@*****.**",
                    UserFaculty                       = "Software Engineering",
                    UserGenderType                    = UserGenderType.Female,
                    UserHasLoggedIn                   = false,
                    UserHomePhone                     = "+810127189874",
                    UserMobile                        = "09047152678",
                    UserPass                          = "******",
                    UserPrefFirstName                 = "Kirino",
                    UserLastName                      = "Kousaka",
                    UserName                          = "******",
                    StudentCountry                    = "Japan",
                    StudentCourseType                 = "CO9067",
                    StudentDegreeType                 = StudentDegreeType.Undergraduate,
                    StudentDegreeYearType             = StudentDegreeYearType.ThirdYear,
                    StudentLanguage                   = "Japanese",
                    StudentPermissionToUseData        = true,
                    StudentStatusType                 = StudentStatusType.International,
                    StudentOtherEducationalBackground = "None"
                },
                new Admin {
                    UserAccountType       = UserAccountType.Admin,
                    UserBestContactNumber = "09037981124",
                    UserDob           = new DateTime(1998, 8, 14),
                    UserEmail         = "*****@*****.**",
                    UserFaculty       = "Software Engineering",
                    UserGenderType    = UserGenderType.Female,
                    UserHasLoggedIn   = false,
                    UserHomePhone     = "+810128670798",
                    UserMobile        = "09037981124",
                    UserPass          = "******",
                    UserPrefFirstName = "Sora",
                    UserLastName      = "Kasugano",
                    UserName          = "******",
                }
            };

            foreach (User user in users)
            {
                context.UserValues.Add(user);
            }

            context.SaveChanges();

            var registeredEmails = new RegisteredAdminEmail[] {
                new RegisteredAdminEmail {
                    RegisteredAdminEmailAddress = "*****@*****.**",
                    EmailHasBeenRegistered      = true
                },
                new RegisteredAdminEmail {
                    RegisteredAdminEmailAddress = "*****@*****.**",
                    EmailHasBeenRegistered      = false
                }
            };

            foreach (var registeredEmail in registeredEmails)
            {
                context.RegisteredAdminEmailValues.Add(registeredEmail);
            }

            var userAccountStatuses = new UserAccountStatus[] {
                new UserAccountStatus {
                    UserAccountConfirmed  = true,
                    UserConfirmationToken = Guid.NewGuid(),
                    UserId = GetUserIdFromEmail("*****@*****.**", users)
                },
                new UserAccountStatus {
                    UserAccountConfirmed  = true,
                    UserConfirmationToken = Guid.NewGuid(),
                    UserId = GetUserIdFromEmail("*****@*****.**", users)
                }
            };

            foreach (var accountStatus in userAccountStatuses)
            {
                context.UserAccountStatusValues.Add(accountStatus);
            }

            context.SaveChanges();
        }
Example #9
0
 public void Insert(IDbConnection connection, string firstname, string lastname, string username, string password, string statusMessage, List <byte> userIcon, UserAccountStatus status)
 {
     repository.Insert(connection, firstname, lastname, username, password, statusMessage, userIcon?.ToArray(), status);
 }
Example #10
0
File: Users.cs Project: pcstx/OA
        public static UserSet GetUsers(int pageIndex, int pageSize, SortUsersBy sortBy, SortOrder sortOrder, string usernameFilter, bool includeEmailInFilter, bool cacheable, UserAccountStatus accountStatus, bool returnRecordCount, bool includeHiddenUsers)
        {
            HttpContext context = HttpContext.Current;
            UserSet users;
            // Return moderation counters also
            //
            bool returnModerationCounters = CSContext.Current.SiteSettings.EnableUserModerationCounters;

            // If we're compiled with debug code we never cache
            //
            #if DEBUG_NOCACHE
            cacheable = false;
            #endif

            if (cacheable) {

                // Build a cache key
                //
                string usersKey = pageIndex.ToString() + pageSize.ToString() + sortBy + sortOrder + usernameFilter + includeEmailInFilter + accountStatus + returnModerationCounters;

                // Serve from the cache when possible
                //
                users = CSCache.Get(usersKey) as UserSet;

                if (users == null) {

                    users = GetUsersFromDataProvider (pageIndex, pageSize, sortBy, sortOrder, usernameFilter, includeEmailInFilter, accountStatus, returnRecordCount, includeHiddenUsers, returnModerationCounters);

                    // Insert the user collection into the cache for 30 seconds
                    CSCache.Insert(usersKey, users, CSCache.MinuteFactor / 2);

                }

            } else {

                users = GetUsersFromDataProvider(pageIndex, pageSize, sortBy, sortOrder, usernameFilter, includeEmailInFilter, accountStatus, returnRecordCount, includeHiddenUsers, returnModerationCounters);

            }

            return users;
        }
Example #11
0
File: Users.cs Project: pcstx/OA
        private static UserSet GetUsersFromDataProvider(int pageIndex, int pageSize, SortUsersBy sortBy, SortOrder sortOrder, string usernameFilter, bool includeEmailInFilter, UserAccountStatus accountStatus, bool returnRecordCount, bool includeHiddenUsers, bool returnModerationCounters)
        {
            // Create Instance of the CommonDataProvider
            CommonDataProvider dp = CommonDataProvider.Instance();

            return dp.GetUsers(pageIndex, pageSize, sortBy, sortOrder, usernameFilter, includeEmailInFilter, accountStatus, returnRecordCount, includeHiddenUsers, returnModerationCounters );
        }
Example #12
0
File: SiteUrls.cs Project: pcstx/OA
 public virtual string AdminManageUsersFilter(UserAccountStatus statusFilter)
 {
     return urlData.FormatUrl("admin_User_List_Filter", (int)statusFilter);
 }
Example #13
0
File: Roles.cs Project: pcstx/OA
        public static UserSet UsersInRole(int pageIndex, int pageSize, SortUsersBy sortBy, SortOrder sortOrder, Guid roleID, bool cacheable, UserAccountStatus accountStatus, bool returnRecordCount)
        {
            UserSet u = null;

            // build a unique cache key
            StringBuilder s = new StringBuilder();
            s.Append("UsersInRole-");
            s.Append(pageIndex.ToString());
            s.Append(pageSize.ToString());
            s.Append(sortBy.ToString());
            s.Append(sortOrder.ToString());
            s.Append(roleID.ToString());
            s.Append(accountStatus.ToString());
            s.Append(returnRecordCount.ToString());

            string cacheKey =  s.ToString();

            // Get the data from the data provider if not in the cache
            //
            u = CSCache.Get(cacheKey) as UserSet;
            if (u == null || !cacheable) {
                CommonDataProvider dp = CommonDataProvider.Instance();
                u = dp.UsersInRole(pageIndex, pageSize, sortBy, sortOrder, roleID, accountStatus, returnRecordCount);

                if (cacheable)
                    CSCache.Insert(cacheKey,u,12 * CSCache.HourFactor);
            }
            return u;
        }
Example #14
0
        public UserAccountRepositoryTests()
        {
            //this.sut = this.ServiceProvider.GetService<IUserAccountRepository>();
            this.sut = this.ServiceProvider.GetRequiredService <IGenericRepository <UserAccount> >();
            this.ServiceProvider.GetRequiredService <UserAccountsDbContext>().Database.Migrate();
            var domains = new[] { "East", "West" };

            this.entityFaker = new Faker <UserAccount>() //https://github.com/bchavez/Bogus
                               .RuleFor(u => u.Email, (f, u) => f.Internet.Email())
                               .RuleFor(u => u.LastVisitDate, (f, u) => DateTime.UtcNow.AddDays(-1))
                               .RuleFor(u => u.RegisterDate, (f, u) => DateTime.UtcNow.AddDays(-14))
                               .RuleFor(u => u.TenantId, (f, u) => this.tenantId)
                               .RuleFor(u => u.AdAccount, (f, u) => AdAccount.For(f.PickRandom(new[] { "East", "West" }) + $"\\{f.System.Random.AlphaNumeric(5)}"))
                               //.RuleFor(u => u.Status, (f, u) => f.PickRandom(new[] { UserAccountStatus.Active, UserAccountStatus.Inactive }))
                               .RuleFor(u => u.Status, (f, u) => f.PickRandom(new[] { UserAccountStatus.For("Active"), UserAccountStatus.For("Inactive") }))
                               .RuleFor(u => u.VisitCount, (f, u) => 1);
        }
Example #15
0
        public void Insert(IDbConnection connection, string firstname, string lastname, string username, string password, string statusMessage, byte[] userIcon, UserAccountStatus status)
        {
            string insertQuery = @"INSERT into useraccount(useraccount_firstname, useraccount_lastname, useraccount_username, useraccount_password, useraccount_statusmessage, useraccount_usericon, useraccount_status) " +
                                 "VALUES (@firstname, @lastname, @username, @password, @statusmessage, @usericon, @status)";

            var result = connection.Execute(insertQuery, new
            {
                firstname     = firstname,
                lastname      = lastname,
                username      = username,
                password      = password,
                statusmessage = statusMessage,
                usericon      = userIcon,
                status        = status
            });
        }
Example #16
0
        /// <summary>
        ///  查询用户状态列表
        /// </summary>
        /// <param name="cellphone"></param>
        /// <param name="country"></param>
        /// <param name="status"></param>
        /// <param name="pageSize"></param>
        /// <param name="index"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        public List <UserAccountStatus> GetUserAccountStatusList(string cellphone, int country, int?status, int pageSize, int index, out int totalCount)
        {
            var routerDAC = new ProfileRouterDAC();
            var list      = new List <UserAccountStatus>();

            var accountDAC  = new UserAccountDAC();
            var accountList = accountDAC.GetUserAccountStatusList(cellphone, country, status, pageSize, index, out totalCount);
            var guids       = new List <Guid>();

            if (accountList != null)
            {
                foreach (var ac in accountList)
                {
                    guids.Add(ac.Id);
                }
            }
            else
            {
                return(null);
            }

            //UserLoginLogDAC logDAC = new UserLoginLogDAC();
            //List<UserLoginLog> logs = logDAC.GetLastLoginTimeListByIds(guids);

            var server = routerDAC.GetRouter(country);

            if (server == null)
            {
                throw new InvalidProfileServiceException();
            }

            var dac         = new UserProfileRPC(server);
            var profileList = dac.GetListByIds(guids);

            foreach (var account in accountList)
            {
                //UserLoginLog log = null;
                var accountStatus = new UserAccountStatus
                {
                    UserAccountId     = account.Id,
                    IsAllowExpense    = account.IsAllowExpense,
                    IsAllowWithdrawal = account.IsAllowWithdrawal,
                    Cellphone         = account.Cellphone,
                    Country           = account.CountryId,
                    RegistrationDate  = account.RegistrationDate,
                    Status            = account.Status
                };
                UserProfile profile = null;
                if (profileList != null)
                {
                    foreach (var item in profileList)
                    {
                        if (item.UserAccountId == account.Id)
                        {
                            profile = item;
                            break;
                        }
                    }
                }
                if (profile != null)
                {
                    accountStatus.L1VerifyStatus = profile.L1VerifyStatus;
                    accountStatus.L2VerifyStatus = profile.L2VerifyStatus;
                    //accountStatus.Remark = profile.Remark;
                }

                //if (logs != null)
                //{
                //    foreach (var item in logs)
                //    {
                //        if (item.UserAccountId == account.Id)
                //        {
                //            log = item;
                //            break;
                //        }
                //    }
                //}
                //if (log != null)
                //{
                //    accountStatus.LastLoginTimeStamp = log.Timestamp;
                //}

                list.Add(accountStatus);
            }
            return(list);
        }