diff options
| author | David Sommerseth <dazo@users.sourceforge.net> | 2009-04-03 00:21:39 +0200 |
|---|---|---|
| committer | David Sommerseth <dazo@users.sourceforge.net> | 2009-04-03 00:21:39 +0200 |
| commit | 597bc3e89db0ec3a7f7f2a2e2c3acc2bbafa8b29 (patch) | |
| tree | f6f0dee07d5d74b28dafdc8b3f8084f7c129af99 | |
| parent | 88e67c4360aab6ab79412b79bca7bdf2f8d1264d (diff) | |
| download | eurephia-597bc3e89db0ec3a7f7f2a2e2c3acc2bbafa8b29.tar.gz eurephia-597bc3e89db0ec3a7f7f2a2e2c3acc2bbafa8b29.tar.xz eurephia-597bc3e89db0ec3a7f7f2a2e2c3acc2bbafa8b29.zip | |
Added support for setting firewall profiles in eurephiadm/usercerts
| -rw-r--r-- | eurephiadm/commands/usercerts.c | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/eurephiadm/commands/usercerts.c b/eurephiadm/commands/usercerts.c index 3c070ab..36d09ed 100644 --- a/eurephiadm/commands/usercerts.c +++ b/eurephiadm/commands/usercerts.c @@ -50,17 +50,23 @@ void display_usercerts_help(int page) { case 'A': printf("The add mode will register a new link between a user account and a certificate.\n" "\n" - " -c | --certid Required - Certificate ID\n" - " -i | --uid Required - User account ID\n" + " -c | --certid Required - Certificate ID\n" + " -i | --uid Required - User account ID\n" +#ifdef FIREWALL + " -a | --accessprofile Firewall profile ID to use for this access\n" +#endif "\n" ); break; case 'D': printf("The delete mode will delete a link between a user account and a certificate.\n" "\n" - " -c | --certid Certificate ID\n" - " -i | --uid User account ID\n" - " -n | --uicid Unique record id of certificate and user account link\n" + " -c | --certid Certificate ID\n" + " -i | --uid User account ID\n" + " -n | --uicid Unique record id of certificate and user account link\n" +#ifdef FIREWALL + " -a | --accessprofile Firewall profile ID\n" +#endif "\n" ); break; @@ -141,12 +147,15 @@ int add_del_usercert(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cf xmlDoc *usercert_xml = NULL; xmlNode *usercert_n = NULL; int i = 0, id = 0, rc = 0, actmode = 0; - char *certid = NULL, *uid = NULL, *uicid = NULL, *actmode_str = NULL; + char *certid = NULL, *uid = NULL, *uicid = NULL, *actmode_str = NULL, *accessprofile = NULL; e_options addargs[] = { {"--uid", "-i", 1}, {"--certid", "-c", 1}, {"--uicid", "-n", 1}, +#ifdef FIREWALL + {"--accessprofile", "-a", 1}, +#endif {"--help", "-h", 0}, {NULL, NULL, 0} }; @@ -179,6 +188,15 @@ int add_del_usercert(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cf certid = optargs[0]; break; +#ifdef FIRWALL + case 'a': + if( atoi_nullsafe(optargs[0]) < 1 ) { + fprintf(stderr, "%s: Firewall profile ID must be a positive number (>0)\n",MODULE); + return 1; + } + accessprofile = optargs[0]; + break; +#endif case 'n': if( actmode != 'D' ) { fprintf(stderr, "%s: --uicid cannot be used with --add\n", MODULE); @@ -206,8 +224,9 @@ int add_del_usercert(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cf return 1; } - if( (actmode == 'D') && (certid == NULL) && (uid == NULL) && (uicid == NULL) ) { - fprintf(stderr, "%s: You must provide at least --uid, --certid or --uicid\n", MODULE); + if( (actmode == 'D') && (certid == NULL) && (uid == NULL) && (uicid == NULL) && (accessprofile == NULL)) { + fprintf(stderr, "%s: You must provide at least --uid, --certid, --uicid or --accessprofile\n", + MODULE); return 1; } @@ -225,12 +244,19 @@ int add_del_usercert(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cf if( certid != NULL ) { xmlNewChild(usercert_n, NULL, (xmlChar *) "certid", (xmlChar *) certid); } + +#ifdef FIREWALL + if( accessprofile != NULL ) { + xmlNewChild(usercert_n, NULL, (xmlChar *) "accessprofile", (xmlChar *) accessprofile); + } +#endif + if( uicid != NULL ) { xmlNewChild(usercert_n, NULL, (xmlChar *) "uicid", (xmlChar *) uicid); } if( (id = eDBadminUpdateUserCertLink(ctx, usercert_xml)) < 1 ) { - fprintf(stderr, "%s: Failed to register user <-> certificate link\n", MODULE); + fprintf(stderr, "%s: Failed to update user <-> certificate link\n", MODULE); rc = 1; } else { printf("%s: User account and certificate link is %s\n", MODULE, actmode_str); |
