Overview

Namespaces

  • Cron
  • None

Classes

  • _HtmlGrid_TableOut
  • _TransactionModel_RawSaveOperation
  • AccessControlComponent
  • AccessControlHelper
  • ActionListHelper
  • ActiveDirectoryUtils
  • AddCurrentPidToSchedulingShellCallLogs
  • AnonymousFunctionOperation
  • ArrayUtil
  • AssociationIntegrityBehavior
  • AtomicOperation
  • AuthenticationComponent
  • AuthenticationController
  • AuthenticationUser
  • AutocompleteDatasourceComponent
  • BaseModelComponent
  • Basics
  • CakeLayersHelper
  • CheckAndRunShell
  • ClassSearcher
  • CommandLineUtil
  • CommonValidationBehavior
  • ConfigurableShellCallsSchedulingTask
  • ConfigurationKey
  • ConfigurationKeys
  • ConfigurationKeysController
  • Context
  • ContextComponent
  • ContextHelper
  • Contexts
  • ControllerInspector
  • ControllerMenuHelper
  • CreateJournalingTables
  • CreateTableConfigurationKeys
  • CreateTableSchedulingConfigurableShellCalls
  • CreateTableSchedulingShellCallLogs
  • CreateTableSettedConfigurationKeys
  • CreateTableUserResetPasswordRequests
  • CreateTableUsers
  • CronSchedulingInstaller
  • CronValidationBehavior
  • CssBox
  • CssController
  • CssProperties
  • CssShell
  • CsvUtil
  • CustomDataModel
  • DatasourceDumperManager
  • DateTimeInput
  • DependencyShell
  • DetailHelper
  • DumperShell
  • ExtendedFieldsAccessControl
  • ExtendedFieldSet
  • ExtendedFieldSetHelper
  • ExtendedFieldsParser
  • ExtendedFormHelper
  • ExtendedHasManyAppModel
  • ExtendedOperationsBehavior
  • FieldDefinition
  • FieldRowDefinition
  • FieldSetDefinition
  • FieldSetLayoutHelper
  • FileOperations
  • FileOperations_Rename
  • FileOperations_SymLink
  • FileOperations_Touch
  • FileOperations_Unlink
  • FileSystem
  • FixConfigurationKeysPrimaryKey
  • FixSettedConfigurationKeysPrimaryKey
  • HasManyUtilsBehavior
  • HtmlDocument
  • HtmlGrid
  • HtmlGrid_Cell
  • HttpClient
  • HttpResponse
  • ImapClient
  • ImapMailBox
  • ImapParserShell
  • IncludePath
  • InputMasked
  • InputSearchable
  • InputsOnSubmit
  • InstallShell
  • JenkinsBuildShell
  • Journal
  • JournalDetail
  • JournalizedBehavior
  • JsonResponseComponent
  • LayoutsHelper
  • Ldap
  • LdapUtils
  • ListFieldSet
  • ListFieldSetHelper
  • ListsHelper
  • MailParser
  • Make
  • MenuHelper
  • MigrationAllPluginsShell
  • ModelOperations
  • ModelOperations_Delete
  • ModelOperations_Save
  • ModelTraverser
  • MysqlDumper
  • OpenLdapUtils
  • PaginatorUtilComponent
  • PaginatorUtilComponentFilter
  • PaginatorUtilHelper
  • Plugin
  • PluginManager
  • Reflections
  • RenameEnabledToActiveFromUsersTable
  • RunShellCallShell
  • ScaffoldUtilComponent
  • ScaffoldUtilHelper
  • Scheduling
  • SchedulingConfigurableShellCall
  • SchedulingConfigurableShellCallsController
  • SchedulingShellCallLog
  • SchedulingShellCallLogsController
  • SettedConfigurationKey
  • StuffreposPluginsRename
  • TimeZoneBehavior
  • TransactionModel
  • TransactionOperation
  • Translator
  • TranslatorShell
  • User
  • UserAuthenticationComponent
  • UserChangePassword
  • UserResetPassword
  • UserResetPasswordRequest
  • UserResetPasswordRequestSubmission
  • UsersController
  • ViewUtilHelper

Interfaces

  • AccessControlFilter
  • CommitableOperation
  • DatasourceDumper
  • MakeListener
  • SchedulingInstaller
  • TasksObject
  • UndoableOperation

