/**
  * makeSupperUser 
  *
  * 创建超极管理员
  * 
  * @param mixed $uname 
  * @param mixed $pwd 
  * @return bool
  */
 public static function initSupperUser($uname, $pwd)
 {
     $user = new User();
     $userInfo = $user->getUserWithRole('uname=:name', array(':name' => $uname));
     if (empty($userInfo)) {
         // make user
         $user->uname = $uname;
         $user->email = '';
         $user->pwd = $pwd;
         $user->rid = 0;
         $user->save();
     }
     // make role
     $role = new Role();
     $rname = 'superman';
     $roleInfo = $role->find('rname=:name', array(':name' => $rname));
     if (empty($roleInfo)) {
         $params = array('name' => $rname, 'actions' => array());
         $action = new Action();
         $actionList = $action->findAll();
         foreach ($actionList as $k => $v) {
             $params['actions'][] = $v['aid'];
         }
         $role->saveRole($params);
         // save rid
         $userInfo = $user->getUserWithRole('uname=:name', array(':name' => $uname));
         $roleInfo = $role->find('rname=:name', array(':name' => $rname));
         $user->updateByPk($userInfo[0]['uid'], array('uname' => $uname, 'email' => '', 'pwd' => $pwd, 'rid' => $roleInfo['rid']));
     } else {
         $params = array('id' => $roleInfo['rid'], 'name' => $rname, 'actions' => array());
         $action = new Action();
         $actionList = $action->findAll();
         foreach ($actionList as $k => $v) {
             $params['actions'][] = $v['aid'];
         }
         $role->updateRole($params);
     }
     return true;
 }
 public function actionEdit()
 {
     //echo "<pre>";var_dump($_REQUEST);exit;
     $usr = new User();
     $role = new Role();
     $usrInfo = array();
     $label = '';
     foreach ($_REQUEST as $k => $v) {
         $_REQUEST[$k] = trim($v);
     }
     // 获取role列表
     $roleInfos = $role->findAll(array('select' => 'rid,rname'));
     // 过滤超极管理员
     foreach ($roleInfos as $role) {
         if ($role['rname'] != 'superman') {
             $roles[] = $role;
         }
     }
     // var_dump($_REQUEST); exit;
     //
     if (isset($_REQUEST['id']) && $_REQUEST['id'] != '') {
         // 修改
         $usrInfo = $usr->getUserWithRole('uid=:uid', array(':uid' => $_REQUEST['id']));
         $usrInfo = $usrInfo[0];
         if (isset($_REQUEST['modify'])) {
             $usr->updateByPk($_REQUEST['id'], array('uname' => $_REQUEST['name'], 'email' => $_REQUEST['email'], 'pwd' => Login::pwdEncry($_REQUEST['pwd']), 'rid' => $_REQUEST['rid']));
             $this->redirect('/main/user/list');
         }
     } elseif (!empty($_REQUEST['name'])) {
         // 新增
         $usrInfo = $usr->getUserWithRole('uname=:name', array(':name' => $_REQUEST['name']));
         //var_dump($usrInfo);exit;
         if (!empty($usrInfo)) {
             $this->render('edit', array('roles' => $roles, 'entity' => $usrInfo[0], 'label' => 'has_usr'));
             exit;
         }
         if (isset($_REQUEST['modify'])) {
             $usr->uname = $_REQUEST['name'];
             $usr->email = $_REQUEST['email'];
             $usr->pwd = Login::pwdEncry($_REQUEST['pwd']);
             $usr->rid = $_REQUEST['rid'];
             $usr->save();
             $this->redirect('/main/user/list');
         }
     }
     $this->render('edit', array('entity' => $usrInfo, 'roles' => $roles, 'label' => $label));
 }
Example #3
0
 public static function getUsersWithRole($role)
 {
     return User::getUserWithRole($role->{$roleID});
 }