Пример #1
0
        private async Task AddSelectedUserRoles(Guid userID)
        {
            Guid loggedInUserID = Guid.Parse(_user.Claims.Where(x => x.Type == "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/UserID").First().Value);

            foreach (var selectedRole in UserRoles.Where(x => x.Selected == true))
            {
                LinkUserRole link = new LinkUserRole();
                link.LinkUserRoleID = Guid.NewGuid();
                link.UserID         = userID;
                link.UserRoleID     = selectedRole.UserRoleID;
                link.CreatedUserID  = loggedInUserID;
                link.EditUserID     = loggedInUserID;
                _context.Add(link);
            }
        }
Пример #2
0
        private static void AddInitialUserAccounts(AppDBContext context, SecurityOptions securityOptions)
        {
            if (context.Users.Any() == false)
            {
                var    password       = "******";
                string hashedPassword = HashProvider.ComputeHash(password, HashProvider.HashAlgorithmList.SHA256, securityOptions.PasswordSalt);

                var users = new User[]
                {
                    new User
                    {
                        DisplayName     = "Dezi Van Vuuren",
                        FirstName       = "Dezi",
                        Surname         = "Van Vuuren",
                        EmailAddress    = "*****@*****.**",
                        Password        = hashedPassword,
                        UserID          = Guid.NewGuid(),
                        CreatedDateTime = DateTime.UtcNow,
                        CreatedUserID   = Guid.Empty,
                        EditDateTime    = DateTime.UtcNow,
                        EditUserID      = Guid.Empty,
                    }
                };

                foreach (User s in users)
                {
                    context.Users.Add(s);

                    var          adminRole = context.UserRoles.Where(x => x.EventCode == PublicEnums.UserRoleList.ROLE_ADMINISTRATOR).First();
                    LinkUserRole roleLink  = new LinkUserRole()
                    {
                        LinkUserRoleID = Guid.NewGuid(),
                        UserID         = s.UserID,
                        UserRoleID     = adminRole.UserRoleID
                    };
                    context.LinkUserRole.Add(roleLink);
                }
                context.SaveChanges();
            }
        }
Пример #3
0
        internal async Task <bool> Register()
        {
            bool isNew = false;

            if (string.IsNullOrEmpty(FirstName))
            {
                _errorMessage = "Please enter a Name";
                return(false);
            }
            else if (string.IsNullOrEmpty(Surname))
            {
                _errorMessage = "Please enter a Surname";
                return(false);
            }
            else if (string.IsNullOrEmpty(EmailAddress))
            {
                _errorMessage = "Please enter a Email";
                return(false);
            }
            else if (string.IsNullOrEmpty(Password))
            {
                _errorMessage = "Please enter a Password";
                return(false);
            }
            else if (Password != ConfirmPassword)
            {
                _errorMessage = "The password and Confirm Password must match";
                return(false);
            }

            var user = _context.Users.FirstOrDefault(x => ((x.EmailAddress == EmailAddress && x.EmailAddress != null)));

            if (user == null)
            {
                user                 = new User();
                isNew                = true;
                user.UserID          = Guid.NewGuid();
                user.IsSuspended     = false;
                user.LoginTries      = 0;
                user.CreatedUserID   = user.UserID;
                user.CreatedDateTime = DateTime.UtcNow;
                user.IsRemoved       = false;

                user.Password = HashProvider.ComputeHash(Password, HashProvider.HashAlgorithmList.SHA256, _securityOptions.PasswordSalt);
            }
            else
            {
                _errorMessage = "The user email address already exists. Find the existing user first and edit their details";
                return(false);
            }

            user.DisplayName  = DisplayName;
            user.EmailAddress = EmailAddress;
            user.IsSuspended  = false;
            user.LoginTries   = 0;
            user.EditUserID   = user.UserID;
            user.EditDateTime = DateTime.UtcNow;
            user.FirstName    = FirstName;
            user.Surname      = Surname;
            user.Timezone     = _context.SystemConfiguration.First(x => x.EventCode == PublicEnums.SystemConfigurationList.KEY_DEFAULT_TIME_ZONE.ToString()).ConfigValue;

            if (isNew)
            {
                _context.Add(user);

                //Add default student user role
                LinkUserRole link = new LinkUserRole();
                link.LinkUserRoleID = Guid.NewGuid();
                link.UserID         = user.UserID;
                link.UserRoleID     = _context.UserRoles.First(x => x.EventCode == PublicEnums.UserRoleList.ROLE_USER).UserRoleID;
                link.CreatedUserID  = user.UserID;
                link.EditUserID     = user.UserID;
                _context.Add(link);
            }
            else
            {
                _context.Update(user);
            }

            await _context.SaveChangesAsync();

            return(true);
        }