-struct query Queries2[] = {
- {
- /* Q_GALO - GET_ALL_LOGINS */
- "get_all_logins",
- "galo",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle FROM users u",
- galo_fields,
- 6,
- "u.users_id != 0",
- 0,
- &VDsort0,
- },
-
- {
- /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
- "get_all_active_logins",
- "gaal",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle FROM users u",
- galo_fields,
- 6,
- "u.status = 1",
- 0,
- &VDsort0,
- },
-
- {
- /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
- "get_user_account_by_login",
- "gual",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
- gual_fields,
- 15,
- "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comment = str.string_id",
- 1,
- &gubl_validate,
- },
-
- {
- /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
- "get_user_account_by_uid",
- "guau",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
- guau_fields,
- 15,
- "u.uid = %s AND u.users_id != 0 AND u.comment = str.string_id",
- 1,
- &gubu_validate,
- },
-
- {
- /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
- "get_user_account_by_name",
- "guan",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
- guan_fields,
- 15,
- "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comment = str.string_id",
- 2,
- &guan_validate,
- },
-
- {
- /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
- "get_user_account_by_class",
- "guac",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
- guac_fields,
- 15,
- "u.type = uppercase('%s') AND u.users_id != 0 AND u.comment = str.string_id",
- 1,
- &VDsortf,
- },
-
- {
- /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
- "get_user_account_by_id",
- "guai",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(str.string), CHAR(u.signature), CHAR(u.secure), CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u, strings str",
- guam_fields,
- 15,
- "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comment = str.string_id",
- 1,
- &VDwildsortf,
- },
-
- {
- /* Q_GUBL - GET_USER_BY_LOGIN */
- "get_user_by_login",
- "gubl",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
- gubl_fields,
- 12,
- "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
- 1,
- &gubl_validate,
- },
-
- {
- /* Q_GUBU - GET_USER_BY_UID */
- "get_user_by_uid",
- "gubu",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
- gubu_fields,
- 12,
- "u.uid = %s AND u.users_id != 0",
- 1,
- &gubu_validate,
- },
-
- {
- /* Q_GUBN - GET_USER_BY_NAME */
- "get_user_by_name",
- "gubn",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
- gubn_fields,
- 12,
- "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
- 2,
- &gubn_validate,
- },
-
- {
- /* Q_GUBC - GET_USER_BY_CLASS */
- "get_user_by_class",
- "gubc",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
- gubc_fields,
- 12,
- "u.type = uppercase('%s') AND u.users_id != 0",
- 1,
- &VDsortf,
- },
-
- {
- /* Q_GUBM - GET_USER_BY_MITID */
- "get_user_by_mitid",
- "gubm",
- RETRIEVE,
- "u",
- USERS,
- "CHAR(u.login), CHAR(u.uid), u.shell, CHAR(u.last), CHAR(u.first), u.middle, CHAR(u.status), CHAR(u.clearid), u.type, CHAR(u.modtime), CHAR(u.modby), u.modwith FROM users u",
- gubm_fields,
- 12,
- "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
- 1,
- &VDwildsortf,
- },
-
- {
- /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
- "add_user_account",
+static struct validate glsn_validate =
+{
+ VOlist0,
+ 1,
+ NULL,
+ NULL,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static char *ausl_fields[] = {
+ "login", "sid",
+};
+
+static struct validate ausl_validate =
+{
+ VOuser0,
+ 1,
+ "sid",
+ "users_id = %d AND sid = '%s'",
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static char *alsn_fields[] = {
+ "name", "sid",
+};
+
+static struct validate alsn_validate =
+{
+ VOlist0,
+ 1,
+ "sid",
+ "list_id = %d AND sid = '%s'",
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static char *gdds_fields[] = {
+ "sid",
+};
+
+static char *gcon_fields[] = {
+ "name",
+ "name", "description", "location", "contact",
+ "ace_type", "ace_name", "memace_type", "memace_name", "modtime", "modby", "modwith",
+};
+
+static struct validate gcon_validate = {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ followup_gcon,
+};
+
+static char *acon_fields[] = {
+ "name", "description", "location", "contact",
+ "ace_type", "ace_name", "memace_type", "memace_name",
+};
+
+static struct valobj acon_valobj[] = {
+ {V_CHAR, 0, CONTAINERS_TABLE, "name"},
+ {V_LEN, 1, CONTAINERS_TABLE, "description"},
+ {V_CHAR, 2, CONTAINERS_TABLE, "location"},
+ {V_CHAR, 3, CONTAINERS_TABLE, "contact"},
+ {V_TYPE, 4, 0, "ace_type", 0, MR_ACE},
+ {V_TYPEDATA, 5, 0, 0, 0, MR_ACE},
+ {V_TYPE, 6, 0, "ace_type", 0, MR_ACE},
+ {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
+};
+
+static struct validate acon_validate =
+{
+ acon_valobj,
+ 8,
+ "name",
+ "name = '%s'",
+ 1,
+ "cnt_id",
+ 0,
+ prefetch_value,
+ set_modtime,
+};
+
+static char *ucon_fields[] = {
+ "name",
+ "newname", "description", "location", "contact",
+ "ace_type", "ace_name", "memace_type", "memace_name",
+};
+
+static struct valobj ucon_valobj[] = {
+ {V_ID, 0, CONTAINERS_TABLE, "name", "cnt_id", MR_CONTAINER},
+ {V_RENAME, 1, CONTAINERS_TABLE, "name", "cnt_id", MR_NOT_UNIQUE},
+ {V_LEN, 2, CONTAINERS_TABLE, "description"},
+ {V_CHAR, 3, CONTAINERS_TABLE, "location"},
+ {V_CHAR, 4, CONTAINERS_TABLE, "contact"},
+ {V_TYPE, 5, 0, "ace_type", 0, MR_ACE},
+ {V_TYPEDATA, 6, 0, 0, 0, MR_ACE},
+ {V_TYPE, 7, 0, "ace_type", 0, MR_ACE},
+ {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
+};
+
+static struct validate ucon_validate =
+{
+ ucon_valobj,
+ 9,
+ 0,
+ 0,
+ 0,
+ 0,
+ access_container,
+ 0,
+ update_container,
+};
+
+static char *dcon_fields[] = {
+ "name",
+};
+
+static struct validate dcon_validate =
+{
+ VOcon0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ setup_dcon,
+ 0,
+};
+
+static char *amcn_fields[] = {
+ "machine", "container",
+};
+
+static struct valobj amcn_valobj[] = /* ADD_MACHINE_TO_CONTAINER */
+{ /* DELETE_MACHINE_FROM_CONTAINER */
+ {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_ID, 1, CONTAINERS_TABLE, "name", "cnt_id", MR_CONTAINER},
+};
+
+static struct validate amcn_validate = /* for amtn and dmfn */
+{
+ amcn_valobj,
+ 2,
+ "mach_id",
+ "mach_id = %d",
+ 1,
+ 0,
+ access_container,
+ 0,
+ set_mach_modtime_by_id,
+};
+
+static struct validate dmcn_validate = /* for amtn and dmfn */
+{
+ amcn_valobj,
+ 2,
+ "mach_id",
+ "mach_id = %d and cnt_id = %d",
+ 2,
+ 0,
+ access_container,
+ 0,
+ set_mach_modtime_by_id,
+};
+
+static char *gmnm_fields[] = {
+ "machine",
+ "machine", "container",
+};
+
+static char *gmoc_fields[] = {
+ "container",
+ "isrecursive",
+ "machine",
+ "container",
+};
+
+static struct validate gmoc_validate =
+{
+ VOcon0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ get_machines_of_container,
+};
+
+static char *gsoc_fields[] = {
+ "container",
+ "isrecursive",
+ "subcontainer",
+};
+
+static struct validate gsoc_validate =
+{
+ VOcon0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ get_subcontainers_of_container,
+};
+
+static char *gtlc_fields[] = {
+ "name",
+};
+
+
+/* Generalized Query Definitions */
+
+/* Multiple versions of the same query MUST be listed in ascending
+ * order.
+ */
+
+/* Note: For any query which uses prefetch_value, the vcnt should be
+ * one less than the number of %-format specifiers in the tlist.
+ */
+
+struct query Queries[] = {
+ {
+ /* Q_GALO - GET_ALL_LOGINS, v2 */
+ "get_all_logins",
+ "galo",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
+ galo2_fields,
+ 6,
+ "u.users_id != 0",
+ 0,
+ "u.login",
+ 0,
+ },
+
+ {
+ /* Q_GALO - GET_ALL_LOGINS, v3 */
+ "get_all_logins",
+ "galo",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
+ galo_fields,
+ 7,
+ "u.users_id != 0",
+ 0,
+ "u.login",
+ 0,
+ },
+
+ {
+ /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v2 */
+ "get_all_active_logins",
+ "gaal",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
+ galo2_fields,
+ 6,
+ "u.status = 1",
+ 0,
+ "u.login",
+ 0,
+ },
+
+ {
+ /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v3 */
+ "get_all_active_logins",
+ "gaal",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
+ galo_fields,
+ 7,
+ "u.status = 1",
+ 0,
+ "u.login",
+ 0,
+ },
+
+ {
+ /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v2 */
+ "get_user_account_by_login",
+ "gual",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ gual2_fields,
+ 15,
+ "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
+ 1,
+ "u.login",
+ &gubl_validate,
+ },
+
+ {
+ /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v3 */
+ "get_user_account_by_login",
+ "gual",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ gual_fields,
+ 16,
+ "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
+ 1,
+ "u.login",
+ &gubl_validate,
+ },
+
+ {
+ /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v2 */
+ "get_user_account_by_uid",
+ "guau",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ guau2_fields,
+ 15,
+ "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
+ 1,
+ "u.login",
+ &gubu_validate,
+ },
+
+ {
+ /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v3 */
+ "get_user_account_by_uid",
+ "guau",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ guau_fields,
+ 16,
+ "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
+ 1,
+ "u.login",
+ &gubu_validate,
+ },
+
+ {
+ /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v2 */
+ "get_user_account_by_name",
+ "guan",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ guan2_fields,
+ 15,
+ "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
+ 2,
+ "u.login",
+ &guan_validate,
+ },
+
+ {
+ /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v3 */
+ "get_user_account_by_name",
+ "guan",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ guan_fields,
+ 16,
+ "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
+ 2,
+ "u.login",
+ &guan_validate,
+ },
+
+ {
+ /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v2 */
+ "get_user_account_by_class",
+ "guac",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ guac2_fields,
+ 15,
+ "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
+ 1,
+ "u.login",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v3 */
+ "get_user_account_by_class",
+ "guac",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ guac_fields,
+ 16,
+ "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
+ 1,
+ "u.login",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v2 */
+ "get_user_account_by_id",
+ "guai",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ guam2_fields,
+ 15,
+ "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
+ 1,
+ "u.login",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v3 */
+ "get_user_account_by_id",
+ "guai",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
+ guam_fields,
+ 16,
+ "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
+ 1,
+ "u.login",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_GUBL - GET_USER_BY_LOGIN, v2 */
+ "get_user_by_login",
+ "gubl",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubl2_fields,
+ 12,
+ "u.login LIKE '%s' AND u.users_id != 0",
+ 1,
+ "u.login",
+ &gubl_validate,
+ },
+
+ {
+ /* Q_GUBL - GET_USER_BY_LOGIN, v3 */
+ "get_user_by_login",
+ "gubl",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubl_fields,
+ 13,
+ "u.login LIKE '%s' AND u.users_id != 0",
+ 1,
+ "u.login",
+ &gubl_validate,
+ },
+
+ {
+ /* Q_GUBU - GET_USER_BY_UID, v2 */
+ "get_user_by_uid",
+ "gubu",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubu2_fields,
+ 12,
+ "u.unix_uid = %s AND u.users_id != 0",
+ 1,
+ "u.login",
+ &gubu_validate,
+ },
+
+ {
+ /* Q_GUBU - GET_USER_BY_UID, v3 */
+ "get_user_by_uid",
+ "gubu",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubu_fields,
+ 13,
+ "u.unix_uid = %s AND u.users_id != 0",
+ 1,
+ "u.login",
+ &gubu_validate,
+ },
+
+ {
+ /* Q_GUBN - GET_USER_BY_NAME, v2 */
+ "get_user_by_name",
+ "gubn",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubn2_fields,
+ 12,
+ "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
+ 2,
+ "u.login",
+ &gubn_validate,
+ },
+
+ {
+ /* Q_GUBN - GET_USER_BY_NAME, v3 */
+ "get_user_by_name",
+ "gubn",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubn_fields,
+ 13,
+ "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
+ 2,
+ "u.login",
+ &gubn_validate,
+ },
+
+ {
+ /* Q_GUBC - GET_USER_BY_CLASS, v2 */
+ "get_user_by_class",
+ "gubc",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubc2_fields,
+ 12,
+ "u.type = UPPER('%s') AND u.users_id != 0",
+ 1,
+ "u.login",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_GUBC - GET_USER_BY_CLASS, v3 */
+ "get_user_by_class",
+ "gubc",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubc_fields,
+ 13,
+ "u.type = UPPER('%s') AND u.users_id != 0",
+ 1,
+ "u.login",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_GUBM - GET_USER_BY_MITID, v2 */
+ "get_user_by_mitid",
+ "gubm",
+ 2,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubm2_fields,
+ 12,
+ "u.clearid LIKE '%s' AND u.users_id != 0",
+ 1,
+ "u.login",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_GUBM - GET_USER_BY_MITID, v3 */
+ "get_user_by_mitid",
+ "gubm",
+ 3,
+ RETRIEVE,
+ "u",
+ USERS_TABLE,
+ "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
+ gubm_fields,
+ 13,
+ "u.clearid LIKE '%s' AND u.users_id != 0",
+ 1,
+ "u.login",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_AUAC - ADD_USER_ACCOUNT, v2 */ /* uses prefetch_value() for users_id */
+ "add_user_account",
+ "auac",
+ 2,
+ APPEND,
+ "u",
+ USERS_TABLE,
+ /* We set signature to "NVL(CHR(0), '%s')", which is to say, "CHR(0)",
+ * but using up one argv element.
+ */
+ "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', %d, NVL(CHR(0), '%s'), %s, %s)",
+ auac2_fields,
+ 12,
+ NULL,
+ 0,
+ NULL,
+ &auac2_validate,
+ },
+
+ {
+ /* Q_AUAC - ADD_USER_ACCOUNT, v3 */ /* uses prefetch_value() for users_id */
+ "add_user_account",