Skip to content

Commit 95a8df6

Browse files
Bug fixes. Minor refactgoring.
1 parent f969481 commit 95a8df6

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

src/ApiBundle/Controller/AuthController.php

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,9 @@ public function getNewClientAction()
119119

120120
$request = $this->container->get('request');
121121

122+
$this->validateAdminUser($request);
122123
$this->validateClientName($request);
123124
$this->validateUrl($request);
124-
$this->validateAdminUser($request);
125125

126126
// Everything ok, now proceed to create the client
127127
$clientManager = $this->container->get('fos_oauth_server.client_manager.default');
@@ -192,11 +192,11 @@ private function validateAdminUser(Request $request) {
192192
if ($encoder->isPasswordValid($user->getPassword(), $password, $user->getSalt())) {
193193
// Not an Admin
194194
if (!in_array('ROLE_ADMIN', $user->getRoles())) {
195-
$this->logAndThrowError(400, 'User is not an Admin: ' . $username, $this->get('translator')->trans('api.show_error_non_admin', array(), 'messages', $request->getLocale()), $request->getLocale());
195+
$this->logAndThrowError(400, 'User ' . $username . ' is not an Admin. Role(s) assigned: ' . implode($user->getRoles(), ', '), $this->get('translator')->trans('api.show_error_non_admin', array(), 'messages', $request->getLocale()), $request->getLocale());
196196
}
197197
} else {
198198
// Password bad
199-
$this->logAndThrowError(400, 'Invalid password: '. $username, $this->get('translator')->trans('api.show_error_password', array(), 'messages', $request->getLocale()), $request->getLocale());
199+
$this->logAndThrowError(400, 'Password does not match: '. $password, $this->get('translator')->trans('api.show_error_password', array(), 'messages', $request->getLocale()), $request->getLocale());
200200
}
201201
} else {
202202
// Username bad
@@ -262,13 +262,7 @@ public function getRegisterAction()
262262
$msg = 'Please check your email to complete the registration.';
263263
} else {
264264
$msg = 'Registration complete. Welcome!';
265-
$oAuthRtn = $this->fetchAccessToken($request->request->get('client_id'),
266-
$request->request->get('client_secret'),
267-
$grantType,
268-
null,
269-
$request->request->get('username'),
270-
$request->request->get('password'),
271-
$request->request->get('scope') );
265+
$oAuthRtn = $this->fetchAccessToken($request, $grantType);
272266
}
273267

274268
$this->logMessage(201, 'User successfully created ' . $request->request->get('username') );
@@ -738,7 +732,7 @@ public function getAccessTokenAction()
738732
$this->logAndThrowError(400, 'Unable to obtain Access Token for missing username/password/clientId/clientSecret.', $this->get('translator')->trans('api.show_error_server_fault', array(), 'messages', $request->getLocale()), $request->getLocale());
739733
}
740734

741-
$oAuthRtn = $this->fetchAccessToken($request, $clientId, $clientSecret, $grantType, null, $username, $password, $scope);
735+
$oAuthRtn = $this->fetchAccessToken($request, $grantType);
742736

743737
$msg = 'Access Token successfully fetched for ' . $username;
744738
$this->logMessage(201, $msg);
@@ -781,7 +775,7 @@ public function getRefreshTokenAction()
781775
$this->logAndThrowError(400, 'Unable to obtain Access Token for missing refresh_token/clientId/clientSecret.', $this->get('translator')->trans('api.show_error_server_fault', array(), 'messages', $request->getLocale()), $request->getLocale());
782776
}
783777

784-
$oAuthRtn = $this->fetchAccessToken($request, $clientId, $clientSecret, $grantType, $refreshToken);
778+
$oAuthRtn = $this->fetchAccessToken($request, $grantType);
785779

786780
$msg = 'Access Token successfully fetched on Refresh Token';
787781
$this->logMessage(201, $msg);
@@ -796,8 +790,20 @@ public function getRefreshTokenAction()
796790
* Fetch oAuth Access Token from oAuth engine.
797791
*
798792
*/
799-
private function fetchAccessToken(Request $request, $clientId, $clientSecret, $grantType, $refreshToken = null, $username = null, $password = null, $scope = null)
793+
private function fetchAccessToken(Request $request, $grantType)
800794
{
795+
$request = $this->container->get('request');
796+
797+
$data = $request->request->all();
798+
799+
$clientId = $data['client_id'];
800+
$clientSecret = $data['client_secret'];
801+
802+
$refreshToken = array_key_exists('refresh_token', $data) ? $data['refresh_token'] : null;
803+
$username = array_key_exists('username', $data) ? $data['username'] : null;
804+
$password = array_key_exists('password', $data) ? $data['password'] : null;
805+
$scope = array_key_exists('scope', $data) ? $data['scope'] : null;
806+
801807
$client = new OAuth2\Client($clientId, $clientSecret);
802808

803809
// This is a common function for both getAccessTokenAction() and getRefreshTokenAction().

0 commit comments

Comments
 (0)