diff options
| author | David Sommerseth <dazo@users.sourceforge.net> | 2009-09-21 00:29:51 +0200 |
|---|---|---|
| committer | David Sommerseth <dazo@users.sourceforge.net> | 2009-09-21 00:29:51 +0200 |
| commit | 854f3bb476a3cb7cf370c0f7690d9a376d219609 (patch) | |
| tree | 2d5a213e317f887d9503fe9d75077673b1b6242d | |
| parent | fb2e02fdcbc30ecf05601c127eb31239b3419f85 (diff) | |
| download | eurephia-854f3bb476a3cb7cf370c0f7690d9a376d219609.tar.gz eurephia-854f3bb476a3cb7cf370c0f7690d9a376d219609.tar.xz eurephia-854f3bb476a3cb7cf370c0f7690d9a376d219609.zip | |
Modified eurephiadm and eurephia_init programs to use the new eDBadminAccessLevel() function
| -rw-r--r-- | eurephiadm/commands/adminaccess.c | 45 | ||||
| -rw-r--r-- | utils/eurephia_init.c | 4 |
2 files changed, 37 insertions, 12 deletions
diff --git a/eurephiadm/commands/adminaccess.c b/eurephiadm/commands/adminaccess.c index 05a1ee3..d8082a7 100644 --- a/eurephiadm/commands/adminaccess.c +++ b/eurephiadm/commands/adminaccess.c @@ -143,7 +143,7 @@ int help_AdminAccess2(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *c int list_adminaccess(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int argc, char **argv) { xmlDoc *list_xml = NULL, *srch_xml = NULL; xmlNode *srch_n = NULL, *tmp_n = NULL; - int i = 0; + int i = 0, rc = -1; char *uid = NULL, *username = NULL, *intf = NULL, *acl = NULL; e_options listargs[] = { @@ -185,6 +185,7 @@ int list_adminaccess(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cf // Build up search XML eurephiaXML_CreateDoc(ctx, 1, "admin_access", &srch_xml, &srch_n); assert( (srch_xml != NULL) && (srch_n != NULL) ); + xmlNewProp(srch_n, (xmlChar *) "mode", (xmlChar *) "list"); tmp_n = xmlNewChild(srch_n, NULL, (xmlChar *) "fieldMapping", NULL); xmlNewProp(tmp_n, (xmlChar *) "table", (xmlChar *) "eurephia_adminaccess"); @@ -202,16 +203,26 @@ int list_adminaccess(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cf xmlNewChild(tmp_n, NULL, (xmlChar *) "accesslevel", (xmlChar *) acl); } - list_xml = eDBadminGetAdminAccess(ctx, srch_xml); + list_xml = eDBadminAccessLevel(ctx, srch_xml); xmlFreeDoc(srch_xml); if( list_xml == NULL ) { fprintf(stderr, "%s: Error retrieving user access list\n", MODULE); return 1; } - xslt_print_xmldoc(stdout, cfg, list_xml, "adminaccess.xsl", NULL); + tmp_n = eurephiaXML_getRoot(ctx, list_xml, NULL, 1); + if( tmp_n == NULL ) { + fprintf(stderr, "%s: Error retrieving user access list results\n", MODULE); + rc = 1; + } else if( xmlStrcmp(tmp_n->name, (xmlChar *) "Error") != 0 ) { + xslt_print_xmldoc(stdout, cfg, list_xml, "adminaccess.xsl", NULL); + rc = 0; + } else { + fprintf(stderr, "%s: %s\n", MODULE, xmlExtractContent(tmp_n)); + rc = 1; + } xmlFreeDoc(list_xml); - return 0; + return rc; } @@ -227,7 +238,7 @@ int list_adminaccess(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cf * @return returns 0 on success, otherwise 1. */ int grant_revoke(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int argc, char **argv) { - xmlDoc *upd_xml = NULL; + xmlDoc *upd_xml = NULL, *res_xml = NULL; xmlNode *root_n = NULL, *fmap_n = NULL; char actmode = '-', *actmode_str = NULL; int i = 0, rc = 0; @@ -243,7 +254,7 @@ int grant_revoke(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, i assert( (ctx != NULL) && (ctx->dbc != NULL) && (ctx->dbc->config != NULL)); - eurephiaXML_CreateDoc(ctx, 1, "edit_admin_access", &upd_xml, &root_n); + eurephiaXML_CreateDoc(ctx, 1, "admin_access", &upd_xml, &root_n); fmap_n = xmlNewChild(root_n, NULL, (xmlChar *) "fieldMapping", NULL); xmlNewProp(fmap_n, (xmlChar *) "table", (xmlChar *) "eurephia_adminaccess"); @@ -307,16 +318,30 @@ int grant_revoke(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, i } if( f_intf == 0 ) { + // Default interface value, if not set. xmlNewChild(fmap_n, NULL, (xmlChar *) "interface", (xmlChar *) "C"); } - if( eDBadminEditAdminAccess(ctx, upd_xml) < 1 ) { + res_xml = eDBadminAccessLevel(ctx, upd_xml); + if( res_xml == NULL ) { fprintf(stderr, "%s: Failed to update the access level\n", MODULE); rc = 1; } else { - printf("%s: Access level %s\n", MODULE, actmode_str); - printf("\n"); - rc = 0; + root_n = eurephiaXML_getRoot(ctx, res_xml, NULL, 1); + if( root_n == NULL ) { + fprintf(stderr, "%s: Failed to update the access level. No results returned\n", + MODULE); + rc = 1; + } else { + if( xmlStrcmp(root_n->name, (xmlChar *) "Error") == 0 ) { + fprintf(stderr, "%s: %s\n", MODULE, xmlExtractContent(root_n)); + rc = 1; + } else { + fprintf(stdout, "%s: %s\n", MODULE, xmlExtractContent(root_n)); + rc = 0; + } + } + xmlFreeDoc(res_xml); } xmlFreeDoc(upd_xml); return rc; diff --git a/utils/eurephia_init.c b/utils/eurephia_init.c index 011581d..b0ba003 100644 --- a/utils/eurephia_init.c +++ b/utils/eurephia_init.c @@ -257,7 +257,7 @@ int setup_admin_account(eurephiaCTX *ctx) { printf("Granting access to user account:"); - eurephiaXML_CreateDoc(ctx, 1, "edit_admin_access", &xmldoc, &node); + eurephiaXML_CreateDoc(ctx, 1, "admin_access", &xmldoc, &node); xmlNewProp(node, (xmlChar *) "mode", (xmlChar *) "grant"); node = xmlNewChild(node, NULL, (xmlChar *) "fieldMapping", NULL); @@ -275,7 +275,7 @@ int setup_admin_account(eurephiaCTX *ctx) { xmlReplaceNode(node2, new_n); node2 = new_n; printf(" %s", grants[i]); - if( !eDBadminEditAdminAccess(ctx, xmldoc) ) { + if( !eDBadminAccessLevel(ctx, xmldoc) ) { fprintf(stderr, "\n** ERROR: Could not grant %s access. Initialisation failed\n", grants[i]); xmlFreeDoc(xmldoc); |
