Authentication SugarCRM,通过AJAX调用获取当前登录的用户详细信息

Authentication SugarCRM,通过AJAX调用获取当前登录的用户详细信息,authentication,sugarcrm,Authentication,Sugarcrm,我已经为SugarCRM编写了一个自定义PHP文件,可以从AJAX请求中调用。但是,当我尝试打印时 global $current_user; print_r($current_user); 它使用数组中列出的所有字段打印空值,如下所示 User Object ( [name] => [full_name] => [id] => [user_name] => [user_hash] => [salutat

我已经为SugarCRM编写了一个自定义PHP文件,可以从AJAX请求中调用。但是,当我尝试打印时

global $current_user;

print_r($current_user);
它使用数组中列出的所有字段打印空值,如下所示

User Object
(
    [name] => 
    [full_name] => 
    [id] => 
    [user_name] => 
    [user_hash] => 
    [salutation] => 
    [first_name] => 
    [last_name] => 
    [date_entered] => 
    [date_modified] => 
    [modified_user_id] => 
    [created_by] => 
    [created_by_name] => 
    [modified_by_name] => 
    [description] => 
    [phone_home] => 
    [phone_mobile] => 
    [phone_work] => 
    [phone_other] => 
    [phone_fax] => 
    [email1] => 
    [email2] => 
    [address_street] => 
    [address_city] => 
    [address_state] => 
    [address_postalcode] => 
    [address_country] => 
    [status] => 
    [title] => 
    [portal_only] => 0
    [department] => 
    [authenticated] => 
    [error_string] => 
    [is_admin] => 0
    [employee_status] => 
    [messenger_id] => 
    [messenger_type] => 
    [is_group] => 
    [accept_status] => 
    [team_id] => 
    [receive_notifications] => 1
    [default_team] => 
    [reports_to_name] => 
    [reports_to_id] => 
    [team_exists] => 
    [table_name] => users
    [module_dir] => Users
    [object_name] => User
    [user_preferences] => 
    [importable] => 1

我在SugarCRM论坛中搜索过,但没有用。我怀疑原因可能是我的自定义页面中没有定义有效的入口点,因为除了以下方法之外,我不知道如何定义

if(!defined('sugarEntry'))define('sugarEntry', true);
  if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); 
  require_once('include/entryPoint.php');

我知道这个问题要追溯到2013年,我想到了分享:)

当你打电话时就会发生这种情况

global $current_user;
在sugarcrm之外,我做的一个选择是在自定义用户模块中创建一个钩子,并在那里访问$current\u用户变量,然后只获取那些需要的值,可能在会话中保存,这取决于您

希望这对任何人都有帮助:)

我所做工作的样本

创建一个文件custom\u external\u session.php

<?php if(!defined('sugarEntry') ||!sugarEntry) die('Not A Valid Entry Point');
class custom_external_session {
     function get_current_user(& $focus, $event, $arguments){
          global $current_user;
          $user_id = $current_user->id;
          session_start();
          $_SESSION["custom_current_user"] =  $user_id;
     }
}
  • 您现在可以使用:$\u SESSION[“custom\u current\u user”]获取当前用户id,然后您可以使用它进行录制,还可以编辑或添加有关已保存会话的更多信息,比如您想要全名等,只需在custom\u external\u SESSION下执行即可。我不确定是否有更好的方法处理外部代码

  • 请记住,编辑自定义\u外部\u会话时始终重新登录,以便更新值


  • 希望这对您来说更清楚。

    这是用于SugarCRM 7.x安装还是用于SugarCRM 6.x?
    $hook_array['after_login'][] = Array(5, 'custom_external_session', 'custom/modules/Users/custom_external_session.php', 'custom_external_session', 'get_current_user');