我想过滤记录,以便分配的用户只能从弹出列表视图中查看分配给他的记录。
之所以无法在角色管理中执行此操作,是因为如果我将用户分配给客户记录,那么其他具有相同角色的用户将无法看到它,因此请将role-> list选项卡设置为“ all”,并在列表视图中添加了自定义代码,只有登录用户才能看到他们自己的记录。
我完成了什么。
<?php
require_once('include/MVC/View/views/view.popup.php');
class AccountsViewPopup extends ViewPopup
{
public function display()
{
parent::display(); // TODO: Change the autogenerated stub
require_once 'modules/ACLRoles/ACLRole.php';
$ACLRole = new ACLRole();
$roles = $ACLRole->getUserRoles($GLOBALS['current_user']->id);
if (in_array('User1', $roles)) {
global $db, $current_user;
$this->where .= " AND accounts.assigned_user_id = '$current_user->id' AND deleted=0 ";
}
}
}
但是我收到此错误:
未定义的属性:AccountsViewPopup :: $ where
您正在尝试覆盖listViewProcess函数,该函数在listview中可用。文件的正确位置是:custom \ modules \ MODULE_NAME \ views \ view.list.php
以下是帮助代码:
require_once('include/MVC/View/views/view.list.php');
class MODULE_NAMEViewList extends ViewList {
function listViewProcess() {
global $current_user;
$this->params['custom_where'] = ' AND module_name.name = "test" ';
parent::listViewProcess();
}
}