Example #1
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            //Getting all available roles
            var output = new GetUserForEditOutput();

            if (!input.Id.HasValue)
            {
                //Creating a new user
                output.User = new UserEditDto
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = true,
                    IsTwoFactorEnabled = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled),
                    IsLockoutEnabled   = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled)
                };

                output.MemberedOrganizationUnits = new List <long>();
                output.Roles = new List <string>();
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output.User             = ObjectMapper.Map <UserEditDto>(user);
                output.ProfilePictureId = user.ProfilePictureId;
                output.Roles            = await UserManager.GetRolesAsync(user);

                var organizationUnits = await UserManager.GetOrganizationUnitsAsync(user);

                output.MemberedOrganizationUnits = organizationUnits.Select(ou => ou.Id).ToList();
            }

            return(output);
        }
Example #2
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            //Getting all available roles
            var userRoleDtos = await _roleManager.Roles
                               .OrderBy(r => r.DisplayName)
                               .Select(r => new UserRoleDto
            {
                RoleId          = r.Id,
                RoleName        = r.Name,
                RoleDisplayName = r.DisplayName
            })
                               .ToArrayAsync();

            var allOrganizationUnits = await _organizationUnitRepository.GetAllListAsync();

            var output = new GetUserForEditOutput
            {
                Roles = userRoleDtos,
                MemberedOrganizationUnits = new List <string>()
            };

            if (!input.Id.HasValue)
            {
                //Creating a new user
                output.User = new UserEditDto
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = true,
                    IsTwoFactorEnabled = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled),
                    IsLockoutEnabled   = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled)
                };

                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output.User = ObjectMapper.Map <UserEditDto>(user);

                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(user, userRoleDto.RoleName);
                }

                var organizationUnits = await UserManager.GetOrganizationUnitsAsync(user);

                output.MemberedOrganizationUnits = organizationUnits.Select(ou => ou.Code).ToList();
            }

            return(output);
        }
Example #3
0
        public async Task <GetUserForEditOutput> GetExistUSerForActive(string civilId)
        {
            using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.SoftDelete))
            {
                //Editing an existing user
                var user = UserManager.Users.Where(c => c.CivilId == civilId && c.IsDeleted == true).FirstOrDefault();

                //Getting all available roles
                var userRoleDtos = await _roleManager.Roles
                                   .OrderBy(r => r.DisplayName)
                                   .Select(r => new UserRoleDto
                {
                    RoleId          = r.Id,
                    RoleName        = r.Name,
                    RoleDisplayName = r.DisplayName
                })
                                   .ToArrayAsync();

                var allOrganizationUnits = await _organizationUnitRepository.GetAllListAsync();

                var allShifts = await _shiftRepository.GetAllListAsync();

                var output = new GetUserForEditOutput
                {
                    Roles = userRoleDtos,
                    AllOrganizationUnits      = ObjectMapper.Map <List <OrganizationUnitDto> >(allOrganizationUnits),
                    MemberedOrganizationUnits = new List <string>(),
                    MemberOrganizationUnit    = "",
                    Shifts = ObjectMapper.Map <List <ShiftDto> >(allShifts)
                };

                if (user != null)
                {
                    output.User = ObjectMapper.Map <UserEditDto>(user);
                    var timeProfile = _timeProfileRepository.GetAll().Where(x => x.UserId == output.User.Id).FirstOrDefault();
                    output.ProfilePictureId = user.ProfilePictureId;


                    var organizationUnits = await UserManager.GetOrganizationUnitsAsync(user);

                    output.MemberedOrganizationUnits = organizationUnits.Select(ou => ou.Code).ToList();



                    output.MemberOrganizationUnit = allOrganizationUnits.Where(ou => ou.Id == user.OrganizationUnitId).Select(ou => ou.Code).FirstOrDefault();

                    var allRolesOfUsersOrganizationUnits = GetAllRoleNamesOfUsersOrganizationUnits(user.Id);

                    foreach (var userRoleDto in userRoleDtos)
                    {
                        userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(user, userRoleDto.RoleName);

                        userRoleDto.InheritedFromOrganizationUnit = allRolesOfUsersOrganizationUnits.Contains(userRoleDto.RoleName);
                    }
                }


                return(output);
            }
        }
