Skip to content

Commit c227872

Browse files
committed
fix(admin-ui): fix permissions for script
1 parent bf6afe4 commit c227872

File tree

5 files changed

+24
-8
lines changed

5 files changed

+24
-8
lines changed

admin-ui/app/utils/PermChecker.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export const MAPPING_READ =
3434
export const MAPPING_WRITE =
3535
'https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write'
3636
export const MAPPING_DELETE =
37-
'https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write'
37+
'https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.delete'
3838

3939
export const LICENSE_DETAILS_READ =
4040
BASE_URL + '/config/adminui/license.readonly'

admin-ui/plugins/admin/components/Mapping/MappingItem.js

+14-3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ import {
1010
} from 'Components'
1111
import { useDispatch, useSelector } from 'react-redux'
1212
import { DeleteOutlined } from '@material-ui/icons'
13+
import {
14+
hasPermission,
15+
MAPPING_WRITE,
16+
MAPPING_DELETE
17+
} from 'Utils/PermChecker'
1318
import {
1419
updateMapping,
1520
addPermissionsToRole,
@@ -27,6 +32,7 @@ function MappingItem({ candidate, roles }) {
2732
const dispatch = useDispatch()
2833
const autocompleteRef = useRef(null)
2934
const permissions = useSelector((state) => state.apiPermissionReducer.items)
35+
const authPermissions = useSelector((state) => state.authReducer.permissions)
3036
const [searchablePermissions, setSearchAblePermissions] = useState([])
3137
const [serverPermissions, setServerPermissions] = useState(null)
3238
const [isDeleteable, setIsDeleteable] = useState(false)
@@ -136,6 +142,7 @@ function MappingItem({ candidate, roles }) {
136142
</Accordion.Header>
137143
<Accordion.Body>
138144
<div style={{ marginTop: 10 }}></div>
145+
{hasPermission(authPermissions, MAPPING_WRITE) ?
139146
<Formik
140147
initialValues={initialValues}
141148
onSubmit={handleAddPermission}
@@ -170,10 +177,11 @@ function MappingItem({ candidate, roles }) {
170177
</Form>
171178
</>
172179
)}
173-
</Formik>
180+
</Formik>:null}
174181
{candidate.permissions.map((permission, id) => (
175182
<Row key={id}>
176183
<Col sm={10}>{permission}</Col>
184+
{hasPermission(authPermissions, MAPPING_DELETE) ?
177185
<Col sm={2}>
178186
<Button
179187
type="button"
@@ -188,11 +196,13 @@ function MappingItem({ candidate, roles }) {
188196
<i className="fa fa-trash mr-2"></i>
189197
{t('actions.remove')}
190198
</Button>
191-
</Col>
199+
</Col>:null
200+
}
192201
</Row>
193202
))}
194203
{/* Bottom Buttons */}
195204
<FormGroup row />
205+
{hasPermission(authPermissions, MAPPING_WRITE) ?
196206
<Row>
197207
<Col sm={6}>
198208
<Button
@@ -205,6 +215,7 @@ function MappingItem({ candidate, roles }) {
205215
{t('actions.revert')}
206216
</Button>
207217
</Col>
218+
208219
<Col sm={6} className="text-right">
209220
<Button
210221
type="button"
@@ -219,7 +230,7 @@ function MappingItem({ candidate, roles }) {
219230
{t('actions.save')}
220231
</Button>
221232
</Col>
222-
</Row>
233+
</Row>:null}
223234
{/* Bottom Buttons */}
224235
</Accordion.Body>
225236
</Accordion>

admin-ui/plugins/admin/components/Mapping/MappingPage.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ import MappingItem from './MappingItem'
2323
import {
2424
hasPermission,
2525
buildPayload,
26-
ROLE_READ,
26+
MAPPING_WRITE,
27+
MAPPING_READ
2728
} from 'Utils/PermChecker'
2829
import SetTitle from 'Utils/SetTitle'
2930
import { ThemeContext } from 'Context/theme/themeContext'
@@ -79,7 +80,8 @@ function MappingPage({
7980
<GluuLoader blocking={loading || permissionLoading}>
8081
<Card style={applicationStyle.mainCard}>
8182
<CardBody>
82-
<GluuViewWrapper canShow={hasPermission(permissions, ROLE_READ)}>
83+
<GluuViewWrapper canShow={hasPermission(permissions, MAPPING_READ)}>
84+
{hasPermission(permissions, MAPPING_WRITE) ?
8385
<FormGroup row>
8486
<Col sm={10}></Col>
8587
<Col sm={2}>
@@ -95,7 +97,7 @@ function MappingPage({
9597
</Button>
9698
</Box>
9799
</Col>
98-
</FormGroup>
100+
</FormGroup>:null}
99101
{mapping.map((candidate, idx) => (
100102
<MappingItem key={idx} candidate={candidate} roles={apiRoles} />
101103
))}

admin-ui/plugins/admin/components/Permissions/UiPermListPage.js

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
buildPayload,
2121
PERMISSION_READ,
2222
PERMISSION_WRITE,
23+
PERMISSION_DELETE
2324
} from 'Utils/PermChecker'
2425
import SetTitle from 'Utils/SetTitle'
2526
import { ThemeContext } from 'Context/theme/themeContext'
@@ -106,6 +107,8 @@ function UiPermListPage({ apiPerms, permissions, loading, dispatch }) {
106107
return <UiPermDetailPage row={rowD} />
107108
}}
108109
editable={{
110+
isDeleteHidden:() => !hasPermission(permissions, PERMISSION_DELETE),
111+
isEditHidden:() => !hasPermission(permissions, PERMISSION_WRITE),
109112
onRowUpdate: (newData, oldData) =>
110113
new Promise((resolve, reject) => {
111114
buildPayload(userAction, 'Edit permision', newData)

admin-ui/plugins/admin/plugin-metadata.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ const pluginMetadata = {
117117
{
118118
component: CustomScriptEditPage,
119119
path: PLUGIN_BASE_APTH + '/script/edit:id',
120-
permission: SCRIPT_WRITE,
120+
permission: SCRIPT_READ,
121121
},
122122
{
123123
component: SettingsPage,

0 commit comments

Comments
 (0)