function logoutCallback($actionName, $httpVars, $fileVars) { $safeCredentials = AJXP_Safe::loadCredentials(); $crtUser = $safeCredentials["user"]; if (isset($_SESSION["AJXP_DYNAMIC_FTP_DATA"])) { unset($_SESSION["AJXP_DYNAMIC_FTP_DATA"]); } AJXP_Safe::clearCredentials(); $adminUser = $this->options["ADMIN_USER"]; $subUsers = array(); if ($crtUser != $adminUser && $crtUser != "") { AJXP_User::deleteUser($crtUser, $subUsers); } AuthService::disconnect(); session_destroy(); session_write_close(); AJXP_XMLWriter::header(); AJXP_XMLWriter::loggingResult(2); AJXP_XMLWriter::close(); }
function deleteUser($userId) { $authDriver = ConfService::getAuthDriverImpl(); $confDriver = ConfService::getConfStorageImpl(); $authDriver->deleteUser($userId); AJXP_User::deleteUser($userId); AJXP_Logger::logAction("Delete User", array("user_id" => $userId)); return true; }
/** * Delete a user in the auth driver impl * @static * @param $userId * @return bool */ static function deleteUser($userId) { $userId = AuthService::filterUserSensitivity($userId); AJXP_Controller::applyHook("user.before_delete", array($userId)); $authDriver = ConfService::getAuthDriverImpl(); $authDriver->deleteUser($userId); $subUsers = array(); AJXP_User::deleteUser($userId, $subUsers); foreach ($subUsers as $deletedUser) { $authDriver->deleteUser($deletedUser); } AJXP_Controller::applyHook("user.after_delete", array($userId)); AJXP_Logger::logAction("Delete User", array("user_id" => $userId, "sub_user" => implode(",", $subUsers))); return true; }
/** * Static function for deleting a user. * Also removes associated rights, preferences and bookmarks. * WARNING : must also delete the children! * * @param String $userId Login to delete. * @param Array $deletedSubUsers * @return null or -1 on error. */ static function deleteUser($userId, &$deletedSubUsers) { $children = array(); try { // FIND ALL CHILDREN FIRST $children_results = dibi::query('SELECT [login] FROM [ajxp_user_rights] WHERE [repo_uuid] = %s AND [rights] = %s', "ajxp.parent_user", $userId); $all = $children_results->fetchAll(); foreach ($all as $item) { $children[] = $item["login"]; } dibi::begin(); //This one is done by AUTH_DRIVER, not CONF_DRIVER //dibi::query('DELETE FROM [ajxp_users] WHERE [login] = %s', $userId); dibi::query('DELETE FROM [ajxp_user_rights] WHERE [login] = %s', $userId); dibi::query('DELETE FROM [ajxp_user_prefs] WHERE [login] = %s', $userId); dibi::query('DELETE FROM [ajxp_user_bookmarks] WHERE [login] = %s', $userId); dibi::commit(); foreach ($children as $childId) { AJXP_User::deleteUser($childId, $deletedSubUsers); $deletedSubUsers[] = $childId; } } catch (DibiException $e) { throw new Exception('Failed to delete user, Reason: ' . $e->getMessage()); } }
static function deleteUser($userId) { $authDriver = ConfService::getAuthDriverImpl(); $confDriver = ConfService::getConfStorageImpl(); $authDriver->deleteUser($userId); AJXP_User::deleteUser($userId); $users = $authDriver->listUsers(); $subUsers = ""; foreach (array_keys($users) as $id) { $object = $confDriver->createUserObject($id); if ($object->hasParent() && $object->getParent() == $userId) { $subUsers .= $id . ","; $authDriver->deleteUser($id); AJXP_User::deleteUser($id); } } AJXP_Logger::logAction("Delete User", array("user_id" => $userId, "sub_user" => $subUsers)); return true; }
function logoutCallback($actionName, $httpVars, $fileVars) { $crtUser = $_SESSION["AJXP_SESSION_REMOTE_USER"]; if (isset($_SESSION["AJXP_DYNAMIC_FTP_DATA"])) { unset($_SESSION["AJXP_DYNAMIC_FTP_DATA"]); } unset($_SESSION["AJXP_SESSION_REMOTE_USER"]); unset($_SESSION["AJXP_SESSION_REMOTE_PASS"]); $adminUser = $this->options["ADMIN_USER"]; if ($login != $adminUser && $crtUser != "") { AJXP_User::deleteUser($crtUser); } AuthService::disconnect(); session_write_close(); AJXP_XMLWriter::header(); AJXP_XMLWriter::loggingResult(2); AJXP_XMLWriter::close(); }
static function deleteUser($userId) { $authDriver = ConfService::getAuthDriverImpl(); $authDriver->deleteUser($userId); $subUsers = array(); AJXP_User::deleteUser($userId, $subUsers); foreach ($subUsers as $deletedUser) { $authDriver->deleteUser($deletedUser); } AJXP_Logger::logAction("Delete User", array("user_id" => $userId, "sub_user" => implode(",", $subUsers))); return true; }
/** * Static function for deleting a user * * @param String $userId * @param Array $deletedSubUsers */ static function deleteUser($userId, &$deletedSubUsers) { $storage = ConfService::getConfStorageImpl(); $serialDir = AJXP_VarsFilter::filter($storage->getOption("USERS_DIRPATH")); $files = glob($serialDir . "/" . $userId . "/*.ser"); if (is_array($files) && count($files)) { foreach ($files as $file) { unlink($file); } } if (is_dir($serialDir . "/" . $userId)) { rmdir($serialDir . "/" . $userId); } $authDriver = ConfService::getAuthDriverImpl(); $confDriver = ConfService::getConfStorageImpl(); $users = $authDriver->listUsers(); foreach (array_keys($users) as $id) { $object = $confDriver->createUserObject($id); if ($object->hasParent() && $object->getParent() == $userId) { AJXP_User::deleteUser($id, $deletedSubUsers); $deletedSubUsers[] = $id; } } }