Example #4
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            //Getting all available roles
            var userRoleDtos = (await _roleManager.Roles
                                .OrderBy(r => r.DisplayName)
                                .Select(r => new UserRoleDto
            {
                RoleId = r.Id,
                RoleName = r.Name,
                RoleDisplayName = r.DisplayName
            })
                                .ToArrayAsync());

            var output = new GetUserForEditOutput
            {
                Roles = userRoleDtos
            };

            if (!input.Id.HasValue)
            {
                bool.TryParse(await SettingManager.GetSettingValueAsync(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled), out bool isEnabled);
                //Creating a new user
                output.User = new UserEditDto
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = true,
                    //IsTwoFactorEnabled = await SettingManager.GetSettingValueAsync<bool>(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled),
                    IsLockoutEnabled = isEnabled
                };

                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }
            else
            {
                //Editing an existing user
                var user = await _userManager.Users.FirstOrDefaultAsync(x => x.Id == input.Id.Value);

                output.User             = user.MapTo <UserEditDto>();
                output.ProfilePictureId = user.ProfilePictureId;
                output.OrganizationIds  = await _organizationUnitApp.GetUserOrganizationUnits(new UserIdInput { UserId = input.Id ?? 0 });

                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await _userManager.IsInRoleAsync(user, userRoleDto.RoleName);
                }
            }
            return(output);
        }
Example #5
0
        public async Task <GetUserForEditOutput> GetUserUnitForEdit(NullableIdInput <long> input)
        {
            //Getting all available roles
            var userRoleDtos = (await _roleManager.Roles
                                .OrderBy(r => r.DisplayName)
                                .Select(r => new UserRoleDto
            {
                RoleId = r.Id,
                RoleName = r.Name,
                RoleDisplayName = r.DisplayName
            })
                                .ToArrayAsync());

            var output = new GetUserForEditOutput
            {
                Roles = userRoleDtos
            };

            if (!input.Id.HasValue)
            {
                //Creating a new user
                output.User = new UserEditDto {
                    IsActive = true, ShouldChangePasswordOnNextLogin = true
                };

                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output.User             = user.MapTo <UserEditDto>();
                output.ProfilePictureId = user.ProfilePictureId;

                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(input.Id.Value, userRoleDto.RoleName);
                }
                if (!ReferenceEquals(AbpSession.TenantId, null))
                {
                    output.TenantwithRoles = await GetTenantListofOrganizationforEdit(user.UserName);
                }
            }
            return(output);
        }
Example #6
0
        public async Task <GetUserForEditOutput> GetForEditAsync(NullableIdDto <long> input)
        {
            var userRoleDtos = await _roleManager.Roles
                               .OrderBy(r => r.DisplayName)
                               .Select(r => new UserRoleDto
            {
                RoleId          = r.Id,
                RoleName        = r.Name,
                RoleDisplayName = r.DisplayName
            })
                               .ToArrayAsync();

            var output = new GetUserForEditOutput()
            {
                Roles = userRoleDtos
            };

            if (input.Id.HasValue)
            {   //修改
                User user = await _userRepository.GetAsync(input.Id.Value);

                if (user == null)
                {
                    throw new UserFriendlyException("用户不存在");
                }
                output.User = _mapper.Map <UserEditDto>(user);
                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(user, userRoleDto.RoleName);
                }
            }
            else
            {
                output.User = new UserEditDto()
                {
                    IsActive = true,
                    //ShouldChangePasswordOnNextLogin = true,
                    //IsTwoFactorEnabled = await SettingManager.GetSettingValueAsync<bool>(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled),
                    //IsLockoutEnabled = await SettingManager.GetSettingValueAsync<bool>(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled)
                };
                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }

            return(output);
        }
Example #7
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            var userRoleDtos = (await _roleManager.Roles
                                .OrderBy(r => r.DisplayName)
                                .Select(r => new UserRoleDto()
            {
                RoleId = r.Id,
                RoleName = r.Name,
                RoleDisplayName = r.DisplayName
            })
                                .ToArrayAsync());

            var output = new GetUserForEditOutput
            {
                Roles = userRoleDtos
            };

            if (!input.Id.HasValue)
            {
                //create
                output.User = new UserEditDto
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = true,
                    IsLockoutEnabled = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled)
                };

                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }
            else
            {
                //edit
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output.User = user.MapTo <UserEditDto>();

                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(user.Id, userRoleDto.RoleName);
                }
            }

            return(output);
        }
