Esempio n. 1
0
        public static ApplicationIdentityUser CreateAdminUser(IPosDbContext context)
        {
            var applicationUserManager = IdentityFactory.CreateUserManager(context);

            string username = "******";
            string password = "******";

            ApplicationIdentityUser user = applicationUserManager.FindByNameAsync(username).Result;

            if (user != null)
            {
                return(user);
            }

            user = new ApplicationIdentityUser
            {
                UserName = username,
                Email    = username
            };


            if (IposConfig.UseMembership)
            {
                IposMembershipService.CreateUserAccount(new AppUserViewModel {
                    UserName = username, Password = password
                });
            }


            applicationUserManager.CreateAsync(user, password).Wait();
            applicationUserManager.SetLockoutEnabled(user.Id, false);
            applicationUserManager.Update(user);

            var isInRole = applicationUserManager.IsInRoleAsync(user.Id, IposRoleHelper.ADMIN);

            if (user != null && !isInRole.Result)
            {
                applicationUserManager.AddToRoleAsync(user.Id, IposRoleHelper.ADMIN).Wait();
            }
            return(user);
        }
Esempio n. 2
0
        public HttpResponseMessage CreateUserAccount(AppUserViewModel accountModel)
        {
            var response = new ApiResultViewModel <AppUserViewModel>();

            if (ModelState.IsValid)
            {
                var user = new AppUser
                {
                    Email          = accountModel.Email,
                    UserName       = accountModel.UserName,
                    PhoneNumber    = accountModel.PhoneNumber,
                    FirstName      = accountModel.FirstName,
                    LastName       = accountModel.LastName,
                    LockoutEnabled = !accountModel.Status
                };

                try
                {
                    if (IposConfig.UseMembership)
                    {
                        var membershipUser = IposMembershipService.CreateUserAccount(accountModel);

                        if (membershipUser.HasError)
                        {
                            response.errorMessage = membershipUser.ErrorMessage;
                            response.errorStatus  = true;
                            return(Request.CreateResponse(response));
                        }
                    }

                    var userRegisterResponse = _appUserMgr.Create(user, accountModel.Password);

                    if (userRegisterResponse.Succeeded)
                    {
                        AddToMutipleRoles(accountModel, user.Id);

                        var eventDescription = String.Format("{0} account was created.", accountModel.UserName);

                        var membershipUserId = IposConfig.UseMembership ? (Guid?)IposMembershipService.GetUserId(User.Identity.Name) : null;

                        _auditSvc.LogEvent(eventDescription, AuditType.NEW_ACCOUNT, membershipUserId, User.Identity.GetUserId <int>());

                        response.message = "New User account has been created.";
                        return(Request.CreateResponse(response));
                    }
                    else
                    {
                        response.errorMessage = userRegisterResponse.Errors.FirstOrDefault();
                    }
                }
                catch (Exception e)
                {
                    _logger.Log(e);

#if DEBUG
                    response.errorMessage = e.Message;
                    response.errorStatus  = true;
#else
                    response.errorMessage = "Error occured, please contact admin.";
                    response.errorStatus  = true;
#endif
                }
            }
            else
            {
                response.errorStatus  = true;
                response.errorMessage = "Cannot create user account with Incomplete fields.";
            }

            return(Request.CreateResponse(response));
        }