@@ -3,10 +3,10 @@ import React, { useEffect, useContext, useState } from "react";
33import { getPermissionsList } from "../api/permissions" ;
44import {
55 getRolePermissionsList ,
6- postRolePermissionsList ,
7- deleteRolePermissionsList ,
6+ postRolePermission ,
7+ deleteRolePermission ,
88} from "../api/rolepermissions" ;
9- import { Checkbox } from "@mui/material" ;
9+ import { Checkbox , FormControl , MenuItem , Select , InputLabel } from "@mui/material" ;
1010import { UPDATE_TOAST } from "../context/actions" ;
1111import { AppContext } from "../context/AppContext" ;
1212import { selectRoles , selectHasPermissionAssignmentPermission } from "../context/selectors" ;
@@ -101,59 +101,36 @@ const EditPermissionsPage = () => {
101101 setSelectedRole ( roles . find ( ( role ) => role . id === event . target . value ) ) ;
102102 } ;
103103
104- const addRolePermission = async ( roleId , permissionId ) => {
105- let newSchema = { roleId : roleId , permissionId : permissionId } ;
106- let res = await postRolePermissionsList ( newSchema , csrf ) ;
107- let data =
108- res . payload && res . payload . data && ! res . error ? res . payload . data : null ;
109- if ( data ) {
110- window . snackDispatch ( {
111- type : UPDATE_TOAST ,
112- payload : {
113- severity : "success" ,
114- toast : `Permission added to Role` ,
115- } ,
116- } ) ;
117- } else {
118- window . snackDispatch ( {
119- type : UPDATE_TOAST ,
120- payload : {
121- severity : "warning" ,
122- toast : `Problem changing permission for that role` ,
123- } ,
124- } ) ;
125- }
104+ const addPermissionForRole = async ( role , permission ) => {
105+ let newSchema = { roleId : role . id , permissionId : permission . id } ;
106+ let res = await postRolePermission ( newSchema , csrf ) ;
107+ const snackPayload = res . error
108+ ? { severity : "warning" , toast : `Problem adding ${ permission . description } to ${ role . role } ` }
109+ : { severity : "success" , toast : `${ permission . description } added to ${ role . role } ` } ;
110+ window . snackDispatch ( {
111+ type : UPDATE_TOAST ,
112+ payload : snackPayload ,
113+ } ) ;
126114 } ;
127115
128- const deleteRolePermission = async ( roleId , permissionId ) => {
129- let newSchema = { roleId : roleId , permissionId : permissionId } ;
130- let res = await deleteRolePermissionsList ( newSchema , csrf ) ;
131- let data = ! res . error ? "Success" : null ;
132- if ( data ) {
133- window . snackDispatch ( {
134- type : UPDATE_TOAST ,
135- payload : {
136- severity : "success" ,
137- toast : `Permission removed from Role` ,
138- } ,
139- } ) ;
140- } else {
141- window . snackDispatch ( {
142- type : UPDATE_TOAST ,
143- payload : {
144- severity : "warning" ,
145- toast : `Problem deleting permission for that role` ,
146- } ,
147- } ) ;
148- }
116+ const deletePermissionForRole = async ( role , permission ) => {
117+ let newSchema = { roleId : role . id , permissionId : permission . id } ;
118+ let res = await deleteRolePermission ( newSchema , csrf ) ;
119+ const snackPayload = res . error
120+ ? { severity : "warning" , toast : `Problem deleting ${ permission . description } from ${ role . role } ` }
121+ : { severity : "success" , toast : `${ permission . description } removed from ${ role . role } ` } ;
122+ window . snackDispatch ( {
123+ type : UPDATE_TOAST ,
124+ payload : snackPayload ,
125+ } ) ;
149126 } ;
150127
151- const handleChange = async ( event , roleId , permissionId ) => {
128+ const handleChange = async ( event , role , permission ) => {
152129 if ( event ?. target ?. checked ) {
153- await addRolePermission ( roleId , permissionId ) ;
130+ await addPermissionForRole ( role , permission ) ;
154131 setRefresh ( ! refresh ) ;
155132 } else {
156- await deleteRolePermission ( roleId , permissionId ) ;
133+ await deletePermissionForRole ( role , permission ) ;
157134 setRefresh ( ! refresh ) ;
158135 }
159136 } ;
@@ -164,15 +141,20 @@ const EditPermissionsPage = () => {
164141 (
165142 < >
166143 < div >
167- < label htmlFor = "role" > Select Role:</ label >
168- < select id = "role" value = { selectedRole ?. id || '' } onChange = { handleRoleChange } >
169- < option value = "" > -- Please Select --</ option >
170- { roles ?. map ( ( role ) => (
171- < option key = { role . id } value = { role . id } >
172- { role . role } - { role . description }
173- </ option >
174- ) ) }
175- </ select >
144+ < FormControl >
145+ < InputLabel id = "select-role-label" > Select Role</ InputLabel >
146+ < Select
147+ labelId = "select-role-label"
148+ label = "Select Role"
149+ value = { selectedRole ?. id || '' }
150+ onChange = { handleRoleChange }
151+ >
152+ < MenuItem value = "" > -- Please Select --</ MenuItem >
153+ { roles ?. map ( ( role ) => (
154+ < MenuItem key = { role . id } value = { role . id } > { role . role } - { role . description } </ MenuItem >
155+ ) ) }
156+ </ Select >
157+ </ FormControl >
176158 </ div >
177159
178160 { selectedRole && rolePermissions && categoriesList ?. map ( ( category ) => (
@@ -184,7 +166,7 @@ const EditPermissionsPage = () => {
184166 permission = { permission . permission }
185167 title = { permission . description }
186168 enabled = { isPermissionEnabled ( rolePermissions , permission ) }
187- onChange = { ( event ) => handleChange ( event , selectedRole ?. id , permission . id , csrf ) } />
169+ onChange = { ( event ) => handleChange ( event , selectedRole , permission ) } />
188170 ) )
189171 }
190172 </ div >
0 commit comments