|
On Wed, Jul 12, 2017 at 6:55 AM, Glenn Gundermann wrote:
On 12-Jul-2017 04:23 -0600, Gad Miron wrote:
[…] We have here a (admittedly primitive) small home grown
authorization system where users are authorized to certain PGMs
(and to PGM's features) in certain Libraries.
Like: User Bob is authorized to LIB1/PGM_A
this system is implemented by having each PGM call (in *INZSR) a
certain authority checking program (passing it's *PSSR's User,
PGM and Library) that returns a pass/fail indication
This works fine until some programmer compiles a PGM while it is
in use by some user.
The compile replaces the PGM and moves the original PGM obj to
QRPLOBJ
The scenario is as follows:
User has authority to LIB1/PGM_A
PGM_B calls PGM_A
PGM_A checks authority of user to LIB1/PGM_A – User passes the
check.
LIB1/PGM_A is compiled. PGM_A in LIB1 is replaced, original PGM_A
is moved to QRPLOBJ
PGM_A returns to caller (PGM_B)
[…]
Instead of leaving it to the system to move the existing program to
QRPLOBJ, you could have the promotion program do it as part of the
process:
- Delete any older versions of QRPLOBJ/PGM_A
- Move the current version<lib>/PGM_A to QRPLOBJ
- Compile PGM_A
What happens if you delete the program instead of using QRPLOBJ?
*_>_O DLTPGM PGM(@OBJLIB/@OBJNAM)
*_>_R CRTBNDRPG PGM(@OBJLIB/@OBJNAME
*_>_C SRCFIL(@SRCLIB/@SRCFIL) SRCMBR(@SRCMBR)
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.