Example #8
0
        /// <summary>
        /// 获取用户用于编辑
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            //Getting all available roles
            var userRoleDtos = (await _roleManager.Roles
                                .OrderBy(r => r.DisplayName)
                                .Select(r => new UserRoleDto
            {
                RoleId = r.Id,
                RoleName = r.Name,
                RoleDisplayName = r.DisplayName
            })
                                .ToArrayAsync());

            var output = new GetUserForEditOutput
            {
                Roles = userRoleDtos
            };

            if (!input.Id.HasValue)
            {
                //Creating a new user
                output.User = new UserEditDto
                {
                    IsActive = true,
                };

                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output.User             = user.MapTo <UserEditDto>();
                output.ProfilePictureId = user.ProfilePictureId;

                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(input.Id.Value, userRoleDto.RoleName);
                }
            }

            return(output);
        }
        public async Task <GetUserForEditOutput> GetForEdit(GetForEditInput input)
        {
            var listRoleLevelEnum = GetROLE_LEVELs(input.LoaiTaiKhoan);
            var userRoleDtos      = (await _roleManager.Roles
                                     .Where(x => listRoleLevelEnum.Contains(x.RoleLevel.Value))
                                     .OrderBy(r => r.DisplayName)
                                     .Select(r => new UserRoleDto
            {
                RoleId = r.Id,
                RoleName = r.Name,
                RoleDisplayName = r.DisplayName,
                RoleLevel = r.RoleLevel
            })
                                     .ToArrayAsync());
            var output = new GetUserForEditOutput
            {
                Roles = userRoleDtos
            };

            if (input.Id.HasValue)
            {
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output.User             = user.MapTo <UserEditDto>();
                output.ProfilePictureId = user.ProfilePictureId;
                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(input.Id.Value, userRoleDto.RoleName);
                }
            }
            else
            {
                output.User = new UserEditDto
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = false,
                    IsTwoFactorEnabled = false,
                    IsLockoutEnabled   = true
                };
            }
            return(output);
        }
Example #10
0
        /// <summary>
        /// 获取编辑页面的用户信息
        /// </summary>
        /// <param name="id">用户Id</param>
        /// <returns>获取编辑页面的用户信息 输出模型</returns>
        public async Task <GetUserForEditOutput> GetUserForEdit(long id)
        {
            GetUserForEditOutput output = new GetUserForEditOutput();

            output.User = await UserManager.GetUserByIdAsync(id);

            var roleStrings = await UserManager.GetRolesAsync(id);

            var rolesList = new List <Role>();

            foreach (var roleId in roleStrings)
            {
                var role = await _roleManager.GetRoleByIdAsync(Convert.ToInt32(roleId));

                rolesList.Add(role);
            }
            output.Roles = rolesList;

            return(output);
        }
Example #11
0
        /// <summary>
        /// 通过Id获取用户信息进行编辑或修改
        /// </summary>
        public async Task <GetUserForEditOutput> GetUserForEditAsync(NullableIdDto <Guid> input)
        {
            var output = new GetUserForEditOutput();

            UserEditDto userEditDto;

            if (input.Id.HasValue)
            {
                var entity = await _userRepository.GetAsync(input.Id.Value);

                userEditDto = entity.MapTo <UserEditDto>();
            }
            else
            {
                userEditDto = new UserEditDto();
            }

            output.User = userEditDto;
            return(output);
        }
Example #12
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            var output = new GetUserForEditOutput
            {
                Roles = new List <AssignedUserRoleDto>()
            };

            if (!input.Id.HasValue)
            {
                var defaultRoles = await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync();

                //Creating a new user
                output.Item = new UserEditDto
                {
                    IsActive         = true,
                    IsLockoutEnabled = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled)
                };
                output.Roles = ObjectMapper.Map <List <AssignedUserRoleDto> >(defaultRoles);
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output.Item = ObjectMapper.Map <UserEditDto>(user);
                var userRoleDtos = await _roleManager.Roles
                                   .OrderBy(r => r.DisplayName)
                                   .ToListAsync();

                foreach (var userRoleDto in userRoleDtos)
                {
                    if (await UserManager.IsInRoleAsync(user, userRoleDto.Name))
                    {
                        output.Roles.Add(ObjectMapper.Map <AssignedUserRoleDto>(userRoleDto));
                    }
                }
            }

            return(output);
        }
Example #13
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            var output = new GetUserForEditOutput();

            if (!input.Id.HasValue)
            {
                //Creating a new user
                output = new GetUserForEditOutput
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = false
                };
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output = user.MapTo <GetUserForEditOutput>();
            }
            return(output);
        }
