by eggsurplus

Control what your users can access and save time, money, and frustrations. Lock down sensitive data in SugarCRM or SuiteCRM to specific groups or teams. Supports unlimited assigned users, unlimited group assignments to records, custom layouts for each group, login/sudo capabilities and much more.

Cancel at any time!
Free Trial

#1660 - How to load M2M (many to many) relationship table columns data from beans

Closed General Question created by so_removed_7 4 years ago

Hi
currently I retreiving user bean
and then loading security group relationship
I want to use securitygroups_users tables fields
How to get those relationship table fields from bean?
current code :
$userBean = BeanFactory::getBean ( 'Users' );
$users = $userBean->get_list ( "users.date_modified DESC", "users.date_modified < '" . $dateTimeOffset . "'", 0, 10 );

foreach ( $users ['list'] as $user ) {

// load user security group if any

$user->load_relationship ( $rel_name );
$userAirlineGroups = $user->$rel_name->getBeans ();
**/****************I need here data of table securitygroups_users**********************/
**}

  1. eggsurplus member avatar

    eggsurplus Provider Affiliate

    4 years ago

    I'm assuming that the $rel_name is "SecurityGroups". I gave this a good try by looking through Sugar's code, but unfortunately you can only get the securitygroups table. The securitygroups_users table just isn't accessible with Sugar's framework. So the only way to do this is to do a direct SQL query and pass the user ID and the group ID. Make sure to also check for deleted = 0.

  2. so_removed_7 member avatar

    so_removed_7

    4 years ago

    I am using now as following :

            $rel_name = $this->getLinkName ( $user->module_dir, 'SecurityGroups' );
            if ($rel_name) {
                $user->load_relationship ( $rel_name );
                $userSecurityGroups = $user->$rel_name->getBeans ();
    
                if (! empty ( $userSecurityGroups )) {
                    foreach ( $userSecurityGroups as $userSecurityGroupId => $userSecurityGroup ) {
                        //you can load any table 
                        $securityGroupUserRelationshipRows = $user->retrieve_relationships ( "securitygroups_users", array (
                                "securitygroup_id" => $userSecurityGroupId,
                                "user_id" => $user->id,
                                "noninheritable" => 0 
                        ), "{COLUMN_OF_SECURITYGROUP_USERS}" );
                                     }
                              }
                       }
    
    • eggsurplus member avatar

      eggsurplus Provider Affiliate

      4 years ago

      Now I understand what you are trying to do. Nice work! This is great. I'm going to close this out for now, but feel free to follow up if needed.

This case is public. Please leave out any sensitive information such as URLs, passwords, etc.
Saving Comment Saving Comment...
Rating
Rating
  • "I can say that it has been one of the best modules within our SugarCRM CE instance!"

    Read More Reviews

Keep up to date on the latest additions

We'll send you an email every month with handpicked add-ons, reviews, tricks and tips. Don't worry, we hate spam as much as you do.