diff --git a/src/app/controllers/Admin/SetAdmin.php b/src/app/controllers/Admin/SetAdmin.php new file mode 100644 index 0000000000000000000000000000000000000000..76ff11c2cad71c5ebb5b142f61b9c3a17019a6e2 --- /dev/null +++ b/src/app/controllers/Admin/SetAdmin.php @@ -0,0 +1,38 @@ +<?php + +require_once SRC_ROOT_PATH . "/app/baseclasses/BaseController.php"; +require_once SRC_ROOT_PATH . "/app/models/AdminModel.php"; + +class SetAdminController extends BaseController{ + protected static $instance; + public static function getInstance(){ + if(!isset(self::$instance)){ + self::$instance = new static(AdminModel::getInstance()); + } + return self::$instance; + } + public function post($urlParams){ + $user_id = $_POST['id']; + $hasil = $this->srv->setAdmin($user_id); + if($hasil==true){ + $hasiljson = array( + 'status' => 'sukses', + 'message' => 'User berhasil di set admin' + ); + header('Content-Type: application/json'); + return json_encode($hasiljson); + } + else{ + $hasiljson = array( + 'status' => 'error', + 'message' => 'User gagal di set admin' + ); + header('Content-Type: application/json'); + return json_encode($hasiljson); + + } + } + +} + +?> \ No newline at end of file diff --git a/src/app/models/AdminModel.php b/src/app/models/AdminModel.php index a1f01301d6971adf69f4da9b5e40190d0bf58c59..574f03b0fa57e227149c1a2e96c0e482804e3f99 100644 --- a/src/app/models/AdminModel.php +++ b/src/app/models/AdminModel.php @@ -47,6 +47,22 @@ class AdminModel } } + public function setAdmin($user_id){ + try{ + $db = Database::getInstance()->getPDO(); + $sql = "UPDATE users SET role = 'admin' WHERE id = '$user_id'"; + $result = $db->query($sql); + if($result){ + return true; + } + else{ + return false; + } + }catch(Exception $e){ + return false; + } + } + } ?> diff --git a/src/index.php b/src/index.php index 2ee6a2e913dfd7190c71b969099b5386cdae8fbd..47bb4bcc053b35014df5152dd292e95fff91e15c 100644 --- a/src/index.php +++ b/src/index.php @@ -13,6 +13,7 @@ require_once CONTROLLER_PATH . "/User/RegisterController.php"; require_once CONTROLLER_PATH . "/Admin/AdminController.php"; require_once CONTROLLER_PATH . "/Admin/BanController.php"; require_once CONTROLLER_PATH . "/Admin/UnbanController.php"; +require_once CONTROLLER_PATH . "/Admin/SetAdmin.php"; require_once CONTROLLER_PATH . "/Page/LoginPage.php"; require_once CONTROLLER_PATH . "/Page/ComposePage.php"; @@ -28,6 +29,7 @@ $router->addHandler("/api/register", RegisterController::getInstance(), []); $router->addHandler("/api/admin", AdminController::getInstance(), []); $router->addHandler("/api/ban", BanController::getInstance(), []); $router->addHandler("/api/unban", UnbanController::getInstance(), []); +$router->addHandler("/api/setadmin", SetAdminController::getInstance(), []); $router->addHandler("/login", LoginPage::getInstance(), []); $router->addHandler("/compose/kicau", ComposePage::getInstance(), []);