2424 */
2525namespace Pterodactyl \Http \Controllers \Base ;
2626
27- use Auth ;
28- use Hash ;
29- use Google2FA ;
30- use Alert ;
31-
32- use Pterodactyl \Models ;
33- use Pterodactyl \Exceptions \DisplayException ;
34-
27+ use Pterodactyl \Models \Server ;
3528use Pterodactyl \Http \Controllers \Controller ;
29+
3630use Illuminate \Http \Request ;
3731
3832class IndexController extends Controller
@@ -55,7 +49,7 @@ public function __construct()
5549 public function getIndex (Request $ request )
5650 {
5751 return view ('base.index ' , [
58- 'servers ' => Models \ Server::getUserServers (10 ),
52+ 'servers ' => Server::getUserServers (10 ),
5953 ]);
6054 }
6155
@@ -71,169 +65,4 @@ public function getPassword(Request $request, $length = 16)
7165 return str_random ($ length );
7266 }
7367
74- /**
75- * Returns Security Management Page.
76- *
77- * @param \Illuminate\Http\Request $request
78- * @return \Illuminate\Contracts\View\View
79- */
80- public function getAccountSecurity (Request $ request )
81- {
82- return view ('base.security ' , [
83- 'sessions ' => Models \Session::where ('user_id ' , Auth::user ()->id )->get ()
84- ]);
85- }
86-
87- /**
88- * Generates TOTP Secret and returns popup data for user to verify
89- * that they can generate a valid response.
90- *
91- * @param \Illuminate\Http\Request $request
92- * @return \Illuminate\Contracts\View\View
93- */
94- public function putAccountTotp (Request $ request )
95- {
96-
97- $ user = $ request ->user ();
98-
99- $ user ->totp_secret = Google2FA::generateSecretKey ();
100- $ user ->save ();
101-
102- return response ()->json ([
103- 'qrImage ' => Google2FA::getQRCodeGoogleUrl (
104- 'Pterodactyl ' ,
105- $ user ->email ,
106- $ user ->totp_secret
107- ),
108- 'secret ' => $ user ->totp_secret
109- ]);
110-
111- }
112-
113- /**
114- * Verifies that 2FA token recieved is valid and will work on the account.
115- *
116- * @param \Illuminate\Http\Request $request
117- * @return \Illuminate\Http\Response
118- */
119- public function postAccountTotp (Request $ request )
120- {
121-
122- if (!$ request ->has ('token ' )) {
123- return response (null , 500 );
124- }
125-
126- $ user = $ request ->user ();
127- if ($ user ->toggleTotp ($ request ->input ('token ' ))) {
128- return response ('true ' );
129- }
130-
131- return response ('false ' );
132-
133- }
134-
135- /**
136- * Disables TOTP on an account.
137- *
138- * @param \Illuminate\Http\Request $request
139- * @return \Illuminate\Http\Response
140- */
141- public function deleteAccountTotp (Request $ request )
142- {
143-
144- if (!$ request ->has ('token ' )) {
145- Alert::danger ('Missing required `token` field in request. ' )->flash ();
146- return redirect ()->route ('account.totp ' );
147- }
148-
149- $ user = $ request ->user ();
150- if ($ user ->toggleTotp ($ request ->input ('token ' ))) {
151- return redirect ()->route ('account.totp ' );
152- }
153-
154- Alert::danger ('The TOTP token provided was invalid. ' )->flash ();
155- return redirect ()->route ('account.totp ' );
156-
157- }
158-
159- /**
160- * Display base account information page.
161- *
162- * @param \Illuminate\Http\Request $request
163- * @return \Illuminate\Contracts\View\View
164- */
165- public function getAccount (Request $ request )
166- {
167- return view ('base.account ' );
168- }
169-
170- /**
171- * Update an account email.
172- *
173- * @param \Illuminate\Http\Request $request
174- * @return \Illuminate\Http\Response
175- */
176- public function postAccountEmail (Request $ request )
177- {
178-
179- $ this ->validate ($ request , [
180- 'new_email ' => 'required|email ' ,
181- 'password ' => 'required '
182- ]);
183-
184- $ user = $ request ->user ();
185-
186- if (!password_verify ($ request ->input ('password ' ), $ user ->password )) {
187- Alert::danger ('The password provided was not valid for this account. ' )->flash ();
188- return redirect ()->route ('account ' );
189- }
190-
191- $ user ->email = $ request ->input ('new_email ' );
192- $ user ->save ();
193-
194- Alert::success ('Your email address has successfully been updated. ' )->flash ();
195- return redirect ()->route ('account ' );
196-
197- }
198-
199- /**
200- * Update an account password.
201- *
202- * @param \Illuminate\Http\Request $request
203- * @return \Illuminate\Http\Response
204- */
205- public function postAccountPassword (Request $ request )
206- {
207-
208- $ this ->validate ($ request , [
209- 'current_password ' => 'required ' ,
210- 'new_password ' => 'required|confirmed|different:current_password|regex:((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}) ' ,
211- 'new_password_confirmation ' => 'required '
212- ]);
213-
214- $ user = $ request ->user ();
215-
216- if (!password_verify ($ request ->input ('current_password ' ), $ user ->password )) {
217- Alert::danger ('The password provided was not valid for this account. ' )->flash ();
218- return redirect ()->route ('account ' );
219- }
220-
221- try {
222- $ user ->setPassword ($ request ->input ('new_password ' ));
223- Alert::success ('Your password has successfully been updated. ' )->flash ();
224- } catch (DisplayException $ e ) {
225- Alert::danger ($ e ->getMessage ())->flash ();
226- }
227-
228- return redirect ()->route ('account ' );
229-
230- }
231-
232- public function getRevokeSession (Request $ request , $ id )
233- {
234- $ session = Models \Session::where ('id ' , $ id )->where ('user_id ' , Auth::user ()->id )->firstOrFail ();
235- $ session ->delete ();
236- return redirect ()->route ('account.security ' );
237- }
238-
23968}
0 commit comments