Răsfoiți Sursa

remove user and files in terminate function

andre 8 luni în urmă
părinte
comite
d497979f7d
1 a modificat fișierele cu 27 adăugiri și 3 ștergeri
  1. 27 3
      controllers/DeployDevController.php

+ 27 - 3
controllers/DeployDevController.php

@@ -58,7 +58,7 @@ class DeployDevController {
 
         if ($GLOBALS['debug'] == true) { error_log("Creating logdir for : " . $username); }
         if (is_dir("/home/$username/logs") != true) {
-             exec("sudo /usr/bin/mkdir /home/$username/logs  2>&1", $mkdirOutput, $mkdirReturnCode);
+             exec("sudo /usr/bin/mkdir -p /home/$username/logs  2>&1", $mkdirOutput, $mkdirReturnCode);
                 if ($mkdirReturnCode !== 0) {
                     error_log("deploy: ERROR: Failed to create log directory for  $username failed, details => " . implode("\n", $mkdirOutput));
                     http_response_code(500);
@@ -68,7 +68,7 @@ class DeployDevController {
         }
         if ($GLOBALS['debug'] == true) { error_log("Creating backup dir for : " . $username); }
         if (is_dir("/home/$username/backups") != true) {
-           exec("sudo /usr/bin/mkdir /home/$username/backups  2>&1", $mkdirOutput, $mkdirReturnCode);
+           exec("sudo /usr/bin/mkdir -p /home/$username/backups  2>&1", $mkdirOutput, $mkdirReturnCode);
            if ($mkdirReturnCode !== 0) {
                error_log("deploy: ERROR: mkdir /home/$username/backups failed, details => " . implode("\n", $mkdirOutput));
                http_response_code(500);
@@ -315,7 +315,31 @@ class DeployDevController {
 
 
     public static function terminate($data): void {
-
+        $username = $data['username'] ?? '';
+        if (empty($username)) {
+            error_log("terminate: ERROR: No username provided");
+            http_response_code(400);
+            error_log(print_r($data,true));
+            echo json_encode(['error' => 'Missing username']);
+            return;
+        }
+        if( strpos(file_get_contents("/etc/passwd"),$username) == false) {
+            error_log("terminate: ERROR: User $username does not exist");
+            http_response_code(400);
+            error_log(print_r($data,true));
+            echo json_encode(['error' => 'Unknown user']);
+            return;
+        }
+        // Remove user and files
+        if ($GLOBALS['debug'] == true) {error_log("Remove User: " . $username); }
+        exec("sudo /usr/sbin/userdel -r -f $username  2>&1", $userOutput, $userReturnCode);
+        if ($userReturnCode !== 0) {
+            error_log("deploy: ERROR: Userdel for  $username failed, details => " . implode("\n", $userOutput));
+            http_response_code(500);
+            echo json_encode(['error' => 'Failed to create user', 'details' => implode("\n", $userOutput)]);
+            return;
+        }
+        echo json_encode(['success' => 'Removing useri ' . $username . ' successfully']);
     }
 
 }