예제 #1
0
        private async Task <UserListModel> GetUserListModel(List <UserRolesInfo> users)
        {
            var coursesForUsers = userRolesRepo.GetCoursesForUsers();

            var courses = User.GetControllableCoursesId().ToList();

            var currentUserId  = User.Identity.GetUserId();
            var userIds        = users.Select(u => u.UserId).ToList();
            var tempCoursesIds = tempCoursesRepo.GetTempCourses()
                                 .Select(t => t.CourseId)
                                 .ToHashSet();
            var model = new UserListModel
            {
                CanToggleRoles     = User.HasAccess(CourseRole.CourseAdmin),
                ShowDangerEntities = User.IsSystemAdministrator(),
                Users                          = users.Select(user => GetUserModel(user, coursesForUsers, courses, tempCoursesIds)).ToList(),
                UsersGroups                    = groupsRepo.GetUsersGroupsNamesAsStrings(courses, userIds, User, actual: true, archived: false),
                UsersArchivedGroups            = groupsRepo.GetUsersGroupsNamesAsStrings(courses, userIds, User, actual: false, archived: true),
                CanViewAndToggleCourseAccesses = false,
                CanViewAndToogleSystemAccesses = User.IsSystemAdministrator(),
                CanViewProfiles                = systemAccessesRepo.HasSystemAccess(currentUserId, SystemAccessType.ViewAllProfiles) || User.IsSystemAdministrator(),
            };

            return(model);
        }