More service structure testing and configuration
Tests aren't working as well as I had hoped, so a lot are commented out while I wait to hear back on this bug causing them to fail.
This commit is contained in:
parent
ce2b2447d0
commit
2235481765
18 changed files with 755 additions and 401 deletions
|
@ -47,20 +47,20 @@ class UserController extends Controller
|
|||
/**
|
||||
* @var \Pterodactyl\Models\User
|
||||
*/
|
||||
protected $userModel;
|
||||
protected $model;
|
||||
|
||||
/**
|
||||
* UserController constructor.
|
||||
*
|
||||
* @param \Prologue\Alerts\AlertsMessageBag $alert
|
||||
* @param \Pterodactyl\Services\UserService $service
|
||||
* @param \Pterodactyl\Models\User $userModel
|
||||
* @param \Pterodactyl\Models\User $model
|
||||
*/
|
||||
public function __construct(AlertsMessageBag $alert, UserService $service, User $userModel)
|
||||
public function __construct(AlertsMessageBag $alert, UserService $service, User $model)
|
||||
{
|
||||
$this->alert = $alert;
|
||||
$this->service = $service;
|
||||
$this->userModel = $userModel;
|
||||
$this->model = $model;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -71,7 +71,7 @@ class UserController extends Controller
|
|||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$users = $this->userModel->withCount('servers', 'subuserOf');
|
||||
$users = $this->model->newQuery()->withCount('servers', 'subuserOf');
|
||||
|
||||
if (! is_null($request->input('query'))) {
|
||||
$users->search($request->input('query'));
|
||||
|
@ -108,13 +108,19 @@ class UserController extends Controller
|
|||
/**
|
||||
* Delete a user from the system.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Pterodactyl\Models\User $user
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*
|
||||
* @throws \Exception
|
||||
* @throws \Pterodactyl\Exceptions\DisplayException
|
||||
*/
|
||||
public function delete(User $user)
|
||||
public function delete(Request $request, User $user)
|
||||
{
|
||||
if ($request->user()->id === $user->id) {
|
||||
throw new DisplayException('Cannot delete your own account.');
|
||||
}
|
||||
|
||||
try {
|
||||
$this->service->delete($user->id);
|
||||
|
||||
|
@ -146,9 +152,11 @@ class UserController extends Controller
|
|||
/**
|
||||
* Update a user on the system.
|
||||
*
|
||||
* @param \Pterodactyl\Http\Requests\Admin\UserFormRequest $request
|
||||
* @param \Pterodactyl\Models\User $user
|
||||
* @param \Pterodactyl\Http\Requests\Admin\UserFormRequest $request
|
||||
* @param \Pterodactyl\Models\User $user
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*
|
||||
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
|
||||
*/
|
||||
public function update(UserFormRequest $request, User $user)
|
||||
{
|
||||
|
@ -166,7 +174,7 @@ class UserController extends Controller
|
|||
*/
|
||||
public function json(Request $request)
|
||||
{
|
||||
return $this->userModel->search($request->input('q'))->all([
|
||||
return $this->model->search($request->input('q'))->all([
|
||||
'id', 'email', 'username', 'name_first', 'name_last',
|
||||
])->transform(function ($item) {
|
||||
$item->md5 = md5(strtolower($item->email));
|
||||
|
|
|
@ -35,6 +35,10 @@ class LocationRequest extends AdminFormRequest
|
|||
*/
|
||||
public function rules()
|
||||
{
|
||||
return app()->make(Location::class)->getRules();
|
||||
if ($this->method() === 'PATCH') {
|
||||
return Location::getUpdateRulesForId($this->location->id);
|
||||
}
|
||||
|
||||
return Location::getCreateRules();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,46 +25,19 @@
|
|||
namespace Pterodactyl\Http\Requests\Admin;
|
||||
|
||||
use Pterodactyl\Models\User;
|
||||
use Pterodactyl\Contracts\Repositories\UserInterface;
|
||||
|
||||
class UserFormRequest extends AdminFormRequest
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function repository()
|
||||
{
|
||||
return UserInterface::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
if ($this->method() === 'PATCH') {
|
||||
return [
|
||||
'email' => 'required|email|unique:users,email,' . $this->user->id,
|
||||
'username' => 'required|alpha_dash|between:1,255|unique:users,username, ' . $this->user->id . '|' . User::USERNAME_RULES,
|
||||
'name_first' => 'required|string|between:1,255',
|
||||
'name_last' => 'required|string|between:1,255',
|
||||
'password' => 'sometimes|nullable|' . User::PASSWORD_RULES,
|
||||
'root_admin' => 'required|boolean',
|
||||
// 'language' => 'sometimes|required|string|min:1|max:5',
|
||||
// 'use_totp' => 'sometimes|required|boolean',
|
||||
// 'totp_secret' => 'sometimes|required|size:16',
|
||||
];
|
||||
return User::getUpdateRulesForId($this->user->id);
|
||||
}
|
||||
|
||||
return [
|
||||
'email' => 'required|email|unique:users,email',
|
||||
'username' => 'required|alpha_dash|between:1,255|unique:users,username|' . User::USERNAME_RULES,
|
||||
'name_first' => 'required|string|between:1,255',
|
||||
'name_last' => 'required|string|between:1,255',
|
||||
'password' => 'sometimes|nullable|' . User::PASSWORD_RULES,
|
||||
'root_admin' => 'required|boolean',
|
||||
'external_id' => 'sometimes|nullable|numeric|unique:users,external_id',
|
||||
];
|
||||
return User::getCreateRules();
|
||||
}
|
||||
|
||||
public function normalize()
|
||||
|
|
Reference in a new issue