void UserManagement::execute(USHORT id) { #if (defined BOOT_BUILD || defined EMBEDDED) status_exception::raise(Arg::Gds(isc_wish_list)); #else if (!transaction || !commands[id]) { // Already executed return; } if (id >= commands.getCount()) { status_exception::raise(Arg::Gds(isc_random) << "Wrong job id passed to UserManagement::execute()"); } ISC_STATUS_ARRAY status; int errcode = (!commands[id]->user_name_entered) ? GsecMsg18 : SECURITY_exec_line(status, database, transaction, commands[id], NULL, NULL); switch (errcode) { case 0: // nothing break; case GsecMsg22: { Arg::StatusVector tmp; tmp << Arg::Gds(ENCODE_ISC_MSG(errcode, GSEC_MSG_FAC)) << Arg::Str(commands[id]->user_name); tmp.append(Arg::StatusVector(&status[0])); tmp.raise(); } default: { Arg::StatusVector tmp; tmp << Arg::Gds(ENCODE_ISC_MSG(errcode, GSEC_MSG_FAC)); tmp.append(Arg::StatusVector(&status[0])); tmp.raise(); } } delete commands[id]; commands[id] = NULL; #endif }
void UserManagement::checkSecurityResult(int errcode, IStatus* status, const char* userName, int operation) { if (!errcode) { return; } errcode = Auth::setGsecCode(errcode, operation); Arg::StatusVector tmp; tmp << Arg::Gds(ENCODE_ISC_MSG(errcode, GSEC_MSG_FAC)); if (errcode == GsecMsg22) { tmp << userName; } tmp.append(Arg::StatusVector(status)); tmp.raise(); }