summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2009-04-03 00:21:39 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2009-04-03 00:21:39 +0200
commit597bc3e89db0ec3a7f7f2a2e2c3acc2bbafa8b29 (patch)
treef6f0dee07d5d74b28dafdc8b3f8084f7c129af99
parent88e67c4360aab6ab79412b79bca7bdf2f8d1264d (diff)
downloadeurephia-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.c44
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);