Example #14
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            var tenantInfo = await TenantManager.GetTenantInfo();

            var userId      = _userManager.AbpSession.GetUserId();
            var currentUser = await _userManager.GetUserByIdAsync(userId);

            var currentUserRoles = await _userManager.GetRolesAsync(currentUser);

            var bestRole       = GetBestRole((List <string>)currentUserRoles, tenantInfo.Tenant.TenantType);
            var availableRoles = GetAvailableRoles(bestRole, tenantInfo.Tenant.TenantType);

            //Getting all roles that the current user is auhorized to assign
            UserRoleDto[] userRoleDtos = await _roleManager.Roles
                                         .Where(r => availableRoles.Contains(r.Name))
                                         .OrderBy(r => r.DisplayName)
                                         .Select(r => new UserRoleDto
            {
                RoleId          = r.Id,
                RoleName        = r.Name,
                RoleDisplayName = r.DisplayName
            })
                                         .ToArrayAsync();

            var allOrganizationUnits = await _organizationUnitRepository.GetAllListAsync();

            var output = new GetUserForEditOutput
            {
                Roles = userRoleDtos,
                AllOrganizationUnits      = ObjectMapper.Map <List <OrganizationUnitDto> >(allOrganizationUnits),
                MemberedOrganizationUnits = new List <string>()
            };

            if (!input.Id.HasValue)
            {
                //Creating a new user
                output.User = new UserEditDto
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = true,
                    IsTwoFactorEnabled = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled),
                    IsLockoutEnabled   = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled)
                };

                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output.User             = ObjectMapper.Map <UserEditDto>(user);
                output.ProfilePictureId = user.ProfilePictureId;

                var organizationUnits = await UserManager.GetOrganizationUnitsAsync(user);

                output.MemberedOrganizationUnits = organizationUnits.Select(ou => ou.Code).ToList();

                var allRolesOfUsersOrganizationUnits = GetAllRoleNamesOfUsersOrganizationUnits(input.Id.Value);

                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(user, userRoleDto.RoleName);

                    userRoleDto.InheritedFromOrganizationUnit = allRolesOfUsersOrganizationUnits.Contains(userRoleDto.RoleName);
                }
            }

            return(output);
        }
Example #15
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            //Getting all available roles
            var userRoleDtos = await _roleManager.Roles
                               .OrderBy(r => r.DisplayName)
                               .Select(r => new UserRoleDto
            {
                RoleId          = r.Id,
                RoleName        = r.Name,
                RoleDisplayName = r.DisplayName
            })
                               .ToArrayAsync();

            //Getting all available Locations
            var userLocationDtos = await _locationRepository.GetAll()
                                   .OrderBy(r => r.TitleAr)
                                   .Select(r => new UserLocationDto
            {
                LocationId          = r.Id,
                LocationDisplayName = r.TitleAr,
            })
                                   .ToArrayAsync();

            var allOrganizationUnits = await _organizationUnitRepository.GetAllListAsync();

            var nationalities = await _nationalityRepository.GetAllListAsync();

            var allBeacons = await _beaconRepository.GetAllListAsync();

            //user shifts


            var output = new GetUserForEditOutput
            {
                Locations                 = userLocationDtos,
                Nationalities             = ObjectMapper.Map <List <NationalityDto> >(nationalities),
                Roles                     = userRoleDtos,
                AllOrganizationUnits      = ObjectMapper.Map <List <OrganizationUnitDto> >(allOrganizationUnits),
                AllBeacons                = ObjectMapper.Map <List <BeaconDto> >(allBeacons),
                MemberedOrganizationUnits = new List <string>(),
                MemberOrganizationUnit    = ""
            };

            if (!input.Id.HasValue)
            {
                //Creating a new user
                output.User = new UserEditDto
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = true,
                    IsTwoFactorEnabled = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled),
                    IsLockoutEnabled   = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled)
                };

                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.Users.Include(x => x.Locations).FirstOrDefaultAsync(x => x.Id == input.Id.Value);

                output.User = ObjectMapper.Map <UserEditDto>(user);

                var userShifts = from o in _userShiftRepository.GetAll()
                                 join o2 in _shiftRepository.GetAll() on o.ShiftId equals o2.Id into j2
                                 from s2 in j2.DefaultIfEmpty()
                                 where o.UserId == input.Id

                                 select new GetUserShiftForViewDto()
                {
                    UserShift = new UserShiftDto
                    {
                        Date    = o.Date,
                        Id      = o.Id,
                        UserId  = o.UserId,
                        ShiftId = o.ShiftId
                    },
                    ShiftNameEn = s2 == null ? "" : s2.NameEn.ToString()
                };


                output.User.UserShifts = await userShifts.ToListAsync();

                output.ProfilePictureId = user.ProfilePictureId;


                var organizationUnits = await UserManager.GetOrganizationUnitsAsync(user);

                output.MemberedOrganizationUnits = organizationUnits.Select(ou => ou.Code).ToList();



                output.MemberOrganizationUnit = allOrganizationUnits.Where(ou => ou.Id == user.OrganizationUnitId).Select(ou => ou.Code).FirstOrDefault();

                var allRolesOfUsersOrganizationUnits = GetAllRoleNamesOfUsersOrganizationUnits(input.Id.Value);

                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(user, userRoleDto.RoleName);

                    userRoleDto.InheritedFromOrganizationUnit = allRolesOfUsersOrganizationUnits.Contains(userRoleDto.RoleName);
                }

                foreach (var userLocationDto in userLocationDtos)
                {
                    userLocationDto.IsAssigned = user.Locations.Any(x => x.LocationId == userLocationDto.LocationId);
                    if (userLocationDto.IsAssigned)
                    {
                        userLocationDto.FromDate = user.Locations.Where(x => x.LocationId == userLocationDto.LocationId).FirstOrDefault().FromDate;
                        userLocationDto.ToDate   = user.Locations.Where(x => x.LocationId == userLocationDto.LocationId).FirstOrDefault().ToDate;
                    }
                }
            }

            return(output);
        }
