PageRenderTime 51ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/lib/Cake/Controller/Component/Auth/FormAuthenticate.php

https://bitbucket.org/udeshika/fake_twitter
PHP | 68 lines | 22 code | 5 blank | 41 comment | 2 complexity | 8542e37bbb53ae88ae59033192caa8f7 MD5 | raw file
  1. <?php
  2. /**
  3. * PHP 5
  4. *
  5. * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
  6. * Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
  7. *
  8. * Licensed under The MIT License
  9. * Redistributions of files must retain the above copyright notice.
  10. *
  11. * @copyright Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
  12. * @link http://cakephp.org CakePHP(tm) Project
  13. * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
  14. */
  15. App::uses('BaseAuthenticate', 'Controller/Component/Auth');
  16. /**
  17. * An authentication adapter for AuthComponent. Provides the ability to authenticate using POST
  18. * data. Can be used by configuring AuthComponent to use it via the AuthComponent::$authenticate setting.
  19. *
  20. * {{{
  21. * $this->Auth->authenticate = array(
  22. * 'Form' => array(
  23. * 'scope' => array('User.active' => 1)
  24. * )
  25. * )
  26. * }}}
  27. *
  28. * When configuring FormAuthenticate you can pass in settings to which fields, model and additional conditions
  29. * are used. See FormAuthenticate::$settings for more information.
  30. *
  31. * @package Cake.Controller.Component.Auth
  32. * @since 2.0
  33. * @see AuthComponent::$authenticate
  34. */
  35. class FormAuthenticate extends BaseAuthenticate {
  36. /**
  37. * Authenticates the identity contained in a request. Will use the `settings.userModel`, and `settings.fields`
  38. * to find POST data that is used to find a matching record in the `settings.userModel`. Will return false if
  39. * there is no post data, either username or password is missing, of if the scope conditions have not been met.
  40. *
  41. * @param CakeRequest $request The request that contains login information.
  42. * @param CakeResponse $response Unused response object.
  43. * @return mixed. False on login failure. An array of User data on success.
  44. */
  45. public function authenticate(CakeRequest $request, CakeResponse $response) {
  46. $userModel = $this->settings['userModel'];
  47. list($plugin, $model) = pluginSplit($userModel);
  48. $fields = $this->settings['fields'];
  49. if (empty($request->data[$model])) {
  50. return false;
  51. }
  52. if (
  53. empty($request->data[$model][$fields['username']]) ||
  54. empty($request->data[$model][$fields['password']])
  55. ) {
  56. return false;
  57. }
  58. return $this->_findUser(
  59. $request->data[$model][$fields['username']],
  60. $request->data[$model][$fields['password']]
  61. );
  62. }
  63. }