PLT-2713/PLT-6028 Added System Users list to System Console (#5882)
* PLT-2713 Added ability for admins to list users not in any team * Updated style of unit test * Split SearchableUserList to give better control over its properties * Added users without any teams to the user store * Added ManageUsers page * Renamed ManageUsers to SystemUsers * Added ability to search by user id in SystemUsers page * Added SystemUsersDropdown * Removed unnecessary injectIntl * Created TeamUtils * Reduced scope of system console heading CSS * Added team filter to TeamAnalytics page * Updated admin console sidebar * Removed unnecessary TODO * Removed unused reference to deleted modal * Fixed system console sidebar not scrolling on first load * Fixed TeamAnalytics page not rendering on first load * Fixed chart.js throwing an error when switching between teams * Changed TeamAnalytics header to show the team's display name * Fixed appearance of TeamAnalytics and SystemUsers on small screen widths * Fixed placement of 'No users found' message * Fixed teams not appearing in SystemUsers on first load * Updated user count text for SystemUsers * Changed search by id fallback to trigger less often * Fixed SystemUsers list items not updating when searching * Fixed localization strings for SystemUsers page
Этот коммит содержится в:
коммит произвёл
Corey Hulen
родитель
9a9729f22f
Коммит
689cac535e
@@ -25,6 +25,7 @@ const ActionTypes = Constants.ActionTypes;
|
||||
import Client from 'client/web_client.jsx';
|
||||
import * as AsyncClient from 'utils/async_client.jsx';
|
||||
import WebSocketClient from 'client/web_websocket_client.jsx';
|
||||
import {sortTeamsByDisplayName} from 'utils/team_utils.jsx';
|
||||
import * as Utils from 'utils/utils.jsx';
|
||||
|
||||
import en from 'i18n/en.json';
|
||||
@@ -594,7 +595,7 @@ export function redirectUserToDefaultTeam() {
|
||||
}
|
||||
|
||||
if (myTeams.length > 0) {
|
||||
myTeams = myTeams.sort(Utils.sortTeamsByDisplayName);
|
||||
myTeams = myTeams.sort(sortTeamsByDisplayName);
|
||||
teamId = myTeams[0].id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,6 +133,29 @@ export function loadTeamMembersForProfilesList(profiles, teamId = TeamStore.getC
|
||||
loadTeamMembersForProfiles(list, teamId, success, error);
|
||||
}
|
||||
|
||||
export function loadProfilesWithoutTeam(page, perPage, success, error) {
|
||||
Client.getProfilesWithoutTeam(
|
||||
page,
|
||||
perPage,
|
||||
(data) => {
|
||||
AppDispatcher.handleServerAction({
|
||||
type: ActionTypes.RECEIVED_PROFILES_WITHOUT_TEAM,
|
||||
profiles: data,
|
||||
page
|
||||
});
|
||||
|
||||
loadStatusesForProfilesMap(data);
|
||||
},
|
||||
(err) => {
|
||||
AsyncClient.dispatchError(err, 'getProfilesWithoutTeam');
|
||||
|
||||
if (error) {
|
||||
error(err);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function loadTeamMembersForProfiles(userIds, teamId, success, error) {
|
||||
Client.getTeamMembersByIds(
|
||||
teamId,
|
||||
@@ -580,20 +603,16 @@ export function updateUserNotifyProps(data, success, error) {
|
||||
|
||||
export function updateUserRoles(userId, newRoles, success, error) {
|
||||
Client.updateUserRoles(
|
||||
userId,
|
||||
newRoles,
|
||||
() => {
|
||||
AsyncClient.getUser(userId);
|
||||
|
||||
if (success) {
|
||||
success();
|
||||
}
|
||||
},
|
||||
(err) => {
|
||||
if (error) {
|
||||
error(err);
|
||||
}
|
||||
}
|
||||
userId,
|
||||
newRoles,
|
||||
() => {
|
||||
AsyncClient.getUser(
|
||||
userId,
|
||||
success,
|
||||
error
|
||||
);
|
||||
},
|
||||
error
|
||||
);
|
||||
}
|
||||
|
||||
@@ -658,18 +677,17 @@ export function checkMfa(loginId, success, error) {
|
||||
|
||||
export function updateActive(userId, active, success, error) {
|
||||
Client.updateActive(userId, active,
|
||||
() => {
|
||||
AsyncClient.getUser(userId);
|
||||
(data) => {
|
||||
AppDispatcher.handleServerAction({
|
||||
type: ActionTypes.RECEIVED_PROFILE,
|
||||
profile: data
|
||||
});
|
||||
|
||||
if (success) {
|
||||
success();
|
||||
success(data);
|
||||
}
|
||||
},
|
||||
(err) => {
|
||||
if (error) {
|
||||
error(err);
|
||||
}
|
||||
}
|
||||
error
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user