SugarCRM根据当前用户帐户的自定义字段筛选搜索结果

SugarCRM根据当前用户帐户的自定义字段筛选搜索结果,sugarcrm,Sugarcrm,我在“User”和“CustomModule”中都有自定义字段“country\u id\u c”,我需要限制用户只能看到来自其所在地区的行(按country\u id\u c过滤)。 有两种搜索表格: 当您从菜单中看到CustomModule的搜索结果时 使用将CustomModule作为关系添加到其他模块时 选择器(弹出窗口) 我发现如何在1种情况下使用硬编码值过滤结果: 文件:custom/modules/CustomModule/metadata/SearchFields.php $se

我在“User”和“CustomModule”中都有自定义字段“country\u id\u c”,我需要限制用户只能看到来自其所在地区的行(按country\u id\u c过滤)。 有两种搜索表格:

  • 当您从菜单中看到CustomModule的搜索结果时

  • 使用将CustomModule作为关系添加到其他模块时 选择器(弹出窗口)

  • 我发现如何在1种情况下使用硬编码值过滤结果:

    文件:custom/modules/CustomModule/metadata/SearchFields.php

    $searchFields['CustomModule'] = array (
    ...
    'country_id_c' =>
    array (
      'query_type' => 'format',
      'operator' => '=',
      'value' => 'Argentina',
      'db_field'=>array('country_id_c',)
    ),
    ...
    

    这里我缺少的是如何获取当前登录用户的国家/地区id。以及如何对(2)搜索表单执行相同操作。

    您可以通过添加以下内容来访问该值:

    globals $current_user;
    $current_user->country_id_c 
    

    如果这回答了你的问题,你能给出反馈吗?不幸的是,这不起作用。即使在添加访问此对象所需的
    globals$current\u user
    之后,
    $current\u user
    内部也不包含自定义变量
    $country\u id\u c
    (可能需要以某种方式加载它)。有什么建议吗?当然,对不起,globals$当前用户;这是需要的。您是否已将自定义变量正确添加到vardefs?请发布您的vardef,然后我尝试在我的机器上重现问题。您是对的,它可以工作。在本模块中它被命名为country_c,这就是我第一次找不到它的原因。请编辑答案并添加globals$current\u用户,好吗?你知道我如何对关系选择器列表做同样的操作吗?你的意思是:$this->bean->load_relationship('aRelationship')$关系=$this->bean->aRelationship->get();