In menu security, is there a known precedence that Epicor uses when deciding if a user has been ‘allowed’ or ‘denied’ on a particular security code?
I have been writing a function which will return if you are accepted/denied on a particular security code. However, I need to make sure that this aligns exactly with Epicor’s functionality for this.
My precedence order after looking into this (1 = high precedence, 5 = low):
Security Manager → Always grants access.
DisallowAccess (by name) → Always denies access.
AllowAccess (by name) → Always grants access.
AllowAll + DisallowAccess (by group) → Deny if group match, unless name is allowed.
DisallowAll → Deny unless name or group is explicitly allowed.
No matching name or group in AllowAccess → Denied.
Here is a further breakdown:
When a user is ALLOWED access
- Security Manager
- If
UserFile.SecurityMgr == true, access is immediately granted, no further checks.
- Explicit Allow by Name
- If
UserFile.Nameis listed inSecurity.AllowAccess, access is granted, even if their group is disallowed.
- AllowAll is True
- Access is granted to everyone, unless:
- The user’s name is in
DisallowAccess→ denied. - The user’s group is in
DisallowAccess→ denied. - (But if the user’s name is in
AllowAccess, that still overrides any disallow.)
- The user’s name is in
- DisallowAll is True
- Access is denied by default, unless:
- The user’s name is in
AllowAccess→ granted. - The user’s group description is in
AllowAccess→ granted.
- The user’s name is in
- No AllowAll or DisallowAll
- Access is only granted if:
- The user’s name is in
AllowAccess. - Or their group description is in
AllowAccess.
- The user’s name is in
When a user is DENIED access
- Explicit Deny by Name
- If
UserFile.Nameis inDisallowAccess, access is immediately denied, even if AllowAll or AllowAccess includes them.
- AllowAll is True, but Group is Disallowed
- If user’s group description is in
DisallowAccess, access is denied, unless their name is explicitly allowed.
- DisallowAll is True, and No Match in AllowAccess
- If user’s name or group is not in
AllowAccess, access is denied.
- No Matching Name or Group in AllowAccess
- If AllowAll is false, DisallowAll is false, and the user’s name and groups are not listed in
AllowAccess, access is denied.
If anyone knows the inner workings of menu security maintenance, then confirmation or assistance on this would be amazing!
Thank you for the help ![]()