public UserRole Post([FromBody] UserRole userRole)
        {
            var role = _roles.GetRole(userRole.RoleId);

            if (ModelState.IsValid && role != null && role.SiteId == _alias.SiteId && (User.IsInRole(RoleNames.Host) || role.Name != RoleNames.Host))
            {
                if (role.Name == RoleNames.Host)
                {
                    // host roles can only exist at global level - remove all site specific user roles
                    _userRoles.DeleteUserRoles(userRole.UserId);
                    _logger.Log(LogLevel.Information, this, LogFunction.Delete, "User Roles Deleted For UserId {UserId}", userRole.UserId);
                }

                userRole = _userRoles.AddUserRole(userRole);
                _logger.Log(LogLevel.Information, this, LogFunction.Create, "User Role Added {UserRole}", userRole);

                _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.User, userRole.UserId);
            }
            else
            {
                _logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized UserRole Post Attempt {UserRole}", userRole);
                HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
                userRole = null;
            }
            return(userRole);
        }
Esempio n. 2
0
        public async Task <int> AddUpdateAdminUser(OrganisationAdminViewDetail model)
        {
            try
            {
                var userInfo = await FindAsync(new { id = model.UserId });

                if (userInfo == null)
                {
                    userInfo          = new User();
                    userInfo.IsActive = true;
                }
                userInfo.FirstName          = model.Name;
                userInfo.LastName           = model.LastName ?? null;
                userInfo.PhoneNumber        = model.PhoneNumber;
                userInfo.Email              = model.EmailAddress;
                userInfo.NormalizedEmail    = model.EmailAddress;
                userInfo.NormalizedUserName = model.EmailAddress.ToUpper();
                userInfo.UserName           = model.EmailAddress;
                userInfo.IsDeleted          = false;
                userInfo.IsAdmin            = true;
                userInfo.OrganisationId     = model.OrganisationId;
                userInfo.Custom1            = model.Custom1;

                var userId = await InsertOrUpdateAsync(userInfo, new { id = model.UserId > 0 ? model.UserId : 0 });

                if (userId > 0)
                {
                    await _userRoleRepository.AddUserRole(new UserRole { UserId = userId, RoleId = model.RoleId });

                    await _photos.SaveUpdateImage(model.UserImagePath, userId, userId, (int)PhotoEntityType.UserProfile);

                    if (model.ProgramsAccessibility.Count > 0)
                    {
                        var programTypes = _mapper.Map <List <AdminProgramAccess> >(model.ProgramsAccessibility);
                        programTypes.ToList().ForEach(x => x.UserId = userId);
                        await _adminProgramTypeService.AddUpdateAdminProgramType(programTypes);
                    }
                    if (model.MerchantAccessibility.Count > 0)
                    {
                        List <MerchantAdmins> oMerchanrAdmin = new List <MerchantAdmins>();
                        foreach (var item in model.MerchantAccessibility)
                        {
                            var oAdmin = new MerchantAdmins()
                            {
                                adminUserId = userId,
                                merchantId  = item.merchantId
                            };
                            oMerchanrAdmin.Add(oAdmin);
                        }
                        await _merchantAdminService.AddUpdateMerchantFromAdmins(oMerchanrAdmin);
                    }
                    return(userId);
                }
                return(0);
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 3
0
 public Task AddToRoleAsync(UserAccount user, string roleName, CancellationToken cancellationToken)
 {
     return(Task.Factory.StartNew(() =>
     {
         userRoleRepository.AddUserRole(user.Id, roleName);
     }));
 }
Esempio n. 4
0
        public async Task <ActionResult <int> > RegisterUser(RegistrationModel userModel)
        {
            try
            {
                var user = mapper.Map <User>(userModel);
                user.RegistrationDate = DateTime.Now;
                user.IsActive         = true;
                generalRepository.Add(user);
                await generalRepository.SaveChangesAsync();

                user = await userRepository.GetUserByEmailAsync(user.Mail);

                var intResponse = userRoleRepository.AddUserRole(user.UserID);
                if (intResponse > 0)
                {
                    if (await userRepository.ChangeCurrentUserRole(user.UserID, intResponse))
                    {
                        return(Ok(user.UserID));
                    }
                    else
                    {
                        return(StatusCode(StatusCodes.Status500InternalServerError));
                    }
                }
                else
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }
        public async Task <IdentityResult> AddUserRole(string user, string role)
        {
            try
            {
                //get role
                var myroles = await _roleRepository.GetSingleDataByConditionAsync(new { Name = role });

                //get user
                var myuser = await _userRepository.GetSingleDataByConditionAsync(new { Email = user, IsActive = true, IsDeleted = false });

                if (myroles != null)
                {
                    UserRole userRole = new UserRole
                    {
                        RoleId = myroles.Id,
                        UserId = myuser.Id
                    };
                    await _userRoleRepository.AddUserRole(userRole);
                }
                return(await Task.FromResult(IdentityResult.Success));
            }
            catch (Exception)
            {
                throw;
            }
        }
 public async Task <ActionResult> AddProjectMilestone(UserRole model)
 {
     if (ModelState.IsValid)
     {
         return(Ok(await _repository.AddUserRole(model)));
     }
     return(BadRequest());
 }
Esempio n. 7
0
 public UserRole Post([FromBody] UserRole UserRole)
 {
     if (ModelState.IsValid)
     {
         UserRole = UserRoles.AddUserRole(UserRole);
     }
     return(UserRole);
 }
Esempio n. 8
0
 public UserRole Post([FromBody] UserRole UserRole)
 {
     if (ModelState.IsValid)
     {
         UserRole = _userRoles.AddUserRole(UserRole);
         _logger.Log(LogLevel.Information, this, LogFunction.Create, "User Role Added {UserRole}", UserRole);
     }
     return(UserRole);
 }
Esempio n. 9
0
 public UserRole Post([FromBody] UserRole userRole)
 {
     if (ModelState.IsValid)
     {
         userRole = _userRoles.AddUserRole(userRole);
         _syncManager.AddSyncEvent(EntityNames.User, userRole.UserId);
         _logger.Log(LogLevel.Information, this, LogFunction.Create, "User Role Added {UserRole}", userRole);
     }
     return(userRole);
 }
        public async Task <NetResult <SuccessResult> > AddUserToRole([FromBody] AddUserRoleModel <TKey> model)
        {
            try
            {
                SuccessResult result = new SuccessResult();
                result.Success = await _userRole.AddUserRole(model, this.UserId <TKey>());

                return(result);
            }
            catch (Exception ext) { return(ext); }
        }
Esempio n. 11
0
        public UserRole Post([FromBody] UserRole userRole)
        {
            var role = _roles.GetRole(userRole.RoleId);

            if (ModelState.IsValid && (User.IsInRole(RoleNames.Host) || role.Name != RoleNames.Host))
            {
                if (role.Name == RoleNames.Host)
                {
                    // host roles can only exist at global level - remove all site specific user roles
                    _userRoles.DeleteUserRoles(userRole.UserId);
                    _logger.Log(LogLevel.Information, this, LogFunction.Delete, "User Roles Deleted For UserId {UserId}", userRole.UserId);
                }

                userRole = _userRoles.AddUserRole(userRole);
                _logger.Log(LogLevel.Information, this, LogFunction.Create, "User Role Added {UserRole}", userRole);

                _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.User, userRole.UserId);
            }
            return(userRole);
        }
Esempio n. 12
0
        public IActionResult AddUser([FromBody]UserViewModel newUser)
        {
            if (!ModelState.IsValid)
            {
                return ValidationError(GeneralMessages.User);
            }

            var sha1 = System.Security.Cryptography.SHA1.Create();

            var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(newUser.Password));
            newUser.Password = BitConverter.ToString(hash).Replace("-", "").ToLower();
           
            User user = new User()
            {
                Name = newUser.Name,
                FirstName = newUser.FirstName,
                LastName = newUser.LastName,
                Password = newUser.Password,
                Email = newUser.Email,
                DepartmentId = newUser.DepartmentId,
                IsActive = true
            };

            userRepository.AddUser(user);
   
            foreach(var roleId in newUser.UserRole)
            {
                userRoleRepository.AddUserRole(new UserRole()
                {
                    UserId = user.Id,
                    RoleId = roleId
                });
            }

            Context.SaveChanges();

            var addedUser = new UserDto()
            {
                Name = user.Name,
                FirstName = user.FirstName,
                LastName = user.LastName,
                Email = user.Email,
                UserRole = new List<int>(user.UserRole.Select(li => li.RoleId)),
                DepartmentId = user.DepartmentId,
                IsActive = user.IsActive
            };
            return Ok(addedUser);
        }
Esempio n. 13
0
 public GenericResponse <TUserRole> AddUserRole(TUserRole userRole)
 {
     try
     {
         if (userRole == null)
         {
             return(new GenericResponse <TUserRole>("UserRole is empty"));
         }
         UserRoleRepository.AddUserRole(userRole);
         return(new GenericResponse <TUserRole>(userRole));
     }
     catch (Exception ex)
     {
         return(new GenericResponse <TUserRole>(ex.Message));
     }
 }
Esempio n. 14
0
        //TODO shoud be moved to another layer
        private async Task <User> CreateUser(User user)
        {
            User newUser = null;

            bool verified;
            bool allowregistration;

            if (user.Username == UserNames.Host || User.IsInRole(RoleNames.Admin))
            {
                verified          = true;
                allowregistration = true;
            }
            else
            {
                verified          = false;
                allowregistration = _sites.GetSite(user.SiteId).AllowRegistration;
            }

            if (allowregistration)
            {
                IdentityUser identityuser = await _identityUserManager.FindByNameAsync(user.Username);

                if (identityuser == null)
                {
                    identityuser                = new IdentityUser();
                    identityuser.UserName       = user.Username;
                    identityuser.Email          = user.Email;
                    identityuser.EmailConfirmed = verified;
                    var result = await _identityUserManager.CreateAsync(identityuser, user.Password);

                    if (result.Succeeded)
                    {
                        user.LastLoginOn   = null;
                        user.LastIPAddress = "";
                        newUser            = _users.AddUser(user);
                        if (!verified)
                        {
                            string token = await _identityUserManager.GenerateEmailConfirmationTokenAsync(identityuser);

                            string url          = HttpContext.Request.Scheme + "://" + _tenants.GetAlias().Name + "/login?name=" + user.Username + "&token=" + WebUtility.UrlEncode(token);
                            string body         = "Dear " + user.DisplayName + ",\n\nIn Order To Complete The Registration Of Your User Account Please Click The Link Displayed Below:\n\n" + url + "\n\nThank You!";
                            var    notification = new Notification(user.SiteId, null, newUser, "User Account Verification", body, null);
                            _notifications.AddNotification(notification);
                        }

                        // assign to host role if this is the host user ( initial installation )
                        if (user.Username == UserNames.Host)
                        {
                            int      hostroleid = _roles.GetRoles(user.SiteId, true).Where(item => item.Name == RoleNames.Host).FirstOrDefault().RoleId;
                            UserRole userrole   = new UserRole();
                            userrole.UserId        = newUser.UserId;
                            userrole.RoleId        = hostroleid;
                            userrole.EffectiveDate = null;
                            userrole.ExpiryDate    = null;
                            _userRoles.AddUserRole(userrole);
                        }

                        // add folder for user
                        Folder folder = _folders.GetFolder(user.SiteId, Utilities.PathCombine("Users", Path.DirectorySeparatorChar.ToString()));
                        if (folder != null)
                        {
                            _folders.AddFolder(new Folder
                            {
                                SiteId      = folder.SiteId,
                                ParentId    = folder.FolderId,
                                Name        = "My Folder",
                                Path        = Utilities.PathCombine(folder.Path, newUser.UserId.ToString(), Path.DirectorySeparatorChar.ToString()),
                                Order       = 1,
                                IsSystem    = true,
                                Permissions = new List <Permission>
                                {
                                    new Permission(PermissionNames.Browse, newUser.UserId, true),
                                    new Permission(PermissionNames.View, RoleNames.Everyone, true),
                                    new Permission(PermissionNames.Edit, newUser.UserId, true)
                                }.EncodePermissions()
                            });
                        }
                    }
                }
                else
                {
                    var result = await _identitySignInManager.CheckPasswordSignInAsync(identityuser, user.Password, false);

                    if (result.Succeeded)
                    {
                        newUser = _users.GetUser(user.Username);
                    }
                }

                if (newUser != null && user.Username != UserNames.Host)
                {
                    // add auto assigned roles to user for site
                    List <Role> roles = _roles.GetRoles(user.SiteId).Where(item => item.IsAutoAssigned).ToList();
                    foreach (Role role in roles)
                    {
                        UserRole userrole = new UserRole();
                        userrole.UserId        = newUser.UserId;
                        userrole.RoleId        = role.RoleId;
                        userrole.EffectiveDate = null;
                        userrole.ExpiryDate    = null;
                        _userRoles.AddUserRole(userrole);
                    }
                }

                if (newUser != null)
                {
                    newUser.Password = ""; // remove sensitive information
                    _logger.Log(user.SiteId, LogLevel.Information, this, LogFunction.Create, "User Added {User}", newUser);
                }
            }
            else
            {
                _logger.Log(user.SiteId, LogLevel.Error, this, LogFunction.Create, "User Registration Is Not Enabled For Site. User Was Not Added {User}", user);
            }

            return(newUser);
        }
        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);
        }
 public async Task <UserRoleResponse> AddUserRole(UserRoleRequestForAdd userRoleRequestForAdd)
 {
     return(await _userRoleRepository.AddUserRole(userRoleRequestForAdd));
 }
