Rev 64 | Blame | Compare with Previous | Last modification | View Log | RSS feed
SELECT qry.TABLE_NAME,qry.REF_COLUMN_VAL,qry.PERM_ID,qry.PERM_VALUEFROM --APPLICATION_PAGES ap,--PAGE_CONTROL_OBJECTS pco,CONTROL_OBJECTS co,DATA_TABLES dt,(/* Access Control Data Permissions */SELECT bl.DT_ID,bl.TABLE_NAME,bl.REF_COLUMN_VAL,bl.PERM_ID,DECODE ( yc.PERM_VALUE,NULL, bl.PERM_VALUE,yc.PERM_VALUE ) AS PERM_VALUEFROM (/* Get base list for Data Permissions */SELECT rol.ROLE_ID, dt.DT_ID, dt.TABLE_NAME, 0 AS REF_COLUMN_VAL, pt.PERM_ID, 'Y' AS PERM_VALUEFROM CONTROL_OBJECTS co,DATA_TABLES dt,PERMISSION_TYPES pt,(/* Get User Roles for this Application */SELECT ro.*FROM ROLES ro,USER_ROLES urWHERE ur.ROLE_ID = ro.ROLE_IDAND ro.APP_ID = :APP_IDAND ur.USER_ID = :USER_ID) rolWHERE dt.OBJ_ID = co.OBJ_IDAND co.APP_ID = :APP_ID) bl,(/* Find only 'Y' Permissions, which will change 'All' permission to 'N' */SELECT dt.DT_ID, 0 AS REF_COLUMN_VAL, dp.PERM_ID, 'N' AS PERM_VALUE, COUNT(*) AS YES_COUNTFROM DATA_PERMISSIONS dp,DATA_TABLES dt,ROLES ro,USER_ROLES urWHERE ur.ROLE_ID = ro.ROLE_IDAND dp.ROLE_ID = ro.ROLE_IDAND dp.DT_ID = dt.DT_IDAND ro.APP_ID = :APP_IDAND ur.USER_ID = :USER_IDAND ro.IS_ROLE_VARIATION IS NULLGROUP BY dt.DT_ID, dp.PERM_ID) ycWHERE yc.DT_ID (+) = bl.DT_IDAND yc.PERM_ID (+) = bl.PERM_IDUNION(/* Get Filter Settings for All Permission Types */SELECT dt.DT_ID, dt.TABLE_NAME, dp.REF_COLUMN_VAL, dp.PERM_ID, dp.PERM_VALUEFROM DATA_PERMISSIONS dp,DATA_TABLES dt,ROLES ro,USER_ROLES urWHERE ur.ROLE_ID = ro.ROLE_IDAND dp.ROLE_ID = ro.ROLE_IDAND dp.DT_ID = dt.DT_IDAND ro.APP_ID = :APP_IDAND ur.USER_ID = :USER_IDMINUS/* Overwrite Data Permissions using User Specific Role */SELECT DISTINCTdt.DT_ID,dt.TABLE_NAME,dp.REF_COLUMN_VAL,dp.PERM_ID,DECODE ( dp.PERM_VALUE,'Y', 'N', 'Y' ) AS PERM_VALUEFROM DATA_PERMISSIONS dp,DATA_TABLES dt,ROLES ro,USER_ROLES urWHERE ur.ROLE_ID = ro.ROLE_IDAND dp.ROLE_ID = ro.ROLE_IDAND dp.DT_ID = dt.DT_IDAND ro.APP_ID = :APP_IDAND ur.USER_ID = :USER_IDAND ro.IS_ROLE_VARIATION = 'Y')) qryWHERE dt.OBJ_ID = co.OBJ_IDAND dt.DT_ID = qry.DT_IDAND co.APP_ID = :APP_ID--AND ap.APP_ID = :APP_ID--AND ap.PAGE_NAME = :PAGE_NAME--AND pco.PAGE_ID = ap.PAGE_ID--AND pco.OBJ_ID = co.OBJ_ID/* Uncomment the lines above if you want to use APPLICATION_PAGES table */