コード例 #1
0
ファイル: Ctrl.php プロジェクト: hillstill/sooh
 /**
  * 
  * @return Ctrl
  */
 public static function getInstance()
 {
     if (self::$_instance === null) {
         $cc = get_called_class();
         self::$_instance = new $cc();
         self::$_instance->allMenu = self::$_instance->initMenu();
         foreach (self::$_instance->allMenu as $k => $r) {
             if (is_array($r[3])) {
                 self::$_instance->allMenu[$k][3] = \Sooh\Base\Tools::uri($r[3], $r[2], $r[1], $r[0]);
             }
         }
     }
     return self::$_instance;
 }
コード例 #2
0
ファイル: Manager.php プロジェクト: hillstill/soohyaf
 protected function _frame()
 {
     $acl = \Sooh\DB\Acl\Acl::getInstance();
     if ($this->_request->get('__LOGOUT__') == 1) {
         //登出
         $this->_view->assign('useTpl', 'logout');
         $acl->logout();
         return;
     }
     $isLogined = $acl->isLogined();
     $username = $this->_request->get('u');
     $password = $this->_request->get('p');
     //$returnUrl = $this->_request->get('returnUrl',$_SESSION['returnUrl']);
     //if(empty($returnUrl))	$returnUrl=\Sooh\Base\Tools::uri();
     $this->_view->assign('returnUrl', \Sooh\Base\Tools::uri());
     if (!empty($username) && !empty($password)) {
         try {
             $camefrom = $this->_request->get('camefrom', 'Jym');
             $acl->login($username, $password, 3600, $camefrom);
             $account = $acl->getAclManager()->getAccount($username, $camefrom);
             $acl->setSessionVal('nickname', $account['nickname']);
             //				if($this->_request->get('__ONLY__')!=='body'){
             //					$this->_view->assign ('statusCode', '200');
             ////					$this->_view->assign ('callbackType', 'forward');
             //					return;
             //				}else{
             $this->_view->assign('statusCode', '200');
             //					return;
             //				}
         } catch (\ErrorException $e) {
             $this->_view->assign('statusCode', '300');
             $this->_view->assign('message', '登入失败:' . $e->getMessage());
             //return;
         }
     } else {
         if ($isLogined) {
             $menu = $acl->menu();
             $this->_view->assign('menuleft', $menu);
             $this->_view->assign('useTpl', 'frame');
         } else {
             $this->_view->assign('useTpl', $this->_request->get('__ONLY__') === 'body' ? 'login_withouthead' : 'login_withhead');
         }
     }
 }
コード例 #3
0
ファイル: AclSession.php プロジェクト: hillstill/sooh
 /**
  * @return string
  */
 public function urlLogin()
 {
     return \Sooh\Base\Tools::uri(null, 'login', 'index');
 }
コード例 #4
0
ファイル: Managers.php プロジェクト: hillstill/soohyaf
 /**
  * 重置某账号密码
  */
 public function pwdresetAction()
 {
     $frm = \Sooh\Base\Form\Broker::getCopy('default')->init(\Sooh\Base\Tools::uri(), 'post', \Sooh\Base\Form\Broker::type_c);
     //$frm->addItem('camefrom', form_def::factory('', 'local', form_def::constval));
     $frm->addItem('loginname', form_def::factory('账号', '', form_def::constval));
     $frm->addItem('nickname', form_def::factory('昵称', '', form_def::text));
     $frm->addItem('passwd', form_def::factory('新密码', '', form_def::text));
     $this->_view->assign('FormOp', $op = '修改');
     $frm->addItem('_pkey_val', '');
     $frm->fillValues($this->getInputs());
     $where = \Lib\Misc\DWZ::decodePkey($this->_request->get('_pkey_val'));
     if ($frm->flgIsThisForm) {
         //submit
         try {
             $fields = $frm->getFields();
             $manager = \Prj\Data\Manager::getCopy($where['loginname'], $where['camefrom']);
             $manager->load();
             $ret = $manager->resetPWD($fields['passwd'], array('nickname' => $fields['nickname']));
             if ($ret) {
                 $this->returnOK('密码已重置为: ' . $fields['passwd']);
             } else {
                 $this->returnError('密码重置失败');
             }
             $this->closeAndReloadPage();
         } catch (\ErrorException $e) {
             $this->returnError('密码重置失败:' . $e->getMessage());
         }
     } else {
         //show form
         if (!empty($where)) {
             $manager = \Prj\Data\Manager::getCopy($where['loginname'], $where['camefrom']);
             $manager->load();
             $fields = $manager->dump();
             $ks = array('loginname', 'nickname');
             foreach ($ks as $k) {
                 if (isset($fields[$k]) && is_object($frm->items[$k])) {
                     $frm->item($k)->value = $fields[$k];
                 }
             }
             $frm->items['_pkey_val'] = \Lib\Misc\DWZ::encodePkey(array('camefrom' => $where['camefrom'], 'loginname' => $where['loginname']));
         } else {
             $this->returnError('unknown manager');
         }
     }
 }