查看: 3316|回复: 0

Teamcenter二次开发源码分享: 报告用户登录信息

[复制链接]

4

主题

4

回帖

52

积分

管理员

积分
52
发表于 2017-11-20 13:49:47 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

×
Teamcenter二次开发源码分享: 报告用户登录信息
6 ~* l5 [) H7 B, q- Y2 e# }  w# z5 z' v( [$ T; G

# t$ P0 j# u* I- B& P, |Teamcenter c++ 方式:/ d* a1 [3 w/ }' m  [6 t
- c) O% F# t% t# H. M' T
' H6 W4 j& n( s$ Y% @0 B( h; L
#include <iostream>
9 c4 W  C. ~& r. m' G#include <sa/group.h>8 O6 u' ?8 p7 u8 ~! r9 q! Z/ [
#include <sa/user.h>. Z3 k! S* o0 s1 t
#include <TC/LoggedInUser.hxx>9 v( k% G) y" E3 J
' r1 b  [* ]0 m! D4 v% X1 |
& j0 W3 {& m  U
using namespace Teamcenter;
& @, o% w! U9 b) P$ p3 Pusing namespace Core;* D: m' Y  I( D5 e0 D+ A9 Q
using namespace std;
3 z( Q& y, _$ X) h3 ^; Q
9 s" U+ p  [+ _) C0 j( ]! B0 ]* L

% v4 g$ ^# @3 {  }static void reportCurrentLoginInfomation()
/ K, L6 L" y+ d; O. c. Q3 H! [. @{
8 @0 Q1 m$ t- k8 L1 S    int ifail = ITK_ok;
! x" a9 X1 N+ [. X  B( _( m/ r% e    LoggedInUser* loggedInUser = LoggedInUser::getInstance();& b7 \, C1 }7 S7 I, E3 G! N
   
* X& l: ~4 t1 t2 Y    tag_t currentUserTag = loggedInUser->getCurrentUserTag();- A% b- s3 i1 R# t7 W
    cout << "    currentUserTag: " << currentUserTag << endl;
8 ^9 v  D5 y8 b$ y/ F5 o3 W* R   
* l! O$ h6 r$ |" x    char *personName = NULL;, f- T& E0 }* ^$ y* G0 Z" p
    IFERR_ABORT(SA_ask_user_person_name2(currentUserTag, &personName));7 i/ r( X, j7 s2 Q- f) U
    cout << "    personName: " << personName << endl;: P2 Z& m3 k% Y2 {" |2 |6 O+ I+ c
    if(personName) MEM_free(personName);
* d% A2 |/ L2 d9 ^' p   
8 y! Y0 G  p9 F. u9 g. Z: Y: x    const char* userID = loggedInUser->getCurrentUserID();* @' X1 S# }) y4 V2 n7 f
    cout << "    userID: " << userID << endl;
1 y8 a1 O7 G1 V
$ e3 f! }1 S1 Q! Q. x; y, [3 R
; x& Y3 V6 Q; `
    tag_t currentGroupTag = loggedInUser->getCurrentGroupTag();+ L8 c7 s7 e% \0 Y9 L
   
9 M9 I' f/ `) N$ H    char *groupName = NULL;
  \  O" A8 d/ P# E& L    IFERR_ABORT(SA_ask_group_name2(currentGroupTag, &groupName));4 ^) p# ?0 ?% z: Y# t' @9 q
    cout << "    groupName: " << groupName << endl;$ L$ W) E4 `1 u' ~+ [2 O
    if(groupName) MEM_free(groupName);" O: ?% J6 k' ]

3 u8 q% `( k' B$ }& x: p  w
3 M1 {. i" L- z( k: K
    tag_t currentRoleTag = loggedInUser->getCurrentRoleTag();
  R7 i$ q) b! A4 `    char *roleName = NULL;- j9 c2 Q1 }. b0 B7 }2 T) e
    IFERR_REPORT(SA_ask_role_name2(currentRoleTag, &roleName));
6 s5 Q, N$ m! ]7 K$ v8 P1 C    cout << "    roleName: " << roleName << endl;
5 t& ~; i, c7 l/ \    if(roleName) MEM_free(roleName);  m" Y  b' R8 U& H5 o& D# `
    ) [; V% S; Y! o/ {' }/ M: k
    logical isDba = loggedInUser->isUserSystemAdministrator();
5 S1 A( I4 z  }* k2 s) J8 Q" O    if(isDba == TRUE) cout << "    User is dba member "<< endl;' ?& L; d: g2 B' @  A. @: P* e/ n
    if(isDba == FALSE) cout << "    User is not dba member "<< endl;      
% B" D  }$ R8 p9 l0 y0 v& F! G% w5 F$ G}
! M/ C5 S! q$ h' p
( K1 A0 ]. o# A0 X: ]
' ?" D: p/ X& Z3 ^- j, Z2 w/ S' w

+ ]2 w4 I1 M( T- ^& t$ |' O- J
( x8 t) w" o+ E: {) V3 U: f" Q

! b- P; W/ |" M, T% l9 sTeamcenter ITK 方式:
/ w% z# t& J/ V% I. ^1 L9 M5 U# S* S/ z* g2 c" }1 f' s

$ _' n6 g9 W$ \, U4 J/*HEAD REPORT_CURRENT_LOGIN_INFOMATION CCC ITK */5 H  a* }" ~3 i# ?3 }! k% ?5 O
static void report_current_login_infomation()
* z2 P# c' z- o: K( A  r! y& |{& F+ B  c3 g, E/ a+ @8 p" a
    tag_t
! `& k, R2 W7 [! a8 ?  j        current_member = NULLTAG,
0 j) l7 [- K$ E        current_user = NULLTAG,
, h, H$ U6 W' \6 d        current_group = NULLTAG,  " u7 ^4 o6 ~: N
        current_role = NULLTAG;
! h5 x6 l- u1 {    char 3 H' g0 B" e$ `! Y" T( c
        person_name[SA_person_name_size_c+1] = "",
4 R  z- m3 A) I# y+ g3 r1 f        user_id[SA_user_size_c+1] = "",  
" z) `1 r8 k  L4 N: T+ k4 q        group_name[SA_name_size_c+1] = "",
9 g% J) Z9 s  f4 j" A. T9 R, m' M( o        role_name[SA_name_size_c+1] = "";  3 ~5 O% ^9 a2 z+ S" c
" ?! m. X' C: I1 r# H7 r
& t; l, S2 D" U4 V. b3 D" Y
    IFERR_ABORT(SA_ask_current_groupmember(&current_member));" W0 _. X  V+ W3 L$ c
    IFERR_REPORT(SA_ask_groupmember_user(current_member, &current_user));5 n4 f9 F. y9 j. R
   IFERR_REPORT(SA_ask_groupmember_group(current_member, &current_group));: k# ^1 ~$ Q, S; ]# l  k( p/ J. K
    IFERR_REPORT(SA_ask_groupmember_role(current_member, &current_role));
