2525namespace Pterodactyl \Http \Controllers \Admin ;
2626
2727use Illuminate \Http \Request ;
28- use Pterodactyl \Contracts \Repository \UserRepositoryInterface ;
2928use Pterodactyl \Models \User ;
3029use Prologue \Alerts \AlertsMessageBag ;
31- use Pterodactyl \Services \UserService ;
3230use Pterodactyl \Exceptions \DisplayException ;
3331use Pterodactyl \Http \Controllers \Controller ;
32+ use Pterodactyl \Services \Users \UpdateService ;
33+ use Pterodactyl \Services \Users \CreationService ;
34+ use Pterodactyl \Services \Users \DeletionService ;
35+ use Illuminate \Contracts \Translation \Translator ;
3436use Pterodactyl \Http \Requests \Admin \UserFormRequest ;
37+ use Pterodactyl \Contracts \Repository \UserRepositoryInterface ;
3538
3639class UserController extends Controller
3740{
@@ -41,53 +44,67 @@ class UserController extends Controller
4144 protected $ alert ;
4245
4346 /**
44- * @var \Pterodactyl\Services\UserService
47+ * @var \Pterodactyl\Services\Users\CreationService
4548 */
46- protected $ service ;
49+ protected $ creationService ;
4750
4851 /**
49- * @var \Pterodactyl\Models\User
52+ * @var \Pterodactyl\Services\Users\DeletionService
5053 */
51- protected $ model ;
54+ protected $ deletionService ;
5255
5356 /**
5457 * @var \Pterodactyl\Contracts\Repository\UserRepositoryInterface
5558 */
5659 protected $ repository ;
5760
61+ /**
62+ * @var \Illuminate\Contracts\Translation\Translator
63+ */
64+ protected $ translator ;
65+
66+ /**
67+ * @var \Pterodactyl\Services\Users\UpdateService
68+ */
69+ protected $ updateService ;
70+
5871 /**
5972 * UserController constructor.
6073 *
6174 * @param \Prologue\Alerts\AlertsMessageBag $alert
62- * @param \Pterodactyl\Services\UserService $service
75+ * @param \Pterodactyl\Services\Users\CreationService $creationService
76+ * @param \Pterodactyl\Services\Users\DeletionService $deletionService
77+ * @param \Illuminate\Contracts\Translation\Translator $translator
78+ * @param \Pterodactyl\Services\Users\UpdateService $updateService
6379 * @param \Pterodactyl\Contracts\Repository\UserRepositoryInterface $repository
64- * @param \Pterodactyl\Models\User $model
6580 */
6681 public function __construct (
6782 AlertsMessageBag $ alert ,
68- UserService $ service ,
69- UserRepositoryInterface $ repository ,
70- User $ model
83+ CreationService $ creationService ,
84+ DeletionService $ deletionService ,
85+ Translator $ translator ,
86+ UpdateService $ updateService ,
87+ UserRepositoryInterface $ repository
7188 ) {
7289 $ this ->alert = $ alert ;
73- $ this ->service = $ service ;
74- $ this ->model = $ model ;
90+ $ this ->creationService = $ creationService ;
91+ $ this ->deletionService = $ deletionService ;
7592 $ this ->repository = $ repository ;
93+ $ this ->translator = $ translator ;
94+ $ this ->updateService = $ updateService ;
7695 }
7796
7897 /**
7998 * Display user index page.
8099 *
81- * @param \Illuminate\Http\Request $request
100+ * @param \Illuminate\Http\Request $request
82101 * @return \Illuminate\View\View
83102 */
84103 public function index (Request $ request )
85104 {
86105 $ users = $ this ->repository ->search ($ request ->input ('query ' ))->getAllUsersWithCounts ();
87106
88- return view ('admin.users.index ' , [
89- 'users ' => $ users ,
90- ]);
107+ return view ('admin.users.index ' , ['users ' => $ users ]);
91108 }
92109
93110 /**
@@ -103,21 +120,19 @@ public function create()
103120 /**
104121 * Display user view page.
105122 *
106- * @param \Pterodactyl\Models\User $user
123+ * @param \Pterodactyl\Models\User $user
107124 * @return \Illuminate\View\View
108125 */
109126 public function view (User $ user )
110127 {
111- return view ('admin.users.view ' , [
112- 'user ' => $ user ,
113- ]);
128+ return view ('admin.users.view ' , ['user ' => $ user ]);
114129 }
115130
116131 /**
117132 * Delete a user from the system.
118133 *
119- * @param \Illuminate\Http\Request $request
120- * @param \Pterodactyl\Models\User $user
134+ * @param \Illuminate\Http\Request $request
135+ * @param \Pterodactyl\Models\User $user
121136 * @return \Illuminate\Http\RedirectResponse
122137 *
123138 * @throws \Exception
@@ -126,34 +141,27 @@ public function view(User $user)
126141 public function delete (Request $ request , User $ user )
127142 {
128143 if ($ request ->user ()->id === $ user ->id ) {
129- throw new DisplayException (' Cannot delete your own account. ' );
144+ throw new DisplayException ($ this -> translator -> trans ( ' admin/user.exceptions.user_has_servers ' ) );
130145 }
131146
132- try {
133- $ this ->repository ->deleteIfNoServers ($ user ->id );
134-
135- return redirect ()->route ('admin.users ' );
136- } catch (DisplayException $ ex ) {
137- $ this ->alert ->danger ($ ex ->getMessage ())->flash ();
138- }
147+ $ this ->deletionService ->handle ($ user );
139148
140149 return redirect ()->route ('admin.users.view ' , $ user ->id );
141150 }
142151
143152 /**
144153 * Create a user.
145154 *
146- * @param \Pterodactyl\Http\Requests\Admin\UserFormRequest $request
155+ * @param \Pterodactyl\Http\Requests\Admin\UserFormRequest $request
147156 * @return \Illuminate\Http\RedirectResponse
148157 *
149158 * @throws \Exception
150159 * @throws \Throwable
151160 */
152161 public function store (UserFormRequest $ request )
153162 {
154- $ user = $ this ->service ->create ($ request ->normalize ());
155-
156- $ this ->alert ->success ('Account has been successfully created. ' )->flash ();
163+ $ user = $ this ->creationService ->handle ($ request ->normalize ());
164+ $ this ->alert ->success ($ this ->translator ->trans ('admin/user.notices.account_created ' ))->flash ();
157165
158166 return redirect ()->route ('admin.users.view ' , $ user ->id );
159167 }
@@ -169,8 +177,8 @@ public function store(UserFormRequest $request)
169177 */
170178 public function update (UserFormRequest $ request , User $ user )
171179 {
172- $ this ->service -> update ($ user ->id , $ request ->normalize ());
173- $ this ->alert ->success (' User account has been updated. ' )->flash ();
180+ $ this ->updateService -> handle ($ user ->id , $ request ->normalize ());
181+ $ this ->alert ->success ($ this -> translator -> trans ( ' admin/user.notices.account_updated ' ) )->flash ();
174182
175183 return redirect ()->route ('admin.users.view ' , $ user ->id );
176184 }
0 commit comments