Exceptions

  • LdapObjectNotWritableException
  • ModelTraverserException
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: 
  3: App::uses('CakeEmail', 'Network/Email');
  4: 
  5: class AuthenticationController extends AppController {
  6: 
  7:     public $uses = array(
  8:         'Authentication.AuthenticationUser',
  9:         'Authentication.UserChangePassword',
 10:         'Authentication.UserResetPassword',
 11:         'Authentication.UserResetPasswordRequest',
 12:         'Authentication.UserResetPasswordRequestSubmission',
 13:     );
 14:     public $components = array(
 15:         'Session',
 16:         'ExtendedScaffold.ScaffoldUtil',
 17:     );
 18:     public function login() {
 19:         if ($this->request->is('post')) {
 20:             if ($this->Auth->login()) {
 21:                 return $this->redirect($this->Auth->redirect());
 22:             } else {
 23:                 $this->Session->setFlash(__d('authentication','Username or password is incorrect'), 'default', array(), 'auth');
 24:             }
 25:         }
 26:     }
 27: 
 28:     public function logout() {
 29:         $this->redirect($this->Auth->logout());
 30:     }
 31:     
 32:     public function change_password() {
 33:         if ($this->request->isPost()) {
 34:             $this->request->data[$this->UserChangePassword->alias]['user_id'] = $this->Authentication->userId();
 35:             if ($this->UserChangePassword->save($this->data)) {
 36:                 $this->flash('Senha alterada', $this->ScaffoldUtil->referer());
 37:             }
 38:         }
 39:     }
 40: 
 41:     public function reset_password($chave) {
 42:         $request = $this->UserResetPasswordRequest->findByChave($chave);
 43:         $user = $this->AuthenticationUser->findById(
 44:                 $request['UserResetPasswordRequest']['user_id']
 45:         );
 46:         
 47:         $errorMessage = false;
 48:         if (empty($request)) {
 49:             $errorMessage = 'Não foi encontrada uma requisição de reset de senha com a chave informada.';
 50:         } else if ($request['UserResetPasswordRequest']['usado']) {
 51:             $errorMessage = 'A requisição de reset de senha indicada pela chave já foi utilizada anteriormente.';
 52:         } else if ($this->UserResetPasswordRequest->expired($request)) {
 53:             $errorMessage = 'A requisição de reset de senha indicada pela chave expirou.';
 54:         } else if (empty($user)) {
 55:             $errorMessage = 'Usuário não encontrado.';
 56:         } else if (!$user['AuthenticationUser']['active']) {
 57:             $errorMessage = 'Usuário encontra-se desabilitado no momento. Contate o administrador do sistema.';
 58:         }
 59: 
 60:         if ($errorMessage) {
 61:             $this->flash($errorMessage, array('action' => 'login'));
 62:         } else if ($this->request->isPost()) {
 63:             $this->request->data['UserResetPassword']['user_reset_password_request_id'] =
 64:                     $request['UserResetPasswordRequest']['id'];
 65:             if ($this->UserResetPassword->save($this->request->data)) {
 66:                 $this->flash('Senha resetada', array('action' => 'login'));
 67:             } else {
 68:                 $this->Session->setFlash('Falha ao tentar resetar a senha.');
 69:             }
 70:         }
 71: 
 72:         $this->request->data['UserResetPassword']['username'] = $user['AuthenticationUser']['username'];
 73:     }
 74: 
 75:     public function reset_password_request() {
 76:         if ($this->request->isPost()) {
 77:             $this->UserResetPasswordRequestSubmission->set($this->request->data);
 78:             if ($this->UserResetPasswordRequestSubmission->validates()) {
 79:                 $user = $this->UserResetPasswordRequestSubmission->getUser();
 80:                 $userId = $user['AuthenticationUser']['id'];
 81:                 if ($this->UserResetPasswordRequest->createNewRequest($userId)) {
 82:                     $this->_sendUserResetPasswordRequestMail($this->UserResetPasswordRequest->id);
 83:                     $this->flash("Um email foi enviado para \"{$user['AuthenticationUser']['email']}\" com instruções de como resetar sua senha.", array('action' => 'login'));
 84:                 } else {
 85:                     throw new Exception('Falha ao tentar salvar requisição de reset de senha: ' . print_r($request, true));
 86:                 }
 87:             }
 88:         }
 89:     }
 90: 
 91:     private function _sendUserResetPasswordRequestMail($userResetPasswordRequestId) {
 92:         $userResetPasswordRequest = $this->UserResetPasswordRequest->findById($userResetPasswordRequestId);
 93:         if (empty($userResetPasswordRequest)) {
 94:             throw new Exception("Não foi encontrada uma requisição de reset de senha com id=$userResetPasswordRequestId");
 95:         }
 96: 
 97:         $user = $this->AuthenticationUser->findById(
 98:                 $userResetPasswordRequest['UserResetPasswordRequest']['user_id']
 99:         );
100: 
101:         $email = new CakeEmail('default');
102:         $email->emailFormat('html');
103:         $email->template('Authentication.user_reset_password_request');
104:         $email->to($user['AuthenticationUser']['email']);
105:         $email->subject(__d('authentication','Reset Password Request'));
106:         $email->viewVars(compact('userResetPasswordRequest', 'user'));
107:         $email->send();
108:     }
109: 
110: }
111: 
112: ?>
113: 
API documentation generated by ApiGen 2.8.0