20 %macro mm_getauthinfo(outds=mm_getauthinfo
23 %
if %length(&outds)>30 %then %
do;
24 %put %str(ERR)OR: Temp tables are created with the &outds prefix, which therefore
25 needs to be 30 characters or less;
28 %
if %index(&outds,
'.')>0 %then %
do;
29 %put %str(ERR)OR: Table &outds should be ONE LEVEL (no library);
33 %mm_getobjects(type=Login,outds=&outds.0)
36 %let fileref=%mf_getuniquefileref();
40 set &outds.0 end=last;
42 str=cats(
'%mm_getdetails(uri=',
id,
",outattrs=&outds.d",_n_
43 ,
",outassocs=&outds.a",_n_,
")");
46 str=cats(
"proc transpose data=&outds.d",_n_,
"(drop=type) out=&outds.da"
47 ,_n_,
"(drop=_name_);var value;id name;run;");
50 str=cats(
"data &outds.da",_n_,
";length login_id login_name $256; login_id="
51 ,quote(trim(
id)),
";set &outds.da",_n_
52 ,
";login_name=trim(subpad(name,1,256));drop name;run;");
55 str=cats(
"data &outds.a",_n_,
";length login_id login_name $256; login_id="
56 ,quote(trim(
id)),
";login_name=",quote(trim(name))
57 ,
";set &outds.a",_n_,
";run;");
61 str=cats(
"data &outds._logat; set &outds.da1-&outds.da",_n_,
";run;");
64 str=cats(
"data &outds._logas; set &outds.a1-&outds.a",_n_,
";run;");
67 str=cats(
"proc delete data=&outds.da1-&outds.da",_n_,
";run;");
69 str=cats(
"proc delete data=&outds.d1-&outds.d",_n_,
";run;");
71 str=cats(
"proc delete data=&outds.a1-&outds.a",_n_,
";run;");
78 proc sort data=&outds._logas(where=(assoc=
'Libraries')) out=&outds._temp;
83 length library_list $32767;
85 if first.login_id then library_list=name;
86 else library_list=catx(
' !! ',library_list,name);
89 create table &outds._dom as
90 select login_id,name as domain
93 create unique index login_id on &outds._dom(login_id);
95 create table &outds._logins as
99 from &outds._logat (drop=ishidden lockedby usageversion publictype) a
100 left join &outds._temp b
101 on a.login_id=b.login_id
102 left join &outds._dom c
103 on a.login_id=c.login_id;
104 drop table &outds._temp;
105 drop table &outds._logat;
106 drop table &outds._logas;
111 input; putlog _infile_;
114 filename &fileref clear;