From 31eabf84b468305cd3fe4aeeb50a5a30c988f773 Mon Sep 17 00:00:00 2001 From: Li Chen Date: Sun, 1 Dec 2013 19:40:47 +0100 Subject: [PATCH] Move the function remove_team from list_users.php to Team.class Revoke certificates after drop all teams --- onyx/include/admin/certificate.php | 15 ++++++++----- onyx/include/admin/list_users.php | 35 ++++++++++++++++++++---------- onyx/include/common/Team.class.php | 9 ++++++++ onyx/tpl/bootstrap/admin/users.tpl | 2 +- 4 files changed, 43 insertions(+), 18 deletions(-) diff --git a/onyx/include/admin/certificate.php b/onyx/include/admin/certificate.php index 23a35290..580d6b62 100644 --- a/onyx/include/admin/certificate.php +++ b/onyx/include/admin/certificate.php @@ -31,6 +31,13 @@ function new_client($name, $misc_dir) return $output; } +function revoke_client($name, $misc_dir) +{ + putenv("OPENSSL_CONF=$misc_dir/openssl.cnf"); + putenv("TOP_DIR=$misc_dir/pki"); + $output = shell_exec("$misc_dir/CA.sh -revoke $name"); +} + if (!empty($p[2])) { if (isset($VAR['misc_dir'])) @@ -60,11 +67,9 @@ if (!empty($p[2])) $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); + $output = revoke_client($name, $misc_dir); + //TODO Check revocation failed + Team::set_revoked(TRUE, $name); } } // Is new team diff --git a/onyx/include/admin/list_users.php b/onyx/include/admin/list_users.php index 3968bc16..3ac2871f 100644 --- a/onyx/include/admin/list_users.php +++ b/onyx/include/admin/list_users.php @@ -2,29 +2,40 @@ if(!defined('ONYX')) exit; -function remove_team($id) -{ - $db = new BDD(); - $db->query("DELETE FROM team_members WHERE id_team = ".$id); - $db->query("DELETE FROM solved WHERE id_team = ".$id); - $db->query("DELETE FROM teams WHERE id = ".$id); - $db->deconnexion(); -} +include 'certificate.php'; if (!empty($_GET["delete"])) { - $id_team = intval($_GET["delete"]); + if (isset($VAR['misc_dir'])) + $misc_dir = $VAR['misc_dir']; + else + { + erreur("Merci d'ajouter la variable misc_dir dans root.xml"); + return SALT_ADMIN."/users"; + } - remove_team($id_team); + $id_team = intval($_GET["delete"]); + revoke_client($_GET['name'], $misc_dir); + Team::remove_team($id_team); header("Location: /".SALT_ADMIN."/teams"); exit; } else if (isset($_GET["drop"])) { + if (isset($VAR['misc_dir'])) + $misc_dir = $VAR['misc_dir']; + else + { + erreur("Merci d'ajouter la variable misc_dir dans root.xml"); + return SALT_ADMIN."/users"; + } + foreach(Team::get_teams() as $team) { - remove_team($team->get_id()); + //TODO check output + revoke_client($team->team_name, $misc_dir); + Team::remove_team($team->get_id()); } header("Location: /".SALT_ADMIN."/teams"); @@ -33,4 +44,4 @@ else if (isset($_GET["drop"])) $template->assign("teams", Team::get_teams()); -return "admin/users"; \ No newline at end of file +return SALT_ADMIN."/users"; diff --git a/onyx/include/common/Team.class.php b/onyx/include/common/Team.class.php index d9b3a966..f2ba89e9 100644 --- a/onyx/include/common/Team.class.php +++ b/onyx/include/common/Team.class.php @@ -246,6 +246,15 @@ class Team return ($aff == 1); } + public static function remove_team($id) + { + $db = new BDD(); + $db->query("DELETE FROM team_members WHERE id_team = ".$id); + $db->query("DELETE FROM solved WHERE id_team = ".$id); + $db->query("DELETE FROM teams WHERE id = ".$id); + $db->deconnexion(); + } + public static function get_teams() { $db = new BDD(); diff --git a/onyx/tpl/bootstrap/admin/users.tpl b/onyx/tpl/bootstrap/admin/users.tpl index 5cb1d126..3745aa70 100644 --- a/onyx/tpl/bootstrap/admin/users.tpl +++ b/onyx/tpl/bootstrap/admin/users.tpl @@ -19,7 +19,7 @@ {$t->id}
- +