diff options
Diffstat (limited to 'database/sqlite/administration/usercerts.c')
| -rw-r--r-- | database/sqlite/administration/usercerts.c | 14 |
1 files changed, 12 insertions, 2 deletions
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); |
