onunix

onunix

aaaa

  • 财富值1145
  • 威望值0
  • 总积分1145

个人信息

  • 那排列错误的问题如何解决呢?参见图中,中文化后,排列就错乱了。

  • 发布了话题
    请问中文化为什么会导致排列错误
  • 呵呵,可能我没有说清楚,这个我是知道的,但是我发现里面内置了两个角色,1个是Administrator,1个是Authority,这两个角色分别是干什么用的呢?还有, 里面内置的2个operation : Edit User和Edit Post有什么区别

  • 发布了话题
    srbac内置的 task,operation,role的含义
  • 多谢,我知道了...

  • 多谢,但是似乎还要加点东西
    1:在main.php中只设置

    'userclass'=>'User', //default: User
    'userid'=>'user_ID', //default: userid
    'username'=>'username', //default:username
    

    没有设置密码的对应关系,那是否存在问题啊?这个地方 $user->validatePassword($this->password) 能行吗?

    2:按照你的修改后,提示如下错误:

    PHP warning
    include(Member.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory 
    
    D:\skill\finance\yii-1.1.10.r3566\framework\YiiBase.php(418)
    
    406                 {
    407                     foreach(self::$_includePaths as $path)
    408                     {
    409                         $classFile=$path.DIRECTORY_SEPARATOR.$className.'.php';
    410                         if(is_file($classFile))
    411                         {
    412                             include($classFile);
    413                             break;
    414                         }
    415                     }
    416                 }
    417                 else
    418                     include($className.'.php');
    
  • 是的,应该这样,因为用户名和用户ID放在User表中,自动生成了model\User.php和UserController.php,我应该在model\User.php中增加一个方法 getIDByUsername(),然后在UserIdentity文件里,调用model\User.php中的 getIDByUsername(),思路是否应该这样?

    还是应该:

    在UserController.php里面也增加一个 getIDByUsername(),方法,然后在UserIdentity文件里getId()方法中,调用UserController.php里的getIDByUsername()方法?

  • 如何继续查userid不正确的根源呢?请教下各位,我不知道该如何继续查下去了。

  • 问题确实就在这了
    我写成

    public function checkAccess($itemName, $userId, $params=array()) {
        if (!empty($this->defaultRoles) && in_array($itemName,$this->defaultRoles)) {
          return true;
        }
        
        $sql = "SELECT name, type, description, t1.bizrule, t1.data, t2.bizrule AS bizrule2, t2.data AS data2 FROM {$this->itemTable} t1, {$this->assignmentTable} t2 WHERE name=itemname AND userid=:userid";
        $command = $this->db->createCommand($sql);
         $userId = 1;//关键是这里,
        $command->bindValue(':userid', $userId);
        Yii::trace('itemName is '.$itemName);
        Yii::trace('userid is '.$userId);
       
        
        // check directly assigned items
        $names = array();
        foreach ($command->queryAll() as $row) {
           Yii::trace('Checking permission "' . $row['name'] . '"', 'system.web.auth.CDbAuthManager');
          if ($this->executeBizRule($row['bizrule2'], $params, unserialize($row['data2']))
            && $this->executeBizRule($row['bizrule'], $params, unserialize($row['data']))) {
            if (strtolower($row['name']) === strtolower($itemName)) {
              return true;
            }
            $names[] = $row['name'];
          }
        }
    

    就OK了,为什么userid的值错误了呢,userid不应该为 'admin‘,应该为1

经理 等级规则
1145/2000
资料完整度
60/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

2

Ta的访客

3