admin 发表于 2017-11-20 13:49:47

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

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


Teamcenter c++ 方式:


#include <iostream>
#include <sa/group.h>
#include <sa/user.h>
#include <tc/LoggedInUser.hxx>


using namespace Teamcenter;
using namespace Core;
using namespace std;


static void reportCurrentLoginInfomation()
{
    int ifail = ITK_ok;
    LoggedInUser* loggedInUser = LoggedInUser::getInstance();
   
    tag_t currentUserTag = loggedInUser->getCurrentUserTag();
    cout << "    currentUserTag: " << currentUserTag << endl;
   
    char *personName = NULL;
    IFERR_ABORT(SA_ask_user_person_name2(currentUserTag, &personName));
    cout << "    personName: " << personName << endl;
    if(personName) MEM_free(personName);
   
    const char* userID = loggedInUser->getCurrentUserID();
    cout << "    userID: " << userID << endl;


    tag_t currentGroupTag = loggedInUser->getCurrentGroupTag();
   
    char *groupName = NULL;
    IFERR_ABORT(SA_ask_group_name2(currentGroupTag, &groupName));
    cout << "    groupName: " << groupName << endl;
    if(groupName) MEM_free(groupName);


    tag_t currentRoleTag = loggedInUser->getCurrentRoleTag();
    char *roleName = NULL;
    IFERR_REPORT(SA_ask_role_name2(currentRoleTag, &roleName));
    cout << "    roleName: " << roleName << endl;
    if(roleName) MEM_free(roleName);
   
    logical isDba = loggedInUser->isUserSystemAdministrator();
    if(isDba == TRUE) cout << "    User is dba member "<< endl;
    if(isDba == FALSE) cout << "    User is not dba member "<< endl;      
}





Teamcenter ITK 方式:


/*HEAD REPORT_CURRENT_LOGIN_INFOMATION CCC ITK */
static void report_current_login_infomation()
{
    tag_t
      current_member = NULLTAG,
      current_user = NULLTAG,
      current_group = NULLTAG,
      current_role = NULLTAG;
    char
      person_name = "",
      user_id = "",
      group_name = "",
      role_name = "";


    IFERR_ABORT(SA_ask_current_groupmember(&current_member));
    IFERR_REPORT(SA_ask_groupmember_user(current_member, &current_user));
   IFERR_REPORT(SA_ask_groupmember_group(current_member, &current_group));
    IFERR_REPORT(SA_ask_groupmember_role(current_member, &current_role));


    IFERR_REPORT(SA_ask_user_person_name(current_user, person_name));
    IFERR_REPORT(SA_ask_user_identifier(current_user, user_id));
    IFERR_REPORT(SA_ask_group_name(current_group, group_name));
    IFERR_REPORT(SA_ask_role_name(current_role, role_name));


    ECHO("\n      Person: %s\n", person_name);
    ECHO("       User ID: %s\n", user_id);
    ECHO("         Group: %s\n", group_name);
    ECHO("          Role: %s\n", role_name);
}

页: [1]
查看完整版本: Teamcenter二次开发源码分享: 报告用户登录信息