Example #1
0
 public function beforeInvoke()
 {
     Ajde_Cache::getInstance()->disable();
     $this->_providername = Ajde::app()->getRequest()->getParam('provider', false);
     $sso = config('ssoProviders');
     if (!$this->_providername || !in_array($this->_providername, $sso)) {
         Ajde_Http_Response::redirectNotFound();
     }
     $classname = 'Ajde_User_Sso_' . ucfirst($this->_providername);
     $this->_provider = new $classname();
     return parent::beforeInvoke();
 }
Example #2
0
File: Crud.php Project: nabble/ajde
 /**
  * @return Ajde_Model
  */
 public function getItem()
 {
     if ($this->isNew()) {
         $this->fireCrudLoadedOnModel($this->getModel());
         return $this->getModel();
     }
     if (!$this->getModel()->getPK()) {
         $model = $this->getModel();
         if (!$model->loadByPK($this->getId())) {
             Ajde_Http_Response::redirectNotFound();
         } else {
             if (!$model->getAutoloadParents()) {
                 $model->loadParents();
             }
         }
         $this->fireCrudLoadedOnModel($this->getModel());
     }
     return $this->getModel();
 }
Example #3
0
 public function registerJson()
 {
     $user = new UserModel();
     $returnto = Ajde::app()->getRequest()->getPostParam('returnto', false);
     $username = Ajde::app()->getRequest()->getPostParam($user->usernameField);
     $password = Ajde::app()->getRequest()->getPostParam('password', '');
     $passwordCheck = Ajde::app()->getRequest()->getPostParam('passwordCheck', '');
     $providername = Ajde::app()->getRequest()->getPostParam('provider', false);
     $email = Ajde::app()->getRequest()->getPostParam('email', false);
     $fullname = Ajde::app()->getRequest()->getPostParam('fullname', false);
     $return = [false];
     $shadowUser = new UserModel();
     $provider = false;
     if ($providername) {
         $sso = config('user.sso.providers');
         if (!in_array($providername, $sso)) {
             Ajde_Http_Response::redirectNotFound();
         }
         $classname = 'Ajde_User_Sso_' . ucfirst($providername);
         /* @var $provider Ajde_User_SSO_Interface */
         $provider = new $classname();
     }
     if (empty($username)) {
         $return = ['success' => false, 'message' => trans('Please provide a ' . $user->usernameField . '')];
     } else {
         if (!$provider && empty($password)) {
             $return = ['success' => false, 'message' => trans('Please provide a password')];
         } else {
             if ($shadowUser->loadByField($shadowUser->usernameField, $username)) {
                 $return = ['success' => false, 'message' => trans(ucfirst($user->usernameField) . ' already exist')];
             } else {
                 if (!$provider && $password !== $passwordCheck) {
                     $return = ['success' => false, 'message' => trans('Passwords do not match')];
                 } else {
                     if (empty($email)) {
                         $return = ['success' => false, 'message' => trans('Please provide an e-mail address')];
                     } else {
                         if (Ajde_Component_String::validEmail($email) === false) {
                             $return = ['success' => false, 'message' => trans('Please provide a valid e-mail address')];
                         } else {
                             if ($shadowUser->loadByField('email', $email)) {
                                 $return = ['success' => false, 'message' => trans('A user with this e-mail address already exist')];
                             } else {
                                 if (empty($fullname)) {
                                     $return = ['success' => false, 'message' => trans('Please provide a full name')];
                                 } else {
                                     if ($provider && !$provider->getData()) {
                                         $return = ['success' => false, 'message' => trans('Something went wrong with fetching your credentials from an external service')];
                                     } else {
                                         $user->set('email', $email);
                                         $user->set('fullname', $fullname);
                                         if ($user->add($username, $password)) {
                                             if ($provider) {
                                                 $sso = new SsoModel();
                                                 $sso->populate(['user' => $user->getPK(), 'provider' => $providername, 'username' => $provider->getUsernameSuggestion(), 'avatar' => $provider->getAvatarSuggestion(), 'profile' => $provider->getProfileSuggestion(), 'uid' => $provider->getUidHash(), 'data' => serialize($provider->getData())]);
                                                 $sso->insert();
                                                 $user->copyAvatarFromSso($sso);
                                             }
                                             $user->login();
                                             $user->storeCookie($this->includeDomain);
                                             Ajde_Session_Flash::alert(sprintf(trans('Welcome %s, you are now logged in'), $fullname));
                                             $return = ['success' => true, 'returnto' => $returnto];
                                         } else {
                                             $return = ['success' => false, 'message' => trans('Something went wrong')];
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return $return;
 }
Example #4
0
 public static function routingError(Exception $exception)
 {
     if (config('app.debug') === true) {
         throw $exception;
     } else {
         if (class_exists('Ajde_Exception_Log')) {
             Ajde_Exception_Log::logException($exception);
         }
         Ajde_Http_Response::redirectNotFound();
     }
 }
 public static function routingError(Ajde_Exception $exception)
 {
     if (Config::get("debug") === true) {
         throw $exception;
     } else {
         Ajde_Exception_Log::logException($exception);
         Ajde_Http_Response::redirectNotFound();
     }
 }