Example #16
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdInput <long> input)
        {
            IQueryable <Role>        roles       = this._roleManager.Roles;
            IOrderedQueryable <Role> displayName =
                from r in roles
                orderby r.DisplayName
                select r;

            UserRoleDto[] arrayAsync = await(
                from r in displayName
                select new UserRoleDto()
            {
                RoleId          = r.Id,
                RoleName        = r.Name,
                RoleDisplayName = r.DisplayName
            }).ToArrayAsync <UserRoleDto>();
            UserRoleDto[]        userRoleDtoArray     = arrayAsync;
            GetUserForEditOutput getUserForEditOutput = new GetUserForEditOutput()
            {
                Roles = userRoleDtoArray
            };

            if (input.Id.HasValue)
            {
                FuelWerx.Authorization.Users.UserManager userManager = this.UserManager;
                long?id            = input.Id;
                User userByIdAsync = await userManager.GetUserByIdAsync(id.Value);

                getUserForEditOutput.User             = userByIdAsync.MapTo <UserEditDto>();
                getUserForEditOutput.ProfilePictureId = userByIdAsync.ProfilePictureId;
                IRepository <UserSettingData, long> repository = this._userSettingDataRepository;
                UserSettingData userSettingDatum = await repository.FirstOrDefaultAsync((UserSettingData m) => m.UserId == userByIdAsync.Id);

                UserSettingData userSettingDatum1 = userSettingDatum;
                if (userSettingDatum1 == null)
                {
                    GetUserForEditOutput getUserForEditOutput1 = getUserForEditOutput;
                    UserSettingData      userSettingDatum2     = new UserSettingData()
                    {
                        UserId = userByIdAsync.Id
                    };
                    getUserForEditOutput1.UserSettingData = userSettingDatum2.MapTo <UserSettingDataEditDto>();
                }
                else
                {
                    getUserForEditOutput.UserSettingData = userSettingDatum1.MapTo <UserSettingDataEditDto>();
                }
                UserRoleDto[] userRoleDtoArray1 = userRoleDtoArray;
                for (int i = 0; i < (int)userRoleDtoArray1.Length; i++)
                {
                    UserRoleDto userRoleDto  = userRoleDtoArray1[i];
                    UserRoleDto userRoleDto1 = userRoleDto;
                    FuelWerx.Authorization.Users.UserManager userManager1 = this.UserManager;
                    id = input.Id;
                    bool flag = await userManager1.IsInRoleAsync(id.Value, userRoleDto.RoleName);

                    userRoleDto1.IsAssigned = flag;
                    userRoleDto1            = null;
                }
                userRoleDtoArray1 = null;
            }
            else
            {
                GetUserForEditOutput getUserForEditOutput2 = getUserForEditOutput;
                UserEditDto          userEditDto           = new UserEditDto()
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = true
                };
                getUserForEditOutput2.User           = userEditDto;
                getUserForEditOutput.UserSettingData = new UserSettingDataEditDto()
                {
                    UserId = (long)0
                };
                IQueryable <Role> roles1    = this._roleManager.Roles;
                List <Role>       listAsync = await(
                    from r in roles1
                    where r.IsDefault
                    select r).ToListAsync <Role>();
                foreach (Role role in listAsync)
                {
                    UserRoleDto userRoleDto2 = userRoleDtoArray.FirstOrDefault <UserRoleDto>((UserRoleDto ur) => ur.RoleName == role.Name);
                    if (userRoleDto2 == null)
                    {
                        continue;
                    }
                    userRoleDto2.IsAssigned = true;
                }
            }
            return(getUserForEditOutput);
        }
