public async Task <User> Post([FromBody] User User)
        {
            User user = null;

            if (ModelState.IsValid)
            {
                IdentityUser identityuser = await identityUserManager.FindByNameAsync(User.Username);

                if (identityuser == null)
                {
                    identityuser          = new IdentityUser();
                    identityuser.UserName = User.Username;
                    identityuser.Email    = User.Username;
                    var result = await identityUserManager.CreateAsync(identityuser, User.Password);

                    if (result.Succeeded)
                    {
                        user = users.AddUser(User);
                        SiteUser SiteUser = new SiteUser();
                        SiteUser.SiteId       = User.SiteId;
                        SiteUser.UserId       = user.UserId;
                        SiteUser.IsAuthorized = true;
                        siteusers.AddSiteUser(SiteUser);
                    }
                }
            }

            return(user);
        }
예제 #2
0
        public async Task <User> Post([FromBody] User User)
        {
            User user = null;

            if (ModelState.IsValid)
            {
                IdentityUser identityuser = await IdentityUserManager.FindByNameAsync(User.Username);

                if (identityuser == null)
                {
                    identityuser          = new IdentityUser();
                    identityuser.UserName = User.Username;
                    identityuser.Email    = User.Username;
                    var result = await IdentityUserManager.CreateAsync(identityuser, User.Password);

                    if (result.Succeeded)
                    {
                        user = Users.AddUser(User);
                        if (!user.IsSuperUser)
                        {
                            SiteUser siteuser = new SiteUser();
                            siteuser.SiteId = User.SiteId;
                            siteuser.UserId = user.UserId;
                            SiteUsers.AddSiteUser(siteuser);

                            List <Role> roles = Roles.GetRoles(user.SiteId).Where(item => item.IsAutoAssigned == true).ToList();
                            foreach (Role role in roles)
                            {
                                UserRole userrole = new UserRole();
                                userrole.UserId        = user.UserId;
                                userrole.RoleId        = role.RoleId;
                                userrole.EffectiveDate = null;
                                userrole.ExpiryDate    = null;
                                UserRoles.AddUserRole(userrole);
                            }
                        }
                    }
                }
                else
                {
                    user = Users.GetUser(User.Username);
                    SiteUser siteuser = SiteUsers.GetSiteUser(User.SiteId, user.UserId);
                    if (siteuser == null)
                    {
                        if (!user.IsSuperUser)
                        {
                            siteuser        = new SiteUser();
                            siteuser.SiteId = User.SiteId;
                            siteuser.UserId = user.UserId;
                            SiteUsers.AddSiteUser(siteuser);

                            List <Role> roles = Roles.GetRoles(User.SiteId).Where(item => item.IsAutoAssigned == true).ToList();
                            foreach (Role role in roles)
                            {
                                UserRole userrole = new UserRole();
                                userrole.UserId        = user.UserId;
                                userrole.RoleId        = role.RoleId;
                                userrole.EffectiveDate = null;
                                userrole.ExpiryDate    = null;
                                UserRoles.AddUserRole(userrole);
                            }
                        }
                    }
                }
            }

            return(user);
        }
        public async Task <User> Post([FromBody] User User)
        {
            User user = null;

            if (ModelState.IsValid)
            {
                bool authorized = HttpContext.User.IsInRole(Constants.AdminRole);
                if (!authorized && !Users.GetUsers().Any())
                {
                    authorized = true; // during initial installation we need to be able to create the host user
                }
                if (authorized)
                {
                    IdentityUser identityuser = await IdentityUserManager.FindByNameAsync(User.Username);

                    if (identityuser == null)
                    {
                        identityuser          = new IdentityUser();
                        identityuser.UserName = User.Username;
                        identityuser.Email    = User.Username;
                        var result = await IdentityUserManager.CreateAsync(identityuser, User.Password);

                        if (result.Succeeded)
                        {
                            user = Users.AddUser(User);
                            if (!user.IsHost) // host users are part of every site by default
                            {
                                SiteUser siteuser = new SiteUser();
                                siteuser.SiteId = User.SiteId;
                                siteuser.UserId = user.UserId;
                                SiteUsers.AddSiteUser(siteuser);

                                List <Role> roles = Roles.GetRoles(user.SiteId).Where(item => item.IsAutoAssigned == true).ToList();
                                foreach (Role role in roles)
                                {
                                    UserRole userrole = new UserRole();
                                    userrole.UserId        = user.UserId;
                                    userrole.RoleId        = role.RoleId;
                                    userrole.EffectiveDate = null;
                                    userrole.ExpiryDate    = null;
                                    UserRoles.AddUserRole(userrole);
                                }
                            }
                        }
                    }
                    else
                    {
                        user = Users.GetUser(User.Username);
                        SiteUser siteuser = SiteUsers.GetSiteUser(User.SiteId, user.UserId);
                        if (siteuser == null)
                        {
                            if (!user.IsHost) // host users are part of every site by default
                            {
                                siteuser        = new SiteUser();
                                siteuser.SiteId = User.SiteId;
                                siteuser.UserId = user.UserId;
                                SiteUsers.AddSiteUser(siteuser);

                                List <Role> roles = Roles.GetRoles(User.SiteId).Where(item => item.IsAutoAssigned == true).ToList();
                                foreach (Role role in roles)
                                {
                                    UserRole userrole = new UserRole();
                                    userrole.UserId        = user.UserId;
                                    userrole.RoleId        = role.RoleId;
                                    userrole.EffectiveDate = null;
                                    userrole.ExpiryDate    = null;
                                    UserRoles.AddUserRole(userrole);
                                }
                            }
                        }
                    }
                }
            }

            return(user);
        }