& \. P  X3 s# t. p: p3 H/ X9 u- x
; g1 M1 _, g$ M8 w8 j) `- A' U2 ~

$ c6 K+ {0 A; x2 y2 o9 P* i! [$ P# F    IFERR_REPORT(SA_ask_user_person_name(current_user, person_name));  D* k0 G2 I: M: f( A0 e8 U( ~' L
    IFERR_REPORT(SA_ask_user_identifier(current_user, user_id));
% ?( P. ^' r# }, p2 v& q    IFERR_REPORT(SA_ask_group_name(current_group, group_name));
0 P; d/ g0 K2 V1 e, S    IFERR_REPORT(SA_ask_role_name(current_role, role_name));
6 m1 E! J" M, o6 y1 `" ^" O% `' {! u! z" C8 u7 Y: @: v; f

$ R$ L# R6 Z# ~4 W    ECHO("\n        Person: %s\n", person_name);
" o! ]/ q# [: _2 S5 Q8 c    ECHO("       User ID: %s\n", user_id);" z; Y( o& F8 R" n1 M" I
    ECHO("         Group: %s\n", group_name);/ M' [2 u2 W6 W% l% M2 k
    ECHO("          Role: %s\n", role_name);
8 ^2 {$ j( C: s0 c+ s}
7 p2 R* h) y$ a5 Q/ i& o" v& O8 E7 l1 j* d9 L
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部