如果分配的用户为登录名,则在弹出列表视图中过滤记录SUITECRM

问题描述 投票:0回答:1

我想过滤记录,以便分配的用户只能从弹出列表视图中查看分配给他的记录。

之所以无法在角色管理中执行此操作,是因为如果我将用户分配给客户记录,那么其他具有相同角色的用户将无法看到它,因此请将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

sugarcrm suitecrm
1个回答
0
投票

您正在尝试覆盖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();
}

}
© www.soinside.com 2019 - 2024. All rights reserved.