我需要有新眼睛的人。我有一个函数正在检查他们是否可以访问该主题,或者我的讨论区中的部分。这就是问题。我不知道我是否输错了。
该功能正在返回 bool(true)和Granted(For Debugging)
我的if声明反映出我没有获得许可。
public function hasPermission($key) {
$group = $this->_db->query("SELECT * FROM `group` WHERE `id` = ?", array($key));
if ($group->count()){
if ($key === 1) {
return true;
} else {
$permissions = json_decode($group->first()->permissions, true);
switch ($key) {
case 2:
$string = 'member';
break;
case 3:
$string = 'admin';
break;
}
print_r($string);
if ($permissions[$string] === 1) {
if ($this->_user->hasPermission($string)){
print('Granted');
return true;
}
return false;
}
return false;
}
}
return false;
}
这是我不理解的部分。我知道你可以在内部和if语句中调用一个函数,如果函数为真,它将继续。
if (true) {
//do this
} else {
//do this
}
右?
我的函数返回true但我的if语句没有执行正确的代码块。
if (isset($_GET['id'])) {
$id = $_GET['id'];
$forum->topics($id);
$topics = $forum->results();
$permission = $forum->first();
if (!empty($topics)) {
foreach ($topics as $topic) {
$list .= '<tr>';
$list .= '<td><a href="topic.php?id=' . $topic->id . '">' . $topic->thread_title .'</a></td>';
$list .= '<td>Mr_Nasty_Time405</td>';
$list .= '<td>25</td>';
$list .= '<td>400</td>';
$list .= '</tr>';
}
} else {
$list .= '<tr>';
$list .= '<td>There are no Sections under this category would you like to create one?';
$list .= '</tr>';
}
if($forum->hasPermission($permission->permissions)) {
$error = "Granted";
} else {$error = "You don't have permission";}
} else {Redirect::to('404');}?>