Esempio n. 17
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);
        }
Esempio n. 18
0
        private async Task <ChatHubUser> OnConnectedGuest()
        {
            string guestname = null;

            guestname = Context.GetHttpContext().Request.Query["guestname"];
            guestname = guestname.Trim();

            if (string.IsNullOrEmpty(guestname) || !this.IsValidGuestUsername(guestname))
            {
                throw new HubException("No valid username.");
            }

            string username    = this.CreateUsername(guestname);
            string displayname = this.CreateDisplaynameFromUsername(username);

            if (await this.chatHubRepository.GetUserByDisplayName(displayname) != null)
            {
                throw new HubException("Displayname already in use. Goodbye.");
            }

            string email    = "*****@*****.**";
            string password = "******";

            ChatHubUser chatHubUser = new ChatHubUser()
            {
                SiteId        = 1,
                Username      = username,
                DisplayName   = displayname,
                Email         = email,
                LastIPAddress = Context.GetHttpContext().Connection.RemoteIpAddress.ToString(),
            };

            chatHubUser = this.chatHubRepository.AddChatHubUser(chatHubUser);

            if (chatHubUser != null && chatHubUser.Username != RoleNames.Host)
            {
                List <Role> roles = this.roles.GetRoles(chatHubUser.SiteId).Where(item => item.IsAutoAssigned).ToList();
                foreach (Role role in roles)
                {
                    UserRole userrole = new UserRole();
                    userrole.UserId        = chatHubUser.UserId;
                    userrole.RoleId        = role.RoleId;
                    userrole.EffectiveDate = null;
                    userrole.ExpiryDate    = null;
                    userRoles.AddUserRole(userrole);
                }
            }

            ChatHubConnection ChatHubConnection = new ChatHubConnection()
            {
                ChatHubUserId = chatHubUser.UserId,
                ConnectionId  = Context.ConnectionId,
                IpAddress     = Context.GetHttpContext().Connection.RemoteIpAddress.ToString(),
                UserAgent     = Context.GetHttpContext().Request.Headers["User-Agent"].ToString(),
                Status        = Enum.GetName(typeof(ChatHubConnectionStatus), ChatHubConnectionStatus.Active)
            };

            ChatHubConnection = this.chatHubRepository.AddChatHubConnection(ChatHubConnection);

            ChatHubSettings ChatHubSetting = new ChatHubSettings()
            {
                UsernameColor = "#7744aa",
                MessageColor  = "#44aa77",
                ChatHubUserId = chatHubUser.UserId
            };

            ChatHubSetting = this.chatHubRepository.AddChatHubSetting(ChatHubSetting);

            return(chatHubUser);
        }
        //TODO shoud be moved to another layer
        private async Task <User> CreateUser(User user)
        {
            User newUser = null;

            bool verified;
            bool allowregistration;

            if (user.Username == Constants.HostUser || User.IsInRole(Constants.AdminRole))
            {
                verified          = true;
                allowregistration = true;
            }
            else
            {
                verified          = false;
                allowregistration = _sites.GetSite(user.SiteId).AllowRegistration;
            }

            if (allowregistration)
            {
                IdentityUser identityuser = await _identityUserManager.FindByNameAsync(user.Username);

                if (identityuser == null)
                {
                    identityuser                = new IdentityUser();
                    identityuser.UserName       = user.Username;
                    identityuser.Email          = user.Email;
                    identityuser.EmailConfirmed = verified;
                    var result = await _identityUserManager.CreateAsync(identityuser, user.Password);

                    if (result.Succeeded)
                    {
                        user.LastLoginOn   = null;
                        user.LastIPAddress = "";
                        newUser            = _users.AddUser(user);
                        if (!verified)
                        {
                            Notification notification = new Notification();
                            notification.SiteId     = user.SiteId;
                            notification.FromUserId = null;
                            notification.ToUserId   = newUser.UserId;
                            notification.ToEmail    = "";
                            notification.Subject    = "User Account Verification";
                            string token = await _identityUserManager.GenerateEmailConfirmationTokenAsync(identityuser);

                            string url = HttpContext.Request.Scheme + "://" + _tenants.GetAlias().Name + "/login?name=" + user.Username + "&token=" + WebUtility.UrlEncode(token);
                            notification.Body        = "Dear " + user.DisplayName + ",\n\nIn Order To Complete The Registration Of Your User Account Please Click The Link Displayed Below:\n\n" + url + "\n\nThank You!";
                            notification.ParentId    = null;
                            notification.CreatedOn   = DateTime.UtcNow;
                            notification.IsDelivered = false;
                            notification.DeliveredOn = null;
                            _notifications.AddNotification(notification);
                        }

                        // assign to host role if this is the host user ( initial installation )
                        if (user.Username == Constants.HostUser)
                        {
                            int      hostroleid = _roles.GetRoles(user.SiteId, true).Where(item => item.Name == Constants.HostRole).FirstOrDefault().RoleId;
                            UserRole userrole   = new UserRole();
                            userrole.UserId        = newUser.UserId;
                            userrole.RoleId        = hostroleid;
                            userrole.EffectiveDate = null;
                            userrole.ExpiryDate    = null;
                            _userRoles.AddUserRole(userrole);
                        }

                        // add folder for user
                        Folder folder = _folders.GetFolder(user.SiteId, "Users\\");
                        if (folder != null)
                        {
                            _folders.AddFolder(new Folder
                            {
                                SiteId      = folder.SiteId,
                                ParentId    = folder.FolderId,
                                Name        = "My Folder",
                                Path        = folder.Path + newUser.UserId.ToString() + "\\",
                                Order       = 1,
                                IsSystem    = true,
                                Permissions = "[{\"PermissionName\":\"Browse\",\"Permissions\":\"[" + newUser.UserId.ToString() + "]\"},{\"PermissionName\":\"View\",\"Permissions\":\"All Users\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"[" +
                                              newUser.UserId.ToString() + "]\"}]"
                            });
                        }
                    }
                }
                else
                {
                    var result = await _identitySignInManager.CheckPasswordSignInAsync(identityuser, user.Password, false);

                    if (result.Succeeded)
                    {
                        newUser = _users.GetUser(user.Username);
                    }
                }

                if (newUser != null && user.Username != Constants.HostUser)
                {
                    // add auto assigned roles to user for site
                    List <Role> roles = _roles.GetRoles(user.SiteId).Where(item => item.IsAutoAssigned).ToList();
                    foreach (Role role in roles)
                    {
                        UserRole userrole = new UserRole();
                        userrole.UserId        = newUser.UserId;
                        userrole.RoleId        = role.RoleId;
                        userrole.EffectiveDate = null;
                        userrole.ExpiryDate    = null;
                        _userRoles.AddUserRole(userrole);
                    }
                }

                if (newUser != null)
                {
                    newUser.Password = ""; // remove sensitive information
                    _logger.Log(user.SiteId, LogLevel.Information, this, LogFunction.Create, "User Added {User}", newUser);
                }
            }
            else
            {
                _logger.Log(user.SiteId, LogLevel.Error, this, LogFunction.Create, "User Registration Is Not Enabled For Site. User Was Not Added {User}", user);
            }

            return(newUser);
        }
Esempio n. 20
0
        public async Task <User> Post([FromBody] User User)
        {
            User user = null;

            if (ModelState.IsValid)
            {
                int hostroleid = -1;
                if (!Users.GetUsers().Any())
                {
                    hostroleid = Roles.GetRoles(User.SiteId, true).Where(item => item.Name == Constants.HostRole).FirstOrDefault().RoleId;
                }

                IdentityUser identityuser = await IdentityUserManager.FindByNameAsync(User.Username);

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

                    if (result.Succeeded)
                    {
                        user = Users.AddUser(User);

                        // assign to host role if this is the initial installation
                        if (hostroleid != -1)
                        {
                            UserRole userrole = new UserRole();
                            userrole.UserId        = user.UserId;
                            userrole.RoleId        = hostroleid;
                            userrole.EffectiveDate = null;
                            userrole.ExpiryDate    = null;
                            UserRoles.AddUserRole(userrole);
                        }
                    }
                }
                else
                {
                    var result = await IdentitySignInManager.CheckPasswordSignInAsync(identityuser, User.Password, false);

                    if (result.Succeeded)
                    {
                        user = Users.GetUser(User.Username);
                    }
                }

                if (user != null && hostroleid == -1)
                {
                    // add auto assigned roles to user for site
                    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);
                    }
                }
                user.Password = ""; // remove sensitive information
                logger.Log(LogLevel.Information, this, LogFunction.Create, "User Added {User}", user);
            }

            return(user);
        }