public static function getLikeGroups($name, PHPWS_Group $group)
 {
     $name = preg_replace('/[^\\w]/', '', $name);
     $db = \Database::newDB();
     $ug = $db->addTable('users_groups');
     $ug->addField('id');
     $ug->addField('name');
     $ug->addField('user_id');
     $u = $db->addTable('users', null, false);
     $u->addField('display_name');
     $cond = $db->createConditional($ug->getField('user_id'), $u->getField('id'));
     $db->joinResources($ug, $u, $cond, 'outer');
     $ug->addFieldConditional('name', "%{$name}%", 'LIKE');
     $members = $group->getMembers();
     if (isset($members)) {
         $ug->addFieldConditional('id', $members, 'not in');
     }
     $groups = $db->select();
     $tpl = new PHPWS_Template('users');
     $tpl->setFile('forms/likeGroups.tpl');
     $count = 0;
     $vars['action'] = 'admin';
     $vars['command'] = 'addMember';
     $vars['group_id'] = $group->getId();
     foreach ($groups as $member) {
         if (isset($members)) {
             if (in_array($member['id'], $members)) {
                 continue;
             }
         }
         $vars['member'] = $member['id'];
         $link = PHPWS_Text::secureLink('<i class="fa fa-plus"></i> ' . dgettext('users', 'Add'), 'users', $vars, NULL, dgettext('users', 'Add this user to this group.'), 'btn btn-sm btn-success');
         $tpl->setCurrentBlock('row');
         if (!empty($member['display_name'])) {
             $tpl->setData(array('NAME' => $member['name'] . ' (' . $member['display_name'] . ')', 'ADD' => $link));
         } else {
             $tpl->setData(array('NAME' => $member['name'], 'ADD' => $link));
         }
         $tpl->parseCurrentBlock();
     }
     $content = $tpl->get();
     return $content;
 }
Beispiel #2
0
 public static function assignDefaultGroup(PHPWS_User $user)
 {
     $db = new PHPWS_DB('users_auth_scripts');
     $db->addColumn('default_group');
     $db->addColumn('id');
     $db->setIndexBy('id');
     $scripts = $db->select('col');
     $default_group = $scripts[$user->authorize];
     $group = new PHPWS_Group($default_group);
     if (!$group->id) {
         return false;
     }
     $group->addMember($user->_user_group);
     $group->save();
     return true;
 }
Beispiel #3
0
 public function kill()
 {
     PHPWS_Core::initModClass('users', 'Group.php');
     if (!$this->id) {
         return false;
     }
     $db = new PHPWS_DB('users');
     $db->addWhere('id', $this->id);
     $result = $db->delete();
     if (PHPWS_Error::logIfError($result)) {
         return $result;
     }
     $this->removeAssociations();
     if ($this->authorize == LOCAL_AUTHORIZATION) {
         $db2 = new PHPWS_DB('user_authorization');
         $db2->addWhere('username', $this->username);
         $result = $db2->delete();
         if (PHPWS_Error::logIfError($result)) {
             return $result;
         }
     }
     $user_group = new PHPWS_Group($this->getUserGroup());
     $user_group->kill();
 }
Beispiel #4
0
 /**
  * Although called via Current_User, this functions gives
  * a group with edit permissions the right to edit this item.
  */
 public static function giveItemPermission($user_id, Key $key)
 {
     $user = new PHPWS_User($user_id);
     $groups = $user->getGroups();
     if (empty($groups) || !is_array($groups)) {
         return;
     }
     if (empty($key->_edit_groups)) {
         $key->_edit_groups = array();
     }
     PHPWS_Core::initModClass('users', 'Group.php');
     foreach ($groups as $group_id) {
         $group_obj = new PHPWS_Group($group_id, false);
         if (!in_array($group_id, $key->_edit_groups) && $group_obj->allow($key->module, $key->edit_permission)) {
             $key->_edit_groups[] = $group_id;
         }
     }
     return $key->savePermissions();
 }