iId = -1; $this->iGroupID = $iNewGroupID; $this->iUserID = $iNewUserID; } /** * Get the object's primary key * * @return int object's primary key * */ function getID() { return $this->iId; } /** * Get the primary key of the group to which the unit is linked * * @return int primary key of group to which unit is linked * */ function getGroupID() { return $this->iGroupID; } /** * Set the primary key of the group to which the unit is linked * * @param int Primary key of group to which unit is ilinked * */ function setGroupID($iNewValue) { $this->iGroupID = $iNewValue; } /** * Get the prijmary key of the unit to which the group is linked * * @return int primary key of unit to which the group is linked * */ function getUserID() { return $this->iUserID; } /** * Set the primary key of the unit to which the group is linked * * @param int Primary key of unit to which the group is linked * */ function setUserID($iNewValue) { $this->iUserID = $iNewValue; } function _fieldValues () { return array( 'group_id' => $this->iGroupID, 'user_id' => $this->iUserID, ); } function _table () { global $default; return $default->users_groups_table; } /** * Create the current object in the database * * @return boolean on successful store, false otherwise and set $_SESSION["errorMessage"] * */ function create() { global $default, $lang_err_database, $lang_err_object_exists; //if the object hasn't been created if ($this->iId < 0) { $sql = $default->db; $query = "SELECT user_id, group_id FROM ". $default->users_groups_table ." WHERE user_id = '" . $this->iUserID . "' and group_id = '". $this->iGroupID ."'"; $sql->query($query); $rows = $sql->num_rows($sql); if ($rows > 0) { $_SESSION["errorMessage"] = "GroupUserLink::The id " . $this->iUnitID . " already exists!"; return false; } } return parent::create(); } /** * Static function. * Given a groups_units_link primary key it will create a * GroupUserLink object and populate it with the * corresponding database values * * @return GroupUserLink populated GroupUserLink object on successful query, false otherwise and set $_SESSION["errorMessage"] */ function & get($iGroupUserLinkID) { global $default; $sql = $default->db; $result = $sql->query("SELECT * FROM $default->users_groups_table WHERE id = $iGroupUserLinkID"); if ($result) { if ($sql->next_record()) { $oGroupUserLink = & new GroupUserLink($sql->f("group_id"), $sql->f("user_id")); $oGroupUserLink->iId = $iGroupUserLinkID; return $oGroupUserLink; } $_SESSION["errorMessage"] = $lang_err_object_not_exist . "id = " . $iGroupUserLinkID . " table = $default->users_groups_table"; return false; } $_SESSION["errorMessage"] = $lang_err_database; return false; } /** * Static function * Get a list of web documents * * @param String Where clause (not required) * * @return Array array of GroupUserLink objects, false otherwise and set $_SESSION["errorMessage"] */ function getList($sWhereClause = null) { global $default, $lang_err_database; $aGroupUserLink; settype($aGroupUserLink, "array"); $sql = $default->db; $result = $sql->query("SELECT * FROM " . $default->users_groups_table . (isset($sWhereClause) ? " " . $sWhereClause : "")); if ($result) { $iCount = 0; while ($sql->next_record()) { $oGroupUserLink = & GroupUserLink::get($sql->f("id")); $aGroupUserLink[$iCount] = $oGroupUserLink; $iCount++; } return $aGroupUserLink; } $_SESSION["errorMessage"] = $lang_err_database; return false; } /** * Updates the search permissions for a group */ function updateSearchPermissions() { global $default; // group permissions $sGroupPerms = "INSERT INTO $default->search_permissions_table (user_id, document_id) " . "SELECT UGL.user_id AS user_id, D.id AS document_id " . "FROM $default->documents_table AS D INNER JOIN folders AS F ON D.folder_id = F.id " . "INNER JOIN $default->groups_folders_table AS GFL ON GFL.folder_id = F.id " . "INNER JOIN $default->users_groups_table AS UGL ON UGL.group_id = GFL.group_id " . "WHERE GFL.group_id=$this->iGroupID"; $default->log->info("GroupUserLink groupPerms=$sGroupPerms"); $sql = $default->db; if ($sql->query($sGroupPerms)) { $default->log->debug("groupPerms succeeded"); return true; } else { $default->log->error("groupPerms failed"); return false; } } function getGroups($iUserID) { global $default, $lang_err_database; $aGroupUserLink; settype($aGroupUserLink, "array"); $sql = $default->db; $result = $sql->query("SELECT group_id FROM " . $default->users_groups_table . " Where user_id = ". $iUserID); if ($result) { $iCount = 0; while ($sql->next_record()) { //$oGroupUserLink = & GroupUserLink::get($sql->f("id")); $aGroupUserLink[$iCount] = $sql->f("group_id"); $iCount++; } return $aGroupUserLink; } $_SESSION["errorMessage"] = $lang_err_database; return false; } /** * static function * test to see if group exists already * * @param false or a value */ function userBelongsToGroup($iUserID){ global $default; $value = lookupField("$default->users_groups_table", "group_id", "user_id", $iUserID ); return $value; } /** * static function * sets the id of the groupunit using their groupid * * @param String * The unit_ID */ function setUserGroupID($iGroupId, $iUserId) { global $default; $sql = $default->db; $result = $sql->query("SELECT id FROM $default->users_groups_table WHERE user_id = $iUserId and group_id = $iGroupId"); if ($result) { if ($sql->next_record()) { $id = $sql->f("id"); } else{ $_SESSION["errorMessage"] = $lang_err_database; return false; } } else{ $_SESSION["errorMessage"] = $lang_err_database; return false; } $this->iId = $id; } } ?>