RSA-Toolkit
view release on metacpan or search on metacpan
Sd_ListGroups("", group, MAX_RESULT_MSG_SIZE);
if (strcmp(group,"Done") == 0) break;
av_store(av_group, i++, newSVpv(group, 0));
} while (1);
return av_group;
}
void
_Sd_ListUserByGroup(char *group, char *user)
{
Sd_ListUserByGroup(group, "-s", "|", "", user, MAX_RESULT_MSG_SIZE);
}
SV *
_fetch_user_raw(char *login)
{
char pre_login[MAX_RESULT_MSG_SIZE+1] = {0};
char token[MAX_RESULT_MSG_SIZE] = {0};
HV* stash;
SV* object;
HV* user_hash;
SV* sv_inf;
AV* av_inf_ext;
AV* av_group;
/* The login has at least one token */
_Sd_GetSerialByLogin(login, token);
if (strcmp(token,"Done") == 0) return object;
/* Get further information */
_prefixed_login(login, pre_login);
sv_inf = _Sd_ListUserInfoExt(pre_login);
av_inf_ext = _Sd_ListExtensionsForUser(pre_login);
av_group = _Sd_ListGroupMembership(pre_login);
user_hash = newHV();
hv_store(user_hash, "login", 5, newSVpv(login,0),0);
hv_store(user_hash, "token", 5, newSVpv(token,0),0);
hv_store(user_hash, "inf", 3, sv_inf, 0);
hv_store(user_hash, "inf_ext", 7, newRV_noinc((SV*)av_inf_ext),0);
hv_store(user_hash, "group", 5, newRV_noinc((SV*)av_group),0);
stash = gv_stashpv("RSA::Toolkit::User", GV_ADDWARN);
object = newRV_inc((SV*)user_hash);
sv_bless(object, stash);
return object;
}
MODULE = RSA::Toolkit PACKAGE = RSA::Toolkit
void
connect(class)
PREINIT:
char msgBuf[MAX_RESULT_MSG_SIZE];
PPCODE:
Sd_ApiInit("","","1", msgBuf, MAX_RESULT_MSG_SIZE);
SV *
_fetch_users(class, field, type, value)
int field
int type
char *value
PREINIT:
char login[MAX_RESULT_MSG_SIZE] = {0};
char pre_login[MAX_RESULT_MSG_SIZE+1] = {0};
char token[MAX_RESULT_MSG_SIZE] = {0};
HV* stash;
SV* object;
HV* user_hash;
SV* sv_inf;
AV* av_inf_ext;
AV* av_group;
CODE:
do
{
/* Get login list */
_Sd_ListUsersByField(login, field,type,value);
if (strcmp(login,"Done") == 0) exit(0);
printf("%s\n", login);
/* The login has at least one token */
_Sd_GetSerialByLogin(login, token);
if (strcmp(token,"Done") == 0) continue;
/* Get further information */
_prefixed_login(login, pre_login);
sv_inf = _Sd_ListUserInfoExt(pre_login);
av_inf_ext = _Sd_ListExtensionsForUser(pre_login);
av_group = _Sd_ListGroupMembership(pre_login);
if (strcmp(token,"Done") != 0) break;
} while (1);
user_hash = newHV();
hv_store(user_hash, "login", 5, newSVpv(login,0),0);
hv_store(user_hash, "token", 5, newSVpv(token,0),0);
hv_store(user_hash, "inf", 3, sv_inf, 0);
hv_store(user_hash, "inf_ext", 7, newRV_noinc((SV*)av_inf_ext),0);
hv_store(user_hash, "group", 5, newRV_noinc((SV*)av_group),0);
stash = gv_stashpv("RSA::Toolkit::User", GV_ADDWARN);
object = newRV_inc((SV*)user_hash);
sv_bless(object, stash);
RETVAL = object;
OUTPUT:
RETVAL
SV *
_fetch_groups(class)
CODE:
RETVAL = newRV_noinc((SV*)_Sd_ListGroups());
OUTPUT:
( run in 2.072 seconds using v1.01-cache-2.11-cpan-5511b514fd6 )