Exemple #1
0
 /**
  * Process login with social
  *
  * @return array
  */
 public function process()
 {
     if ($this->userInfo['first_name'] && $this->userInfo['last_name'] && $this->userInfo['email'] && in_array($this->socialName, self::$socialSupport)) {
         $messageActive = '_ZT_Please Activate Account from Email';
         $messageFailed = '_ZT_System is busy, please try again later!';
         $autoLoginIfAccountExists = CoreOptions::getOptions('social_automatic_' . $this->socialName, 'zcms', 0);
         $sendEmailActivateAccount = CoreOptions::getOptions('social_automatic_' . $this->socialName, 'zcms', 1);
         $this->user = Users::findFirst(['conditions' => 'email = ?0', 'bind' => [$this->userInfo['email']]]);
         $propertyName = 'is_active_' . $this->socialName;
         if ($this->user) {
             if ($this->user->{$propertyName} == 1) {
                 $this->user->loginCurrentUSer();
                 return ['success' => true, 'message' => ''];
             }
             if ($autoLoginIfAccountExists) {
                 $this->_updateLoginWithSocial();
                 $this->user->loginCurrentUSer();
                 return ['success' => true, 'message' => null];
             } else {
                 $ok = $this->_generateActiveAccountWithSocial();
                 if ($ok) {
                     return ['success' => true, 'message' => $messageActive];
                 } else {
                     return ['success' => false, 'message' => $messageFailed];
                 }
             }
         } else {
             $this->user = new Users();
             $this->user->first_name = $this->userInfo['first_name'];
             $this->user->last_name = $this->userInfo['last_name'];
             $this->user->email = $this->userInfo['email'];
             if ($sendEmailActivateAccount) {
                 $ok = $this->_generateActiveAccountWithSocial();
                 if ($ok) {
                     return ['success' => true, 'message' => $messageActive];
                 } else {
                     return ['success' => false, 'message' => $messageFailed];
                 }
             } else {
                 $this->user->is_active = 1;
                 if ($this->user->save()) {
                     $this->user->loginCurrentUSer();
                     return ['success' => true, 'message' => null];
                 } else {
                     return ['success' => false, 'message' => $messageFailed];
                 }
             }
         }
     }
     return ['success' => false, 'message' => '_ZT_Your info invalid, please contact to admin!'];
 }
Exemple #2
0
 /**
  * Auto load module from database
  */
 public function _initModule()
 {
     //Create new cache
     $cache = ZCache::getInstance(ZCMS_APPLICATION);
     CoreOptions::initOrUpdateCacheOptions();
     //Load module
     $registerModules = $cache->get(self::ZCMS_APPLICATION_CACHE_MODULES);
     if ($registerModules === null) {
         /**
          * @var \Phalcon\Db\Adapter\Pdo\Postgresql $db
          */
         $db = $this->getDI()->get('db');
         $query = 'SELECT base_name, class_name, path FROM core_modules WHERE published = 1';
         $modules = $db->fetchAll($query);
         $registerModules = [];
         foreach ($modules as $module) {
             $registerModules[$module['base_name']] = ['className' => $module['class_name'], 'path' => APP_DIR . $module['path']];
         }
         $cache->save(self::ZCMS_APPLICATION_CACHE_MODULES, $registerModules);
     }
     $this->registerModules($registerModules);
 }