From 32bb0163c1a96dfdb05aaf7f5b3a7b10e60b0afc Mon Sep 17 00:00:00 2001 From: Li Chen Date: Sat, 30 Nov 2013 21:31:18 +0100 Subject: [PATCH] Add delete, new and revoke in list_users page --- htdocs/index.php | 6 ++++ onyx/include/admin/certificate.php | 45 ++++++++++++++++++++++++++++++ onyx/tpl/bootstrap/admin/users.tpl | 5 ++++ 3 files changed, 56 insertions(+) diff --git a/htdocs/index.php b/htdocs/index.php index eb5b4089..b14b78ba 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -58,8 +58,14 @@ if ($n && $p[0] == SALT_ADMIN) case "certificate/": case "certificate/newca": case "certificate/newca/": + case "certificate/newclient": + case "certificate/newclient/": case "certificate/deleteca": case "certificate/deleteca/": + case "certificate/revoke": + case "certificate/revoke/": + case "certificate/get": + case "certificate/get/": $page = require("admin/certificate.php"); break; diff --git a/onyx/include/admin/certificate.php b/onyx/include/admin/certificate.php index d6b73d4e..23a35290 100644 --- a/onyx/include/admin/certificate.php +++ b/onyx/include/admin/certificate.php @@ -55,11 +55,56 @@ if (!empty($p[2])) $dir = "$misc_dir/pki"; remove_directory($dir); } + elseif ($p[2] == "revoke") + { + $name = $_GET['name']; + if (isset($name)) + { + putenv("OPENSSL_CONF=$misc_dir/openssl.cnf"); + putenv("TOP_DIR=$misc_dir/pki"); + $output = shell_exec("$misc_dir/CA.sh -revoke $name"); + //TODO Check revocation failed + Team::set_revoked(TRUE, $name); + } + } + // Is new team + elseif ($p[2] == "newclient") + { + $name = $_GET['name']; + //TODO handle error + //TODO check revoked attribute + if (isset($name)) + { + new_client($name, $misc_dir); + Team::set_revoked(FALSE, $name); + } + } + elseif ($p[2] == "get") + { + $name = $_GET['name']; + if (isset($name)) + { + $path = "$misc_dir/pki/pkcs/$name.p12"; + if (file_exists($path) && is_readable($path)) + { + header("Content-Type: application/force-download"); + header("Content-Length: ".strval(filesize($path))); + header("Content-Disposition: attachment; filename=\"$name.p12\""); + readfile($path); + } + } + exit; + } if ($p[2] == "deleteca" || $p[2] == "newca") { header("Location: /".SALT_ADMIN."/"); exit; } + elseif ($p[2] == "revoke" || $p[2] == "newclient") + { + header("Location: /".SALT_ADMIN."/teams"); + exit; + } } diff --git a/onyx/tpl/bootstrap/admin/users.tpl b/onyx/tpl/bootstrap/admin/users.tpl index 49850db8..201c04a4 100644 --- a/onyx/tpl/bootstrap/admin/users.tpl +++ b/onyx/tpl/bootstrap/admin/users.tpl @@ -10,6 +10,7 @@ Membres Points Place + Révoqué {if $teams} @@ -19,6 +20,9 @@ {$t->id}
+ + + {$t->team_name} {$t->slogan} @@ -29,6 +33,7 @@ {$t->get_pts()} {$t->get_rank()} + {if $t->revoked}Oui{else}Non{/if} {/foreach}