Я бы реализовал какую-то функцию "олицетворения пользователя". Таким образом, в основном из вашей учетной записи администратора вы можете ввести / выполнить поиск идентификатора пользователя, а затем вызвать код «войти в систему», как если бы этот пользователь вошел в систему. Это позволит выйти из системы администратором, но теперь он будет выдавать себя за другого. клиент по запросу.
Хотя лично, если у меня есть действие пользователя / редактирования, тогда код выполняет следующие действия:
//check for an admin user
if ($current_user->role == 'admin')
//admins have to specify customers to edit
if (isset($_GET['id']))
$user_id = $_GET['id'];
else
//if no customer is specified, return a 404
http_404();
else
//customers can only see their own details
$user_id = $current_user->id;
//get the user details to edit
$user_to_edit = $repository->get_user($user_id);
Таким образом, пользователь с правами администратора остается в системе, и вы получаете возможность контролировать, сколько вещей клиента может испортить пользователь с правами администратора.