/** * 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!']; }
/** * 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); }