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; }
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; }
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(); }
/** * 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(); }