mirror of
https://github.com/sasjs/core.git
synced 2025-12-10 22:14:35 +00:00
43 lines
1.4 KiB
SAS
Executable File
43 lines
1.4 KiB
SAS
Executable File
/**
|
|
@file
|
|
@brief Returns a userid according to session context
|
|
@details In a workspace session, a user is generally represented by <code>
|
|
&sysuserid</code> or <code>SYS_COMPUTE_SESSION_OWNER</code> if it exists.
|
|
In a Stored Process session, <code>&sysuserid</code>
|
|
resolves to a system account (default=sassrv) and instead there are several
|
|
metadata username variables to choose from (_metauser, _metaperson
|
|
,_username, _secureusername). The OS account is represented by
|
|
<code> _secureusername</code> whilst the metadata account is under <code>
|
|
_metaperson</code>.
|
|
|
|
%let user= %mf_getUser();
|
|
%put &user;
|
|
|
|
@param type - do not use, may be deprecated in a future release
|
|
|
|
@return SYSUSERID (if workspace server)
|
|
@return _METAPERSON (if stored process server)
|
|
@return SYS_COMPUTE_SESSION_OWNER (if Viya compute session)
|
|
|
|
@version 9.2
|
|
@author Allan Bowe
|
|
**/
|
|
|
|
%macro mf_getuser(type=META
|
|
)/*/STORE SOURCE*/;
|
|
%local user metavar;
|
|
%if &type=OS %then %let metavar=_secureusername;
|
|
%else %let metavar=_metaperson;
|
|
|
|
%if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %let user=&SYS_COMPUTE_SESSION_OWNER;
|
|
%else %if %symexist(&metavar) %then %do;
|
|
%if %length(&&&metavar)=0 %then %let user=&sysuserid;
|
|
/* sometimes SAS will add @domain extension - remove for consistency */
|
|
%else %let user=%scan(&&&metavar,1,@);
|
|
%end;
|
|
%else %let user=&sysuserid;
|
|
|
|
%quote(&user)
|
|
|
|
%mend mf_getuser;
|