Example #17
0
        public async Task <GetUserForEditOutput> GetUserForEdit(NullableIdDto <long> input)
        {
            //Getting all available roles
            var userRoleDtos = (await _roleManager.Roles
                                .OrderBy(r => r.DisplayName)
                                .Select(r => new UserRoleDto
            {
                RoleId = r.Id,
                RoleName = r.Name,
                RoleDisplayName = r.DisplayName,
                RoleLevel = r.RoleLevel
            })
                                .ToArrayAsync());

            var output = new GetUserForEditOutput
            {
                Roles = userRoleDtos
            };

            if (!input.Id.HasValue)
            {
                //Creating a new user
                output.User = new UserEditDto
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = true,
                    IsTwoFactorEnabled = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled),
                    IsLockoutEnabled   = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled)
                };

                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                output.User             = user.MapTo <UserEditDto>();
                output.ProfilePictureId = user.ProfilePictureId;

                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(input.Id.Value, userRoleDto.RoleName);
                }
            }

            if (!string.IsNullOrWhiteSpace(output.User.UrlImageChuKyNhay))
            {
                string HCC_FILE_PDF = GetUrlFileDefaut();
                var    folderPath   = Path.Combine(HCC_FILE_PDF, output.User.UrlImageChuKyNhay);

                if (File.Exists(folderPath))
                {
                    using (var fsTempProfilePicture = new FileStream(folderPath, FileMode.Open))
                    {
                        using (var bmpImage = new Bitmap(fsTempProfilePicture))
                        {
                            using (var stream = new MemoryStream())
                            {
                                bmpImage.Save(stream, bmpImage.RawFormat);
                                stream.Close();
                                output.User.DataImage = stream.ToArray();
                            }
                        }
                    }
                }
            }
            return(output);
        }
 public CreateOrEditUserModalViewModel(GetUserForEditOutput output)
 {
     output.MapTo(this);
 }
Example #19
0
        public async Task <GetUserForEditOutput> GetUserForEdit([FromQuery] NullableIdDto <long> input)
        {
            //Getting all available roles
            var userRoleDtos = (await _roleManager.Roles
                                .OrderBy(r => r.DisplayName)
                                .Select(r => new UserRoleDto
            {
                RoleId = r.Id,
                RoleName = r.Name,
                RoleDisplayName = r.DisplayName
            })
                                .ToArrayAsync());

            var output = new GetUserForEditOutput
            {
                Roles = userRoleDtos
            };

            if (!input.Id.HasValue)
            {
                //Creating a new user
                output.User = new UserEditDto
                {
                    IsActive = true,
                    ShouldChangePasswordOnNextLogin = true,
                    IsTwoFactorEnabled = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled),
                    IsLockoutEnabled   = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.UserLockOut.IsEnabled)
                };

                foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync())
                {
                    var defaultUserRole = userRoleDtos.FirstOrDefault(ur => ur.RoleName == defaultRole.Name);
                    if (defaultUserRole != null)
                    {
                        defaultUserRole.IsAssigned = true;
                    }
                }
            }
            else
            {
                //Editing an existing user
                var user = await UserManager.GetUserByIdAsync(input.Id.Value);

                var account = await _accountCache.GetAsync(user.Id);

                output.User             = ObjectMapper.Map <UserEditDto>(user);
                output.ProfilePictureId = account.ProfilePictureId;

                await UserManager.UserStore.UserRepository.EnsureCollectionLoadedAsync(user, u => u.Logins);

                output.ExternalLogins = user.Logins.Select(l =>
                {
                    return(l.MapTo <ExternalUserLoginDto>());
                }).ToArray();

                foreach (var userRoleDto in userRoleDtos)
                {
                    userRoleDto.IsAssigned = await UserManager.IsInRoleAsync(user, userRoleDto.RoleName);
                }

                output.Permissions = await this.GetUserPermissionsForEdit(new EntityDto <long>(user.Id));
            }

            return(output);
        }