Esempio n. 1
0
 public function setUserGroups()
 {
     $memberships = array();
     $groups = $this->getProperty('groups', null);
     if ($groups !== null) {
         $primaryGroupId = 0;
         /* remove prior user group links */
         $oldMemberships = $this->object->getMany('UserGroupMembers');
         /** @var modUserGroupMember $membership */
         foreach ($oldMemberships as $membership) {
             $membership->remove();
         }
         /* create user group links */
         $groups = is_array($groups) ? $groups : $this->modx->fromJSON($groups);
         foreach ($groups as $group) {
             $membership = $this->modx->newObject('modUserGroupMember');
             $membership->set('user_group', $group['usergroup']);
             $membership->set('role', $group['role']);
             $membership->set('member', $this->object->get('id'));
             $membership->set('rank', $group['rank']);
             if (empty($group['rank'])) {
                 $primaryGroupId = $group['usergroup'];
             }
             $memberships[] = $membership;
         }
         $this->object->addMany($memberships, 'UserGroupMembers');
         $this->object->set('primary_group', $primaryGroupId);
     }
     return $memberships;
 }
Esempio n. 2
0
 /**
  * Add User Group memberships to the User
  * @return array
  */
 public function addUserGroups()
 {
     $memberships = array();
     $groups = $this->getProperty('groups', null);
     if ($groups !== null) {
         $groups = is_array($groups) ? $groups : $this->modx->fromJSON($groups);
         foreach ($groups as $group) {
             /** @var modUserGroupMember $membership */
             $membership = $this->modx->newObject('modUserGroupMember');
             $membership->set('user_group', $group['usergroup']);
             $membership->set('role', $group['role']);
             $memberships[] = $membership;
         }
         $this->object->addMany($memberships, 'UserGroupMembers');
     }
     return $memberships;
 }
 /**
  * If user groups were passed, set them here
  * @param string $userGroups
  * @return array
  */
 public function setUserGroups($userGroups)
 {
     $added = array();
     /* if $userGroups set in form, override here; otherwise use snippet property */
     $this->userGroups = !empty($userGroups) ? $userGroups : $this->controller->getProperty('usergroups', '');
     if (!empty($this->userGroups)) {
         $this->userGroups = is_array($this->userGroups) ? $this->userGroups : explode(',', $this->userGroups);
         foreach ($this->userGroups as $userGroupMeta) {
             $userGroupMeta = explode(':', $userGroupMeta);
             if (empty($userGroupMeta[0])) {
                 continue;
             }
             /* get usergroup */
             $pk = array();
             $pk[intval($userGroupMeta[0]) > 0 ? 'id' : 'name'] = trim($userGroupMeta[0]);
             /** @var modUserGroup $userGroup */
             $userGroup = $this->modx->getObject('modUserGroup', $pk);
             if (!$userGroup) {
                 continue;
             }
             /* get role */
             $rolePk = !empty($userGroupMeta[1]) ? $userGroupMeta[1] : 'Member';
             /** @var modUserGroupRole $role */
             $role = $this->modx->getObject('modUserGroupRole', array('name' => $rolePk));
             /* create membership */
             /** @var modUserGroupMember $member */
             $member = $this->modx->newObject('modUserGroupMember');
             $member->set('member', 0);
             $member->set('user_group', $userGroup->get('id'));
             if (!empty($role)) {
                 $member->set('role', $role->get('id'));
             } else {
                 $member->set('role', 1);
             }
             $this->user->addMany($member, 'UserGroupMembers');
             $added[] = $userGroup->get('name');
         }
     }
     return $added;
 }