summaryrefslogtreecommitdiffstats
path: root/database
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2013-05-29 19:51:19 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2013-05-29 19:51:19 +0200
commitefac24b10ee1df25d2e9db35b26d848d8ffc9e6c (patch)
tree519891f4d6f4c5bcf5b275b00827a381a584d46f /database
parent522e8fbd46334a4187c73c03bdd051bf2cc7c01b (diff)
downloadeurephia-efac24b10ee1df25d2e9db35b26d848d8ffc9e6c.tar.gz
eurephia-efac24b10ee1df25d2e9db35b26d848d8ffc9e6c.tar.xz
eurephia-efac24b10ee1df25d2e9db35b26d848d8ffc9e6c.zip
eurephiadm/usercerts: Add support for setting up auth-plugins
This enables setting authentication plug-in and the alternative authentication username for user-certificate links. Signed-off-by: David Sommerseth <dazo@users.sourceforge.net>
Diffstat (limited to 'database')
-rw-r--r--database/eurephiadb_mapping.h3
-rw-r--r--database/sqlite/administration/usercerts.c14
-rw-r--r--database/sqlite/fieldmapping.h2
3 files changed, 17 insertions, 2 deletions
diff --git a/database/eurephiadb_mapping.h b/database/eurephiadb_mapping.h
index 8afeb34..ba077be 100644
--- a/database/eurephiadb_mapping.h
+++ b/database/eurephiadb_mapping.h
@@ -138,6 +138,7 @@ extern const char *SESSION_STATUS[];
#define FIELD_TYPE 0x10000000LL
#define FIELD_FILE 0x20000000LL
#define FIELD_CONFIG 0x40000000LL
+#define FIELD_PLUGIN 0x80000000LL
/**
* @}
*/
@@ -226,6 +227,8 @@ static eDBfieldMap eTblMap_usercerts[] = {
{TABLE_USERCERTS, NULL, FIELD_UID, ft_INT, flt_EQ, "uid", NULL, NULL},
{TABLE_USERCERTS, NULL, FIELD_CERTID, ft_INT, flt_EQ, "certid", NULL, NULL},
{TABLE_USERCERTS, NULL, FIELD_ACCPROFILE, ft_INT, flt_EQ, "accessprofile", NULL, NULL},
+ {TABLE_USERCERTS, NULL, FIELD_PLUGIN, ft_INT, flt_EQ, "authplugin", NULL, NULL},
+ {TABLE_USERCERTS, NULL, FIELD_UNAME, ft_STRING,flt_EQ,"authusername", NULL, NULL},
{TABLE_USERCERTS, NULL, FIELD_REGISTERED, ft_INT, flt_EQ, "registered", NULL, NULL},
{TABLE_USERCERTS, NULL, FIELD_RECID, ft_INT, flt_EQ, "uicid", NULL, NULL},
{0, NULL, FIELD_NONE, ft_UNDEF, flt_NOTSET, NULL, NULL, NULL}
diff --git a/database/sqlite/administration/usercerts.c b/database/sqlite/administration/usercerts.c
index d6f8721..581514a 100644
--- a/database/sqlite/administration/usercerts.c
+++ b/database/sqlite/administration/usercerts.c
@@ -84,11 +84,13 @@ xmlDoc *usercerts_search(eurephiaCTX *ctx, eDBfieldMap *where_m, const char *sor
"SELECT uicid, ucs.uid AS uid, certid, locdt(ucs.registered) AS registered,"
" ucs.accessprofile AS accessprofile, access_descr,"
" username, "
- " common_name, organisation, email, lower(digest), depth "
+ " common_name, organisation, email, lower(digest), depth, "
+ " authplugin, plgname, authusername"
" FROM openvpn_usercerts ucs"
" LEFT JOIN openvpn_certificates USING(certid)"
" LEFT JOIN openvpn_accesses acc ON(ucs.accessprofile = acc.accessprofile)"
- " LEFT JOIN openvpn_users u ON(u.uid = ucs.uid)",
+ " LEFT JOIN openvpn_users u ON(u.uid = ucs.uid)"
+ " LEFT JOIN eurephia_plugins plg ON(ucs.authplugin = plg.plgid)",
NULL, // values (not used for SELECT)
where_m, // fields and values for the WHERE clause
dbsort);
@@ -130,6 +132,14 @@ xmlDoc *usercerts_search(eurephiaCTX *ctx, eDBfieldMap *where_m, const char *sor
tmp_n = sqlite_xml_value(link_n, XML_NODE, "access_profile", res, i, 5);
sqlite_xml_value(tmp_n, XML_ATTR, "accessprofile", res, i, 4);
+
+ // Add optional authentication plug-in info
+ if( atoi_nullsafe(sqlite_get_value(res, i, 12)) > 0 ) {
+ tmp_n = xmlNewChild(link_n, NULL, (xmlChar *) "authplugin", NULL);
+ sqlite_xml_value(tmp_n, XML_ATTR, "authplugid", res, i, 12);
+ sqlite_xml_value(tmp_n, XML_NODE, "description", res, i, 13);
+ sqlite_xml_value(tmp_n, XML_NODE, "auth_username", res, i, 14);
+ }
}
sqlite_free_results(res);
diff --git a/database/sqlite/fieldmapping.h b/database/sqlite/fieldmapping.h
index 2f25b87..64ea65d 100644
--- a/database/sqlite/fieldmapping.h
+++ b/database/sqlite/fieldmapping.h
@@ -64,6 +64,8 @@ static eDBfieldMap tbl_sqlite_usercerts[] = {
{TABLE_USERCERTS, NULL, FIELD_UID, ft_INT, flt_NOTSET, "uid", NULL, NULL},
{TABLE_USERCERTS, NULL, FIELD_CERTID, ft_INT, flt_NOTSET, "certid", NULL, NULL},
{TABLE_USERCERTS, NULL, FIELD_ACCPROFILE, ft_INT, flt_NOTSET, "accessprofile", NULL, NULL},
+ {TABLE_USERCERTS, NULL, FIELD_PLUGIN, ft_INT, flt_NOTSET, "authplugin", NULL, NULL},
+ {TABLE_USERCERTS, NULL, FIELD_UNAME, ft_STRING,flt_NOTSET,"authusername", NULL, NULL},
{TABLE_USERCERTS, NULL, FIELD_REGISTERED, ft_INT, flt_NOTSET, "registered", NULL, NULL},
{TABLE_USERCERTS, NULL, FIELD_RECID, ft_INT, flt_NOTSET, "uicid", NULL, NULL},
{0, NULL, FIELD_NONE, ft_UNDEF, flt_NOTSET, NULL, NULL, NULL}