| 64 |
jtweddle |
1 |
/* Access Control Static Permissions */
|
|
|
2 |
SELECT co.obj_name, perm.perm_id, perm.perm_value
|
|
|
3 |
FROM (
|
|
|
4 |
|
|
|
5 |
(
|
|
|
6 |
/* All 'Y' User Permissions */
|
|
|
7 |
|
|
|
8 |
/* Get all 'Y' permissions */
|
|
|
9 |
SELECT DISTINCT rp.OBJ_ID, rp.PERM_ID, rp.PERM_VALUE
|
|
|
10 |
FROM USER_ROLES ur,
|
|
|
11 |
ROLE_PRIVILEGES rp,
|
|
|
12 |
ROLES ro
|
|
|
13 |
WHERE ur.ROLE_ID = ro.ROLE_ID
|
|
|
14 |
AND rp.ROLE_ID = ro.ROLE_ID
|
|
|
15 |
AND ur.USER_ID = :USER_ID
|
|
|
16 |
AND rp.PERM_VALUE = 'Y'
|
|
|
17 |
AND ro.APP_ID = :APP_ID
|
|
|
18 |
MINUS
|
|
|
19 |
/* Revoke permissions if they set to 'N'*/
|
|
|
20 |
SELECT DISTINCT rp.OBJ_ID, rp.PERM_ID, 'Y' AS PERM_VALUE
|
|
|
21 |
FROM USER_ROLES ur,
|
|
|
22 |
ROLE_PRIVILEGES rp,
|
|
|
23 |
ROLES ro
|
|
|
24 |
WHERE ur.ROLE_ID = ro.ROLE_ID
|
|
|
25 |
AND rp.ROLE_ID = ro.ROLE_ID
|
|
|
26 |
AND ur.USER_ID = :USER_ID
|
|
|
27 |
AND rp.PERM_VALUE = 'N'
|
|
|
28 |
AND ro.APP_ID = :APP_ID
|
|
|
29 |
|
|
|
30 |
)
|
|
|
31 |
|
|
|
32 |
MINUS
|
|
|
33 |
|
|
|
34 |
/* Role Variant Revokes */
|
|
|
35 |
SELECT DISTINCT rp.OBJ_ID, rp.perm_id, 'Y' AS perm_value
|
|
|
36 |
FROM role_privileges rp,
|
|
|
37 |
ROLES ro,
|
|
|
38 |
user_roles ur
|
|
|
39 |
WHERE ro.role_id = rp.role_id
|
|
|
40 |
AND ro.role_id = ur.role_id
|
|
|
41 |
AND rp.PERM_VALUE = 'N'
|
|
|
42 |
AND ro.IS_ROLE_VARIATION = 'Y'
|
|
|
43 |
AND ur.user_id = :USER_ID
|
|
|
44 |
AND ro.APP_ID = :APP_ID
|
|
|
45 |
|
|
|
46 |
) perm,
|
|
|
47 |
control_objects co
|
|
|
48 |
--page_control_objects pco,
|
|
|
49 |
--application_pages ap
|
|
|
50 |
WHERE perm.obj_id = co.obj_id
|
|
|
51 |
AND co.APP_ID = :APP_ID
|
|
|
52 |
|
|
|
53 |
-- AND ap.APP_ID = co.APP_ID
|
|
|
54 |
-- AND ap.APP_ID = :APP_ID
|
|
|
55 |
--AND pco.obj_id = co.obj_id
|
|
|
56 |
--AND pco.PAGE_ID = ap.PAGE_ID
|
|
|
57 |
--AND ap.page_name = :PAGE_NAME
|
|
|
58 |
/* Return uncomented lines to include use of APPLICATION_PAGES table */
|