Käyttäjän poisto: admin poistaa vain yrityksestä, ei kokonaan
Admin poistaa käyttäjän vain nykyisestä yrityksestä (user_companies). Käyttäjä poistetaan kokonaan vasta kun ei kuulu enää yhteenkään yritykseen. Superadmin poistaa edelleen kokonaan. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
16
api.php
16
api.php
@@ -1727,9 +1727,21 @@ switch ($action) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dbDeleteUser($id);
|
|
||||||
$companyId = $_SESSION['company_id'] ?? '';
|
$companyId = $_SESSION['company_id'] ?? '';
|
||||||
if ($deleted) dbAddLog($companyId, currentUser(), 'user_delete', '', '', "Poisti käyttäjän: {$deleted['username']}");
|
if ($isSA) {
|
||||||
|
// Superadmin poistaa käyttäjän kokonaan
|
||||||
|
dbDeleteUser($id);
|
||||||
|
if ($deleted) dbAddLog($companyId, currentUser(), 'user_delete', '', '', "Poisti käyttäjän kokonaan: {$deleted['username']}");
|
||||||
|
} else {
|
||||||
|
// Admin poistaa käyttäjän vain nykyisestä yrityksestä
|
||||||
|
dbRemoveUserFromCompany($id, $companyId);
|
||||||
|
if ($deleted) dbAddLog($companyId, currentUser(), 'user_delete', '', '', "Poisti käyttäjän yrityksestä: {$deleted['username']}");
|
||||||
|
// Jos käyttäjällä ei ole enää yhtään yritystä, poista kokonaan
|
||||||
|
$remaining = dbGetUserCompanies($id);
|
||||||
|
if (empty($remaining)) {
|
||||||
|
dbDeleteUser($id);
|
||||||
|
}
|
||||||
|
}
|
||||||
echo json_encode(['success' => true]);
|
echo json_encode(['success' => true]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
8
db.php
8
db.php
@@ -976,6 +976,14 @@ function dbDeleteUser(string $userId): void {
|
|||||||
_dbExecute("DELETE FROM users WHERE id = ?", [$userId]);
|
_dbExecute("DELETE FROM users WHERE id = ?", [$userId]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function dbRemoveUserFromCompany(string $userId, string $companyId): void {
|
||||||
|
_dbExecute("DELETE FROM user_companies WHERE user_id = ? AND company_id = ?", [$userId, $companyId]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function dbGetUserCompanies(string $userId): array {
|
||||||
|
return _dbFetchAll("SELECT company_id FROM user_companies WHERE user_id = ?", [$userId]);
|
||||||
|
}
|
||||||
|
|
||||||
// ==================== ASETUKSET (global) ====================
|
// ==================== ASETUKSET (global) ====================
|
||||||
|
|
||||||
function dbLoadConfig(): array {
|
function dbLoadConfig(): array {
|
||||||
|
|||||||
Reference in New Issue
Block a user