× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Joep,

If your program is, indeed, running under additional authority via the adopted authority mechanism, then QSYGETPH will use that authority.

However, I'm not sure (from your description) that you are correctly checking to determine whether it's using adopted authority or not.

To clarify... there are two things involved in what we typically refer to as "adopted authority."

1) Running a program with USRPRF = *OWNER. This is what creates the additional authority.. Each time authority is checked, they check to see if the current user *or* the program's owner has authority to something. Thus enabling greater authority while that program is active.

2) Use Adopted Authority = *YES (or *NO). This is set, by default to *YES. So every program you compile (unless you change it) will have Use Adopted Authority = *YES. This setting means that this program will run under the same authority as _the_program_that_called_it_. So if the caller was using usrprf=*owner, this one will adopt that same authority. But if the caller was using no special authority, then a program with "use adopted = *yes" would also have no special authority.

It sounds to me like you're seeing "Use Adopted Authority = Y" and assuming that the program is running with additional authority -- which just is not true.


Joep Beckeringh wrote:
In 6.1 command CPYFRMSTMF was changed; the database file member is accessed through its IFS path, instead of as a library object. One annoying side effect of this 'enhancement' is that adopted authority is no longer in effect.

In order to overcome this problem I made a wrapper around CPYFRMSTMF that does the following:
- Check whether current user has sufficient authority for the member
- If not, walk through the call stack to see if adopted authority is in effect
- If an authority adopting program is found, switch to the user profile of the owner of the program
- Execute the CPYFRMSTMF
- If switched, switch back to the original profile

All is fine if the current user has *USE authority for the owner profile, but QSYGETPH (Get Profile Handle) fails with CPF22E9 if current user has insufficent authority, even if the user with whose authority we are running does have *USE authority for his own profile.

It appears that QSYGETPH, although the *PGM object does have Use Adopted Authority 'Y'es, ignores adopted authority when accessing a user profile.

Does anyone have experience with this phenomenon? Or a different explanation?

Joep Beckeringh


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.