mirror of
https://github.com/sasjs/core.git
synced 2026-01-01 07:00:04 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
54a24ced83 | ||
|
|
57ae2981f1 | ||
|
|
a3043ac685 | ||
|
|
2bdb90b0be | ||
|
|
2cd846d504 | ||
|
|
f593c7bec9 | ||
|
|
c8805db0b5 | ||
|
|
1eb6d8cec9 |
118
all.sas
118
all.sas
@@ -1141,18 +1141,19 @@ or %index(&pgm,/tests/testteardown)
|
||||
@author Allan Bowe
|
||||
**/
|
||||
|
||||
%macro mf_getuser(type=META
|
||||
%macro mf_getuser(
|
||||
)/*/STORE SOURCE*/;
|
||||
%local user metavar;
|
||||
%if &type=OS %then %let metavar=_secureusername;
|
||||
%else %let metavar=_metaperson;
|
||||
%local user;
|
||||
|
||||
%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;
|
||||
%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;
|
||||
%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;
|
||||
%let user=&SYS_COMPUTE_SESSION_OWNER;
|
||||
%end;
|
||||
%else %if %symexist(_metaperson) %then %do;
|
||||
%if %length(&_metaperson)=0 %then %let user=&sysuserid;
|
||||
/* sometimes SAS will add @domain extension - remove for consistency */
|
||||
/* but be sure to quote in case of usernames with commas */
|
||||
%else %let user=%unquote(%scan(%quote(&&&metavar),1,@));
|
||||
%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));
|
||||
%end;
|
||||
%else %let user=&sysuserid;
|
||||
|
||||
@@ -2256,7 +2257,7 @@ Usage:
|
||||
|
||||
%if %symexist(_SYSINCLUDEFILEDEVICE)
|
||||
/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */
|
||||
and "&SYSPROCESSNAME " ne "Compute Server "
|
||||
and %superq(SYSPROCESSNAME) ne %str(Compute Server)
|
||||
%then %do;
|
||||
%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;
|
||||
data &errds;
|
||||
@@ -2274,7 +2275,7 @@ Usage:
|
||||
|
||||
/* Web App Context */
|
||||
%if %symexist(_PROGRAM)
|
||||
or "&SYSPROCESSNAME "="Compute Server "
|
||||
or %superq(SYSPROCESSNAME) = %str(Compute Server)
|
||||
or &mode=INCLUDE
|
||||
%then %do;
|
||||
options obs=max replace mprint;
|
||||
@@ -15243,18 +15244,19 @@ data _null_;
|
||||
put '%end; ';
|
||||
put '%mend mp_jsonout; ';
|
||||
put ' ';
|
||||
put '%macro mf_getuser(type=META ';
|
||||
put '%macro mf_getuser( ';
|
||||
put ')/*/STORE SOURCE*/; ';
|
||||
put ' %local user metavar; ';
|
||||
put ' %if &type=OS %then %let metavar=_secureusername; ';
|
||||
put ' %else %let metavar=_metaperson; ';
|
||||
put ' %local user; ';
|
||||
put ' ';
|
||||
put ' %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %else %if %symexist(&metavar) %then %do; ';
|
||||
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
|
||||
put ' %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; ';
|
||||
put ' %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; ';
|
||||
put ' %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %end; ';
|
||||
put ' %else %if %symexist(_metaperson) %then %do; ';
|
||||
put ' %if %length(&_metaperson)=0 %then %let user=&sysuserid; ';
|
||||
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
|
||||
put ' /* but be sure to quote in case of usernames with commas */ ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); ';
|
||||
put ' %end; ';
|
||||
put ' %else %let user=&sysuserid; ';
|
||||
put ' ';
|
||||
@@ -19952,18 +19954,19 @@ data _null_;
|
||||
put '%end; ';
|
||||
put '%mend mp_jsonout; ';
|
||||
put ' ';
|
||||
put '%macro mf_getuser(type=META ';
|
||||
put '%macro mf_getuser( ';
|
||||
put ')/*/STORE SOURCE*/; ';
|
||||
put ' %local user metavar; ';
|
||||
put ' %if &type=OS %then %let metavar=_secureusername; ';
|
||||
put ' %else %let metavar=_metaperson; ';
|
||||
put ' %local user; ';
|
||||
put ' ';
|
||||
put ' %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %else %if %symexist(&metavar) %then %do; ';
|
||||
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
|
||||
put ' %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; ';
|
||||
put ' %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; ';
|
||||
put ' %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %end; ';
|
||||
put ' %else %if %symexist(_metaperson) %then %do; ';
|
||||
put ' %if %length(&_metaperson)=0 %then %let user=&sysuserid; ';
|
||||
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
|
||||
put ' /* but be sure to quote in case of usernames with commas */ ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); ';
|
||||
put ' %end; ';
|
||||
put ' %else %let user=&sysuserid; ';
|
||||
put ' ';
|
||||
@@ -20278,12 +20281,17 @@ filename &headref clear;
|
||||
|
||||
%ms_getgroups(outds=userlist)
|
||||
|
||||
With filter:
|
||||
With filter on username:
|
||||
|
||||
%ms_getgroups(outds=userlist, user=James)
|
||||
|
||||
With filter on userid:
|
||||
|
||||
%ms_getgroups(outds=userlist, uid=1)
|
||||
|
||||
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
||||
@param [in] user= (0) Provide the username on which to filter
|
||||
@param [in] uid= (0) Provide the userid on which to filter
|
||||
@param [out] outds= (work.ms_getgroups) This output dataset will contain the
|
||||
list of groups. Format:
|
||||
|NAME:$32.|DESCRIPTION:$64.|GROUPID:best.|
|
||||
@@ -20306,6 +20314,7 @@ filename &headref clear;
|
||||
|
||||
%macro ms_getgroups(
|
||||
user=0,
|
||||
uid=0,
|
||||
outds=work.ms_getgroups,
|
||||
mdebug=0
|
||||
);
|
||||
@@ -20355,8 +20364,10 @@ run;
|
||||
run;
|
||||
%end;
|
||||
|
||||
%if "&user"="0" %then %let url=/SASjsApi/group;
|
||||
%else %let url=/SASjsApi/user/by/username/&user;
|
||||
%if "&user" ne "0" %then %let url=/SASjsApi/user/by/username/&user;
|
||||
%else %if "&uid" ne "0" %then %let url=/SASjsApi/user/&uid;
|
||||
%else %let url=/SASjsApi/group;
|
||||
|
||||
|
||||
proc http method='GET' headerin=&fref0 out=&fref1
|
||||
url="&_sasjs_apiserverurl.&url";
|
||||
@@ -20373,7 +20384,7 @@ run;
|
||||
|
||||
libname &libref JSON fileref=&fref1;
|
||||
|
||||
%if "&user"="0" %then %do;
|
||||
%if "&user"="0" and "&uid"="0" %then %do;
|
||||
data &outds;
|
||||
length NAME $32 DESCRIPTION $64. GROUPID 8;
|
||||
if _n_=1 then call missing(of _all_);
|
||||
@@ -20416,12 +20427,17 @@ options &optval;
|
||||
|
||||
%ms_getusers(outds=userlist)
|
||||
|
||||
Filtering for a group:
|
||||
Filtering for a group by group name:
|
||||
|
||||
%ms_getusers(outds=work.groupmembers, group=GROUPNAME)
|
||||
|
||||
Filtering for a group by group id:
|
||||
|
||||
%ms_getusers(outds=work.groupmembers, gid=1)
|
||||
|
||||
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
||||
@param [in] group= (0) Set to a group name to filter members for that group
|
||||
@param [in] gid= (0) Set to a group id to filter members for that group
|
||||
@param [out] outds= (work.ms_getusers) This output dataset will contain the
|
||||
list of user accounts. Format:
|
||||
|DISPLAYNAME:$60.|USERNAME:$30.|ID:best.|
|
||||
@@ -20433,7 +20449,6 @@ options &optval;
|
||||
|`New User `|`newuser `|`5`|
|
||||
|
||||
|
||||
|
||||
<h4> SAS Macros </h4>
|
||||
@li mf_getuniquefileref.sas
|
||||
@li mf_getuniquelibref.sas
|
||||
@@ -20449,6 +20464,7 @@ options &optval;
|
||||
%macro ms_getusers(
|
||||
outds=work.ms_getusers,
|
||||
group=0,
|
||||
gid=0,
|
||||
mdebug=0
|
||||
);
|
||||
|
||||
@@ -20463,6 +20479,19 @@ options &optval;
|
||||
%let fref1=%mf_getuniquefileref();
|
||||
%let libref=%mf_getuniquelibref();
|
||||
|
||||
%if %sysget(MODE)=desktop %then %do;
|
||||
/* users api does not exist in desktop mode */
|
||||
data &outds;
|
||||
length DISPLAYNAME $60 USERNAME:$30 ID 8;
|
||||
USERNAME="&sysuserid";
|
||||
DISPLAYNAME="&sysuserid (desktop mode)";
|
||||
ID=1;
|
||||
output;
|
||||
stop;
|
||||
run;
|
||||
%return;
|
||||
%end;
|
||||
|
||||
/* avoid sending bom marker to API */
|
||||
%let optval=%sysfunc(getoption(bomfile));
|
||||
options nobomfile;
|
||||
@@ -20483,9 +20512,9 @@ run;
|
||||
run;
|
||||
%end;
|
||||
|
||||
%if "&group"="0" %then %let url=/SASjsApi/user;
|
||||
%else %let url=/SASjsApi/group/by/groupname/&group;
|
||||
|
||||
%if "&group" ne "0" %then %let url=/SASjsApi/group/by/groupname/&group;
|
||||
%else %if "&gid" ne "0" %then %let url=/SASjsApi/group/&gid;
|
||||
%else %let url=/SASjsApi/user;
|
||||
|
||||
proc http method='GET' headerin=&fref0 out=&fref1
|
||||
url="&_sasjs_apiserverurl.&url";
|
||||
@@ -20503,7 +20532,7 @@ run;
|
||||
|
||||
libname &libref JSON fileref=&fref1;
|
||||
|
||||
%if "&group"="0" %then %do;
|
||||
%if "&group"="0" and "&gid"="0" %then %do;
|
||||
data &outds;
|
||||
length DISPLAYNAME $60 USERNAME:$30 ID 8;
|
||||
set &libref..root;
|
||||
@@ -22268,18 +22297,19 @@ data _null_;
|
||||
put '%end; ';
|
||||
put '%mend mp_jsonout; ';
|
||||
put ' ';
|
||||
put '%macro mf_getuser(type=META ';
|
||||
put '%macro mf_getuser( ';
|
||||
put ')/*/STORE SOURCE*/; ';
|
||||
put ' %local user metavar; ';
|
||||
put ' %if &type=OS %then %let metavar=_secureusername; ';
|
||||
put ' %else %let metavar=_metaperson; ';
|
||||
put ' %local user; ';
|
||||
put ' ';
|
||||
put ' %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %else %if %symexist(&metavar) %then %do; ';
|
||||
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
|
||||
put ' %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; ';
|
||||
put ' %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; ';
|
||||
put ' %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %end; ';
|
||||
put ' %else %if %symexist(_metaperson) %then %do; ';
|
||||
put ' %if %length(&_metaperson)=0 %then %let user=&sysuserid; ';
|
||||
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
|
||||
put ' /* but be sure to quote in case of usernames with commas */ ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); ';
|
||||
put ' %end; ';
|
||||
put ' %else %let user=&sysuserid; ';
|
||||
put ' ';
|
||||
|
||||
@@ -23,18 +23,19 @@
|
||||
@author Allan Bowe
|
||||
**/
|
||||
|
||||
%macro mf_getuser(type=META
|
||||
%macro mf_getuser(
|
||||
)/*/STORE SOURCE*/;
|
||||
%local user metavar;
|
||||
%if &type=OS %then %let metavar=_secureusername;
|
||||
%else %let metavar=_metaperson;
|
||||
%local user;
|
||||
|
||||
%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;
|
||||
%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;
|
||||
%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;
|
||||
%let user=&SYS_COMPUTE_SESSION_OWNER;
|
||||
%end;
|
||||
%else %if %symexist(_metaperson) %then %do;
|
||||
%if %length(&_metaperson)=0 %then %let user=&sysuserid;
|
||||
/* sometimes SAS will add @domain extension - remove for consistency */
|
||||
/* but be sure to quote in case of usernames with commas */
|
||||
%else %let user=%unquote(%scan(%quote(&&&metavar),1,@));
|
||||
%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));
|
||||
%end;
|
||||
%else %let user=&sysuserid;
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
%if %symexist(_SYSINCLUDEFILEDEVICE)
|
||||
/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */
|
||||
and "&SYSPROCESSNAME " ne "Compute Server "
|
||||
and %superq(SYSPROCESSNAME) ne %str(Compute Server)
|
||||
%then %do;
|
||||
%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;
|
||||
data &errds;
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
/* Web App Context */
|
||||
%if %symexist(_PROGRAM)
|
||||
or "&SYSPROCESSNAME "="Compute Server "
|
||||
or %superq(SYSPROCESSNAME) = %str(Compute Server)
|
||||
or &mode=INCLUDE
|
||||
%then %do;
|
||||
options obs=max replace mprint;
|
||||
|
||||
@@ -315,18 +315,19 @@ data _null_;
|
||||
put '%end; ';
|
||||
put '%mend mp_jsonout; ';
|
||||
put ' ';
|
||||
put '%macro mf_getuser(type=META ';
|
||||
put '%macro mf_getuser( ';
|
||||
put ')/*/STORE SOURCE*/; ';
|
||||
put ' %local user metavar; ';
|
||||
put ' %if &type=OS %then %let metavar=_secureusername; ';
|
||||
put ' %else %let metavar=_metaperson; ';
|
||||
put ' %local user; ';
|
||||
put ' ';
|
||||
put ' %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %else %if %symexist(&metavar) %then %do; ';
|
||||
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
|
||||
put ' %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; ';
|
||||
put ' %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; ';
|
||||
put ' %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %end; ';
|
||||
put ' %else %if %symexist(_metaperson) %then %do; ';
|
||||
put ' %if %length(&_metaperson)=0 %then %let user=&sysuserid; ';
|
||||
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
|
||||
put ' /* but be sure to quote in case of usernames with commas */ ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); ';
|
||||
put ' %end; ';
|
||||
put ' %else %let user=&sysuserid; ';
|
||||
put ' ';
|
||||
|
||||
@@ -317,18 +317,19 @@ data _null_;
|
||||
put '%end; ';
|
||||
put '%mend mp_jsonout; ';
|
||||
put ' ';
|
||||
put '%macro mf_getuser(type=META ';
|
||||
put '%macro mf_getuser( ';
|
||||
put ')/*/STORE SOURCE*/; ';
|
||||
put ' %local user metavar; ';
|
||||
put ' %if &type=OS %then %let metavar=_secureusername; ';
|
||||
put ' %else %let metavar=_metaperson; ';
|
||||
put ' %local user; ';
|
||||
put ' ';
|
||||
put ' %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %else %if %symexist(&metavar) %then %do; ';
|
||||
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
|
||||
put ' %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; ';
|
||||
put ' %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; ';
|
||||
put ' %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %end; ';
|
||||
put ' %else %if %symexist(_metaperson) %then %do; ';
|
||||
put ' %if %length(&_metaperson)=0 %then %let user=&sysuserid; ';
|
||||
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
|
||||
put ' /* but be sure to quote in case of usernames with commas */ ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); ';
|
||||
put ' %end; ';
|
||||
put ' %else %let user=&sysuserid; ';
|
||||
put ' ';
|
||||
|
||||
@@ -9,12 +9,17 @@
|
||||
|
||||
%ms_getgroups(outds=userlist)
|
||||
|
||||
With filter:
|
||||
With filter on username:
|
||||
|
||||
%ms_getgroups(outds=userlist, user=James)
|
||||
|
||||
With filter on userid:
|
||||
|
||||
%ms_getgroups(outds=userlist, uid=1)
|
||||
|
||||
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
||||
@param [in] user= (0) Provide the username on which to filter
|
||||
@param [in] uid= (0) Provide the userid on which to filter
|
||||
@param [out] outds= (work.ms_getgroups) This output dataset will contain the
|
||||
list of groups. Format:
|
||||
|NAME:$32.|DESCRIPTION:$64.|GROUPID:best.|
|
||||
@@ -37,6 +42,7 @@
|
||||
|
||||
%macro ms_getgroups(
|
||||
user=0,
|
||||
uid=0,
|
||||
outds=work.ms_getgroups,
|
||||
mdebug=0
|
||||
);
|
||||
@@ -86,8 +92,10 @@ run;
|
||||
run;
|
||||
%end;
|
||||
|
||||
%if "&user"="0" %then %let url=/SASjsApi/group;
|
||||
%else %let url=/SASjsApi/user/by/username/&user;
|
||||
%if "&user" ne "0" %then %let url=/SASjsApi/user/by/username/&user;
|
||||
%else %if "&uid" ne "0" %then %let url=/SASjsApi/user/&uid;
|
||||
%else %let url=/SASjsApi/group;
|
||||
|
||||
|
||||
proc http method='GET' headerin=&fref0 out=&fref1
|
||||
url="&_sasjs_apiserverurl.&url";
|
||||
@@ -104,7 +112,7 @@ run;
|
||||
|
||||
libname &libref JSON fileref=&fref1;
|
||||
|
||||
%if "&user"="0" %then %do;
|
||||
%if "&user"="0" and "&uid"="0" %then %do;
|
||||
data &outds;
|
||||
length NAME $32 DESCRIPTION $64. GROUPID 8;
|
||||
if _n_=1 then call missing(of _all_);
|
||||
|
||||
@@ -8,12 +8,17 @@
|
||||
|
||||
%ms_getusers(outds=userlist)
|
||||
|
||||
Filtering for a group:
|
||||
Filtering for a group by group name:
|
||||
|
||||
%ms_getusers(outds=work.groupmembers, group=GROUPNAME)
|
||||
|
||||
Filtering for a group by group id:
|
||||
|
||||
%ms_getusers(outds=work.groupmembers, gid=1)
|
||||
|
||||
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
||||
@param [in] group= (0) Set to a group name to filter members for that group
|
||||
@param [in] gid= (0) Set to a group id to filter members for that group
|
||||
@param [out] outds= (work.ms_getusers) This output dataset will contain the
|
||||
list of user accounts. Format:
|
||||
|DISPLAYNAME:$60.|USERNAME:$30.|ID:best.|
|
||||
@@ -25,7 +30,6 @@
|
||||
|`New User `|`newuser `|`5`|
|
||||
|
||||
|
||||
|
||||
<h4> SAS Macros </h4>
|
||||
@li mf_getuniquefileref.sas
|
||||
@li mf_getuniquelibref.sas
|
||||
@@ -41,6 +45,7 @@
|
||||
%macro ms_getusers(
|
||||
outds=work.ms_getusers,
|
||||
group=0,
|
||||
gid=0,
|
||||
mdebug=0
|
||||
);
|
||||
|
||||
@@ -55,6 +60,19 @@
|
||||
%let fref1=%mf_getuniquefileref();
|
||||
%let libref=%mf_getuniquelibref();
|
||||
|
||||
%if %sysget(MODE)=desktop %then %do;
|
||||
/* users api does not exist in desktop mode */
|
||||
data &outds;
|
||||
length DISPLAYNAME $60 USERNAME:$30 ID 8;
|
||||
USERNAME="&sysuserid";
|
||||
DISPLAYNAME="&sysuserid (desktop mode)";
|
||||
ID=1;
|
||||
output;
|
||||
stop;
|
||||
run;
|
||||
%return;
|
||||
%end;
|
||||
|
||||
/* avoid sending bom marker to API */
|
||||
%let optval=%sysfunc(getoption(bomfile));
|
||||
options nobomfile;
|
||||
@@ -75,9 +93,9 @@ run;
|
||||
run;
|
||||
%end;
|
||||
|
||||
%if "&group"="0" %then %let url=/SASjsApi/user;
|
||||
%else %let url=/SASjsApi/group/by/groupname/&group;
|
||||
|
||||
%if "&group" ne "0" %then %let url=/SASjsApi/group/by/groupname/&group;
|
||||
%else %if "&gid" ne "0" %then %let url=/SASjsApi/group/&gid;
|
||||
%else %let url=/SASjsApi/user;
|
||||
|
||||
proc http method='GET' headerin=&fref0 out=&fref1
|
||||
url="&_sasjs_apiserverurl.&url";
|
||||
@@ -95,7 +113,7 @@ run;
|
||||
|
||||
libname &libref JSON fileref=&fref1;
|
||||
|
||||
%if "&group"="0" %then %do;
|
||||
%if "&group"="0" and "&gid"="0" %then %do;
|
||||
data &outds;
|
||||
length DISPLAYNAME $60 USERNAME:$30 ID 8;
|
||||
set &libref..root;
|
||||
|
||||
@@ -459,18 +459,19 @@ data _null_;
|
||||
put '%end; ';
|
||||
put '%mend mp_jsonout; ';
|
||||
put ' ';
|
||||
put '%macro mf_getuser(type=META ';
|
||||
put '%macro mf_getuser( ';
|
||||
put ')/*/STORE SOURCE*/; ';
|
||||
put ' %local user metavar; ';
|
||||
put ' %if &type=OS %then %let metavar=_secureusername; ';
|
||||
put ' %else %let metavar=_metaperson; ';
|
||||
put ' %local user; ';
|
||||
put ' ';
|
||||
put ' %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %else %if %symexist(&metavar) %then %do; ';
|
||||
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
|
||||
put ' %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; ';
|
||||
put ' %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; ';
|
||||
put ' %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
||||
put ' %end; ';
|
||||
put ' %else %if %symexist(_metaperson) %then %do; ';
|
||||
put ' %if %length(&_metaperson)=0 %then %let user=&sysuserid; ';
|
||||
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
|
||||
put ' /* but be sure to quote in case of usernames with commas */ ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
|
||||
put ' %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); ';
|
||||
put ' %end; ';
|
||||
put ' %else %let user=&sysuserid; ';
|
||||
put ' ';
|
||||
|
||||
Reference in New Issue
Block a user