Security Model
Source: app_sec library (user/security maintenance screens), homersys
(n_system_menu_security menu filtering), function f_check_group_security, and
the security_* tables.
Concepts
| Table | Role |
|---|---|
security_users | Application users (name, description, user_type, priority). Users are Oracle accounts (login is a DB connection; dddw_new_oracle_users picks from all_users). |
security_user_class | Roles ("user classes") with descriptions. |
security_user_class_user | User ↔ class membership. |
security_user_group | Data-level security: which employer groups a user class may work with. |
security_db_role / security_users_db_role | Oracle database roles granted per user. |
security_menu_options | Function-level security: per menu entry, a setting for a name that is either a user or a class (name_type), layered app-default → class → user. |
system_menu | The navigable function tree: menu caption, window_to_open, parameter, display_order, sys_menu_option. |
security_apps, security_template, security_info | Window/control-level security templates (per application, window, control). |
security_groupings | User grouping (departments) for worklists/assignment. |
Requirements
- SEC-1 — Users authenticate as individual Oracle database accounts; the
application opens its DB connection with the user's credentials
(
n_cst_sfpiappmanagerlogon; user maintenance creates Oracle users —app_sec/w_new_user,dddw_new_oracle_users). A replacement must provide individual authenticated identities with per-user audit attribution, though not necessarily via database accounts. - SEC-2 — Access to functions is role-based: the function tree (
system_menu) is filtered per user by layered settings — application default, then user-class setting, then per-user override (n_system_menu_security.of_applymenusecurity,security_menu_options.name_type). - SEC-3 — Access to data is restricted by employer group: a user may only work
with groups mapped to one of their user classes
(
f_check_group_security:security_user_class_user⋈security_user_grouponuser_class, filtered byUSERandgroup_id). - SEC-4 — Screen-level restrictions can disable/hide individual windows and
controls per application via security templates (
security_template,security_info). - SEC-5 — Security administration screens exist for: user creation (including
the underlying account), class membership, class↔group assignment, department
groups, supervisor assignment, and security reports (functions by user, users by
function, object security) —
app_sec/w_user_maint,w_user_assignment,w_user_dept_group,w_user_supervisor_edit,w_sec_report1.
Screens (app_sec library)
| Window | Purpose |
|---|---|
app_sec/w_maint_security | Main security maintenance — create and maintain user security for the application (function/menu settings per user or class, via d_security_menu_options). |
app_sec/w_user_info_maint_selection / app_sec/w_user_info_edit | User profile list and editor (demographics, department, supervisor, location; DataWindows d_user_info_selection, d_user_info_edit). |
app_sec/w_user_maint, app_sec/w_new_user | User account creation/maintenance, including the underlying Oracle account and role grants (SEC-1, SEC-5). |
app_sec/w_user_assignment / app_sec/w_user_assignment_error | Assign users to classes/groups via wizard; the error window lists conflicting user-group assignments detected during assignment. |
app_sec/w_cust_group_sec | Maintain customer-group security — which employer groups a user class may access (security_user_group, SEC-3). |
app_sec/w_user_dept_group | Department-group membership maintenance (security_groupings). |
app_sec/w_user_supervisor_edit | Supervisor assignment per user. |
app_sec/w_sec_report1, app_sec/w_system_menu_security | Security reports (functions by user, users by function, object security) and menu-security review. |
Open question
The live contents of system_menu, security_user_class, and
security_menu_options define the actual production function tree and role
matrix. Export them before designing the replacement's role model (OQ-1 in
Migration Considerations).