44
55use Alert ;
66use Mail ;
7+ use Log ;
78use Pterodactyl \Models \User ;
89use Pterodactyl \Repositories \UserRepository ;
910use Pterodactyl \Models \Server ;
@@ -40,7 +41,14 @@ public function getNew(Request $request)
4041
4142 public function getView (Request $ request , $ id )
4243 {
43- return view ('admin.accounts.view ' , ['user ' => User::findOrFail ($ id ), 'servers ' => Server::where ('owner ' , $ id )->first ()]);
44+ return view ('admin.accounts.view ' , [
45+ 'user ' => User::findOrFail ($ id ),
46+ 'servers ' => Server::select ('servers.* ' , 'nodes.name as nodeName ' , 'locations.long as location ' )
47+ ->join ('nodes ' , 'servers.node ' , '= ' , 'nodes.id ' )
48+ ->join ('locations ' , 'nodes.location ' , '= ' , 'locations.id ' )
49+ ->where ('active ' , 1 )
50+ ->get (),
51+ ]);
4452 }
4553
4654 public function getDelete (Request $ request , $ id )
@@ -55,22 +63,23 @@ public function getDelete(Request $request, $id)
5563 public function postNew (Request $ request )
5664 {
5765 $ this ->validate ($ request , [
58- 'username ' => 'required|min:4|unique:users,username ' ,
5966 'email ' => 'required|email|unique:users,email ' ,
60- 'password ' => 'required|confirmed|regex:((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}) ' ,
61- 'password_confirmation ' => 'required '
67+ 'password ' => 'required|confirmed|regex:((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}) '
6268 ]);
6369
6470 try {
65-
6671 $ user = new UserRepository ;
6772 $ userid = $ user ->create ($ request ->input ('username ' ), $ request ->input ('email ' ), $ request ->input ('password ' ));
6873
74+ if (!$ userid ) {
75+ throw new \Exception ('Unable to create user, response was not an integer. ' );
76+ }
77+
6978 Alert::success ('Account has been successfully created. ' )->flash ();
7079 return redirect ()->route ('admin.accounts.view ' , ['id ' => $ userid ]);
71-
7280 } catch (\Exception $ e ) {
73- Alert::danger ('An error occured while attempting to add a new user. Please check the logs or try again. ' )->flash ();
81+ Log::error ($ e );
82+ Alert::danger ('An error occured while attempting to add a new user. ' . $ e ->getMessage ())->flash ();
7483 return redirect ()->route ('admin.accounts.new ' );
7584 }
7685
@@ -81,38 +90,40 @@ public function postUpdate(Request $request)
8190 $ this ->validate ($ request , [
8291 'email ' => 'required|email|unique:users,email, ' .$ request ->input ('user ' ),
8392 'root_admin ' => 'required ' ,
84- 'password ' => 'required_with:password_confirmation ' ,
93+ 'password ' => 'required_with:password_confirmation|confirmed ' ,
8594 'password_confirmation ' => 'required_with:password '
8695 ]);
8796
8897 try {
8998
9099 $ users = new UserRepository ;
91- $ user = [];
92-
93- $ user [ ' email ' ] = $ request ->input ('email ' );
94- $ user [ ' root_admin ' ] = $ request -> input ( ' root_admin ' ) ;
100+ $ user = [
101+ ' email ' => $ request -> input ( ' email ' ),
102+ ' root_admin ' => $ request ->input ('root_admin ' )
103+ ] ;
95104
96105 if (!empty ($ request ->input ('password ' ))) {
97106 $ user ['password ' ] = $ request ->input ('password ' );
98107 }
99108
100- $ users ->update ($ request ->input ('user ' ), $ user );
109+ if (!$ users ->update ($ request ->input ('user ' ), $ user )) {
110+ throw new \Exception ('Unable to update user, response was not valid. ' );
111+ }
101112
102- } catch (\Exception $ e ) {
103- Alert::danger ('An error occured while attempting to update a user. Please check the logs or try again. ' )->flash ();
113+ if ($ request ->input ('email_user ' )) {
114+ Mail::send ('emails.new_password ' , ['user ' => User::findOrFail ($ request ->input ('user ' )), 'password ' => $ request ->input ('password ' )], function ($ message ) use ($ request ) {
115+ $ message ->to ($ request ->input ('email ' ))->subject ('Pterodactyl - Admin Reset Password ' );
116+ });
117+ }
118+
119+ Alert::success ('User account was successfully updated. ' )->flash ();
104120 return redirect ()->route ('admin.accounts.view ' , ['id ' => $ request ->input ('user ' )]);
105- }
106121
107- if ( $ request -> input ( ' email_user ' ) ) {
108- Mail:: send ( ' emails.new_password ' , [ ' user ' => User:: findOrFail ( $ request -> input ( ' user ' )), ' password ' => $ request -> input ( ' password ' )], function ( $ message ) use ( $ request ) {
109- $ message -> to ( $ request -> input ( ' email ' ))->subject ( ' Pterodactyl - Admin Reset Password ' );
110- } );
122+ } catch ( \ Exception $ e ) {
123+ Log:: error ( $ e );
124+ Alert:: danger ( ' An error occured while attempting to update this user. ' . $ e -> getMessage ( ))->flash ( );
125+ return redirect ()-> route ( ' admin.accounts.view ' , [ ' id ' => $ request -> input ( ' user ' )] );
111126 }
112-
113- Alert::success ('A user was successfully updated. ' )->flash ();
114- return redirect ()->route ('admin.accounts.view ' , ['id ' => $ request ->input ('user ' )]);
115-
116127 }
117128
118129}
0 commit comments