Add delete, new and revoke in list_users page

This commit is contained in:
Li Chen 2013-11-30 21:31:18 +01:00
parent dbcc23a535
commit 32bb0163c1
3 changed files with 56 additions and 0 deletions

View File

@ -58,8 +58,14 @@ if ($n && $p[0] == SALT_ADMIN)
case "certificate/": case "certificate/":
case "certificate/newca": case "certificate/newca":
case "certificate/newca/": case "certificate/newca/":
case "certificate/newclient":
case "certificate/newclient/":
case "certificate/deleteca": case "certificate/deleteca":
case "certificate/deleteca/": case "certificate/deleteca/":
case "certificate/revoke":
case "certificate/revoke/":
case "certificate/get":
case "certificate/get/":
$page = require("admin/certificate.php"); $page = require("admin/certificate.php");
break; break;

View File

@ -55,11 +55,56 @@ if (!empty($p[2]))
$dir = "$misc_dir/pki"; $dir = "$misc_dir/pki";
remove_directory($dir); 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") if ($p[2] == "deleteca" || $p[2] == "newca")
{ {
header("Location: /".SALT_ADMIN."/"); header("Location: /".SALT_ADMIN."/");
exit; exit;
} }
elseif ($p[2] == "revoke" || $p[2] == "newclient")
{
header("Location: /".SALT_ADMIN."/teams");
exit;
}
} }

View File

@ -10,6 +10,7 @@
<th>Membres</th> <th>Membres</th>
<th>Points</th> <th>Points</th>
<th>Place</th> <th>Place</th>
<th>Révoqué</th>
</tr> </tr>
</thead> </thead>
{if $teams} {if $teams}
@ -19,6 +20,9 @@
<td> <td>
{$t->id}<br> {$t->id}<br>
<a href="?delete={$t->id}"><span class="glyphicon glyphicon-trash"></span></a> <a href="?delete={$t->id}"><span class="glyphicon glyphicon-trash"></span></a>
<a href="/{$SALT_ADMIN}/certificate/revoke?name={$t->team_name}"><span class="glyphicon glyphicon-remove"></span></a>
<a href="/{$SALT_ADMIN}/certificate/get?name={$t->team_name}"><span class="glyphicon glyphicon-download"></span></a>
<a href="/{$SALT_ADMIN}/certificate/newclient?name={$t->team_name}"><span class="glyphicon glyphicon-plus"></span></a>
</td> </td>
<td>{$t->team_name}</td> <td>{$t->team_name}</td>
<td>{$t->slogan}</td> <td>{$t->slogan}</td>
@ -29,6 +33,7 @@
</ul></td> </ul></td>
<td>{$t->get_pts()}</td> <td>{$t->get_pts()}</td>
<td>{$t->get_rank()}</td> <td>{$t->get_rank()}</td>
<td>{if $t->revoked}Oui{else}Non{/if}</td>
</tr> </tr>
{/foreach} {/foreach}
</tbody> </tbody>