需要帮助搞清楚hasPermission功能

时间:2015-07-01 14:11:03

标签: php arrays permissions

我正在尝试使用我的用户类中的hasPermission函数,以便我可以对我网站上的用户执行不同的操作。

我在名为' groups'的数据库表中拥有不同的网站权限。我有五个不同的组级别。因此,在我网站的某些页面上,我希望允许具有较高权限级别的高端用户查看其他人无法做到的事情。

我在阅读以下所有这些代码时遇到问题,并且真正弄清楚如何最大化功能并将其用于其目的,除非有人注册时将其分配到组级别1。

用户类

public function hasPermission($key) {
    $group = $this->_db->get('groups', array('id', '=', $this->data()->group));

    if($group->count()) {
        $permissions = json_decode($group->first()->permissions, true);

        if($permissions[$key] == true) {
            return true;
        }
    }
    return false;
}

DB class

public function insert($table, $fields = array()) {
    $keys = array_keys($fields);
    $values = '';
    $x = 1;

    foreach($fields as $field) {
        $values .= '?';
        if($x < count($fields)) {
            $values .= ', ';
        }
        $x++;
    }

    $sql = "INSERT INTO {$table} (`" . implode('`, `', $keys) . "`) Values ({$values})";

    return ! $this-> query($sql, $fields)->error(); 
}

我想使用它,这样我就可以让用户能够查看某些内容或访问某些页面,如果他们不在组级别我想要他们将被踢回到之前的页面。这样的事情,我确信我可以用这个代码做到这一点,我只是通过观察它就不能完全理解它。

我在我网站的部分内容上做了这个:

<?php

if($user->hasPermission('creator')) {
        echo '<p>All access!<p>';
    } else {
        die;
    }
?>  

我可以向具有特定权限的用户说明消息。

有人可以向我解释一下这段代码,并让我大致了解如何使用它。

0 个答案:

没有答案