<?php
-namespace Oxbow\Http\Controllers;
+namespace BookStack\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
-use Oxbow\Http\Requests;
-use Oxbow\Services\SocialAuthService;
-use Oxbow\User;
+use BookStack\Http\Requests;
+use BookStack\Repos\UserRepo;
+use BookStack\Services\SocialAuthService;
+use BookStack\User;
class UserController extends Controller
{
protected $user;
+ protected $userRepo;
/**
* UserController constructor.
- * @param $user
+ * @param User $user
+ * @param UserRepo $userRepo
*/
- public function __construct(User $user)
+ public function __construct(User $user, UserRepo $userRepo)
{
$this->user = $user;
+ $this->userRepo = $userRepo;
parent::__construct();
}
public function index()
{
$users = $this->user->all();
+ $this->setPageTitle('Users');
return view('users/index', ['users' => $users]);
}
$user = $this->user->findOrFail($id);
$activeSocialDrivers = $socialAuthService->getActiveDrivers();
+ $this->setPageTitle('User Profile');
return view('users/edit', ['user' => $user, 'activeSocialDrivers' => $activeSocialDrivers]);
}
}
if ($request->has('password') && $request->get('password') != '') {
- //dd('cat');
$password = $request->get('password');
$user->password = bcrypt($password);
}
return $this->currentUser->id == $id;
});
$user = $this->user->findOrFail($id);
+ $this->setPageTitle('Delete User ' . $user->name);
return view('users/delete', ['user' => $user]);
}
$this->checkPermissionOr('user-delete', function () use ($id) {
return $this->currentUser->id == $id;
});
- $user = $this->user->findOrFail($id);
+ $user = $this->userRepo->getById($id);
+ // Delete social accounts
+ if($this->userRepo->isOnlyAdmin($user)) {
+ session()->flash('error', 'You cannot delete the only admin');
+ return redirect($user->getEditUrl());
+ }
+ $user->socialAccounts()->delete();
$user->delete();
return redirect('/users');
}