Skip to content

Commit a78bedb

Browse files
committed
Replaced selectIsAdmin and checking for ADMIN role with permissions.
1 parent 8162e23 commit a78bedb

File tree

13 files changed

+47
-24
lines changed

13 files changed

+47
-24
lines changed

web-ui/src/components/admin/users/Users.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
selectNormalizedMembers,
2020
selectNormalizedMembersAdmin,
2121
selectHasCreateMembersPermission,
22+
selectCanEditAllOrganizationMembers,
2223
} from '../../../context/selectors';
2324
import { useQueryParameters } from '../../../helpers/query-parameters';
2425

@@ -67,7 +68,7 @@ const Users = () => {
6768
};
6869

6970
const normalizedMembers =
70-
includeTerminated && selectHasCreateMembersPermission(state)
71+
includeTerminated && selectCanEditAllOrganizationMembers(state)
7172
? selectNormalizedMembersAdmin(state, searchText)
7273
: selectNormalizedMembers(state, searchText);
7374

web-ui/src/components/checkin/documents/CheckinDocs.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import {
88
selectCsrfToken,
99
selectCurrentUser,
1010
selectIsPDL,
11-
selectIsAdmin,
12-
selectCheckin
11+
selectCheckin,
12+
selectCanAdministerCheckinDocuments,
1313
} from '../../../context/selectors';
1414
import DescriptionIcon from '@mui/icons-material/Description';
1515
import IconButton from '@mui/material/IconButton';
@@ -34,7 +34,7 @@ const UploadDocs = () => {
3434
const [files, setFiles] = useState([]);
3535
const [fileColors, setFileColors] = useState({});
3636

37-
const pdlorAdmin = selectIsPDL(state) || selectIsAdmin(state);
37+
const pdlorAdmin = selectIsPDL(state) || selectCanAdministerCheckinDocuments(state);
3838
const canView = pdlorAdmin && currentUserId !== memberId;
3939

4040
useEffect(() => {

web-ui/src/components/member-directory/AdminMemberCard.jsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
selectHasCreateMembersPermission,
1111
selectHasDeleteMembersPermission,
1212
selectHasImpersonateMembersPermission,
13+
selectCanEditAllOrganizationMembers,
1314
} from '../../context/selectors';
1415
import { getAvatarURL, resolve } from '../../api/api.js';
1516

@@ -86,7 +87,8 @@ const AdminMemberCard = ({ member, index }) => {
8687
// is due to the fact that users can edit their own profiles. But, only
8788
// certain users can create new profiles. So, we associate the edit feature
8889
// with profile creation.
89-
if (selectHasCreateMembersPermission(state)) {
90+
if (selectHasCreateMembersPermission(state) ||
91+
selectCanEditAllOrganizationMembers(state)) {
9092
entries.push('Edit');
9193
actionFunctions.push(handleOpen);
9294
}
@@ -228,6 +230,7 @@ const AdminMemberCard = ({ member, index }) => {
228230
</CardContent>
229231
{(selectHasCreateMembersPermission(state) ||
230232
selectHasDeleteMembersPermission(state) ||
233+
selectCanEditAllOrganizationMembers(state) ||
231234
selectHasImpersonateMembersPermission(state)) && (
232235
<CardActions>
233236
{options().length > 0 &&

web-ui/src/components/member-directory/MemberSummaryCard.jsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import { styled } from '@mui/material/styles';
33
import { Link } from 'react-router-dom';
44

55
import { AppContext } from '../../context/AppContext';
6-
import { selectIsAdmin, selectProfileMap } from '../../context/selectors';
6+
import {
7+
selectProfileMap,
8+
selectCanEditAllOrganizationMembers,
9+
} from '../../context/selectors';
710
import { getAvatarURL } from '../../api/api.js';
811

912
import Avatar from '@mui/material/Avatar';
@@ -34,7 +37,7 @@ const StyledBox = styled(Box)(() => ({
3437

3538
const MemberSummaryCard = ({ member }) => {
3639
const { state } = useContext(AppContext);
37-
const isAdmin = selectIsAdmin(state);
40+
const isAdmin = selectCanEditAllOrganizationMembers(state);
3841
const {
3942
location,
4043
name,

web-ui/src/components/menu/Menu.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import {
1313
selectHasSkillsReportPermission,
1414
selectHasTeamSkillsReportPermission,
1515
selectHasViewPulseReportPermission,
16-
selectIsAdmin,
1716
selectHasEarnedCertificationsPermission,
1817
selectHasMeritReportPermission,
1918
selectHasVolunteeringEventsPermission,
@@ -26,6 +25,7 @@ import {
2625
selectHasCreateMembersPermission,
2726
selectHasDeleteMembersPermission,
2827
selectHasImpersonateMembersPermission,
28+
selectCanEditAllOrganizationMembers,
2929
selectHasUploadHoursPermission,
3030
selectHasPermissionAssignmentPermission,
3131
} from '../../context/selectors';
@@ -110,7 +110,6 @@ function Menu({ children }) {
110110
const csrf = selectCsrfToken(state);
111111
const { id, workEmail } =
112112
userProfile && userProfile.memberProfile ? userProfile.memberProfile : {};
113-
const isAdmin = selectIsAdmin(state);
114113
const hasReportPermission = selectHasReportPermission(state);
115114
const canViewFeedbackAnswer = selectCanViewFeedbackAnswerPermission(state);
116115
const canViewFeedbackRequest = selectCanViewFeedbackRequestPermission(state);
@@ -144,6 +143,7 @@ function Menu({ children }) {
144143
['/admin/roles', 'Roles', () => selectCanEditMemberRolesPermission(state)],
145144
['/admin/users', 'Users', () => selectHasCreateMembersPermission(state) ||
146145
selectHasDeleteMembersPermission(state) ||
146+
selectCanEditAllOrganizationMembers(state) ||
147147
selectHasImpersonateMembersPermission(state)
148148
],
149149
['/admin/email', 'Send Email', () => selectHasSendEmailPermission(state)],

web-ui/src/components/private-note/PrivateNote.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ import {
1010
selectCsrfToken,
1111
selectCurrentUser,
1212
selectIsPDL,
13-
selectIsAdmin,
1413
selectCheckin,
1514
selectProfile,
1615
selectCanViewPrivateNotesPermission,
1716
selectCanCreatePrivateNotesPermission,
1817
selectCanUpdatePrivateNotesPermission,
18+
selectCanAdministerCheckinDocuments,
1919
} from '../../context/selectors';
2020
import { UPDATE_TOAST } from '../../context/actions';
2121
import { debounce } from 'lodash/function';
@@ -42,7 +42,7 @@ const PrivateNote = () => {
4242
const currentCheckin = selectCheckin(state, checkinId);
4343
const currentMember = selectProfile(state, memberId);
4444
const pdlId = currentMember?.pdlId;
45-
const isAdmin = selectIsAdmin(state);
45+
const isAdmin = selectCanAdministerCheckinDocuments(state);
4646

4747
const noteRef = useRef([]);
4848
const [note, setNote] = useState();

web-ui/src/components/reviews/TeamReviews.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ import {
5555
} from '../../context/actions';
5656
import { AppContext } from '../../context/AppContext';
5757
import {
58-
selectIsAdmin,
5958
selectCsrfToken,
6059
selectCurrentMembers,
6160
selectCurrentUser,
@@ -70,6 +69,7 @@ import {
7069
selectHasCreateReviewAssignmentsPermission,
7170
selectHasDeleteReviewAssignmentsPermission,
7271
selectHasUpdateReviewAssignmentsPermission,
72+
selectCanAdministerFeedbackRequests,
7373
} from '../../context/selectors';
7474

7575
import MemberSelector from '../member_selector/MemberSelector';
@@ -126,7 +126,7 @@ const ReviewStatus = {
126126
const TeamReviews = ({ onBack, periodId }) => {
127127
const { state, dispatch } = useContext(AppContext);
128128
const location = useLocation();
129-
const isAdmin = selectIsAdmin(state);
129+
const isAdmin = selectCanAdministerFeedbackRequests(state);
130130
const [openMode, setOpenMode] = useState(false);
131131
const [approvalState, setApprovalState] = useState(false);
132132
const [assignments, setAssignments] = useState([]);

web-ui/src/components/routes/Routes.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import MeritReportPage from '../../pages/MeritReportPage';
2828
import Users from '../admin/users/Users';
2929
import VolunteerReportPage from '../../pages/VolunteerReportPage';
3030

31-
import { selectIsAdmin } from '../../context/selectors';
3231
import FeedbackRequestConfirmation from '../feedback_request_confirmation/FeedbackRequestConfirmation';
3332
import FeedbackRequestPage from '../../pages/FeedbackRequestPage';
3433
import ViewFeedbackPage from '../../pages/ViewFeedbackPage';

web-ui/src/context/AppContext.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
} from '../api/member';
2424
import {
2525
selectCanViewCheckinsPermission,
26+
selectCanEditAllOrganizationMembers,
2627
} from './selectors';
2728
import { getAllRoles, getAllUserRoles } from '../api/roles';
2829
import { getMemberSkills } from '../api/memberskill';
@@ -190,7 +191,7 @@ const AppContextProvider = props => {
190191
if (csrf && userProfile && !memberProfiles) {
191192
dispatch({ type: UPDATE_PEOPLE_LOADING, payload: true });
192193
getMemberProfiles();
193-
if (userProfile.role?.includes('ADMIN')) {
194+
if (selectCanEditAllOrganizationMembers(state)) {
194195
getTerminatedMembers();
195196
}
196197
}

web-ui/src/context/selectors.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,10 @@ export const selectCanUpdateCheckinsPermission = hasPermission(
206206
'CAN_UPDATE_CHECKINS'
207207
);
208208

209+
export const selectCanUpdateAllCheckinsPermission = hasPermission(
210+
'CAN_UPDATE_ALL_CHECKINS'
211+
);
212+
209213
export const selectCanEditSkills = hasPermission(
210214
'CAN_EDIT_SKILLS'
211215
);
@@ -222,6 +226,18 @@ export const selectCanUpdatePrivateNotesPermission = hasPermission(
222226
'CAN_UPDATE_PRIVATE_NOTE'
223227
);
224228

229+
export const selectCanAdministerCheckinDocuments = hasPermission(
230+
'CAN_ADMINISTER_CHECKIN_DOCUMENTS'
231+
);
232+
233+
export const selectCanAdministerFeedbackRequests = hasPermission(
234+
'CAN_ADMINISTER_FEEDBACK_REQUEST'
235+
);
236+
237+
export const selectCanEditAllOrganizationMembers = hasPermission(
238+
'CAN_EDIT_ALL_ORGANIZATION_MEMBERS',
239+
);
240+
225241
export const selectIsPDL = createSelector(
226242
selectUserProfile,
227243
userProfile =>

0 commit comments

Comments
 (0)