__construct($user_id, $group_id); } public function __construct($user_id = NULL, $group_id = NULL) { $conn = & DB :: connect(getDSN()); if (DB :: isError($conn)) { print ("error: ".$conn->toString()); exit (); } else { $this->conn = $conn; } $this->user_id = $user_id; $this->group_id = $group_id; $action = scriptParam("action"); $data = $this->_retrieveData(); $this->user_name = $data['username']; $this->group_name = $data['name']; } public function store() { $sql = sprintf("INSERT INTO din_usergrouprelationship "." (user_id, group_id) "."VALUES "." (%s, %s)", $this->conn->quoteSmart($this->user_id), $this->conn->quoteSmart($this->group_id)); $result = $this->conn->query($sql); if (DB :: isError($result) != true) { $user = new User($this->user_id); $group = new Group($this->group_id); notify("Bruker $user->firstname $user->lastname"." registrert i gruppen $group->name."); $this->_checkActive(); $this->_checkMod(); subscribe_mailinglist($this->user_id, $this->group_id); } else if ($result->getCode() == -5) { notify("$this->user_name er allerede medlem i gruppen $this->group_name."); } else { notify("Problem med registrering av gruppemedlemskap."); error("Register user in group: ".$result->toString()); } } public function _retrieveData() { $sql = "SELECT CONCAT(u.firstname, ' ', u.lastname) AS username, g.name FROM din_usergrouprelationship ugr, din_user u, din_group g WHERE ugr.user_id = $this->user_id AND ugr.group_id = $this->group_id AND ugr.user_id = u.id AND ugr.group_id = g.id"; $result = & $this->conn->query($sql); if (DB :: isError($result) != true) { if ($row = & $result->fetchRow(DB_FETCHMODE_ASSOC)) { return $row; } } else { error("UserGroupRelationships: ".$result->toString()); } } public function delete($user_id, $group_id) { /* TODO Implement access control and comment in */ //$conn = db_connect(); //$sql = "DELETE FROM din_usergrouprelationship // WHERE user_id = $user_id // AND group_id = $group_id // LIMIT 1"; //$result = $conn->query($sql); //if (DB :: isError($result) != true) { // notify("Gruppemedlemskap slettet."); // unsubscribe_mailinglist($user_id, $group_id); // //Update moderator status // $group = new Group($group_id); // if ($group->admin == 1) { // $sql = "SELECT * "."FROM din_group g, din_usergrouprelationship ugr "."WHERE ugr.user_id = $user_id "."AND ugr.group_id = g.id "."AND g.admin = 1"; // $result = $conn->query($sql); // if (DB :: isError($result) != true) { // if ($result->numRows() == 0) { // UserGroupRelationship :: delete($user_id, 61); // } // } else { // error("UserGroupRelationships - admin: ".$result->toString()); // } // } //} else { // error($result->toString()); //} } public function displayList() { ?> user_name; ?> group_name"; ?> group_id != 1) { displayOptionsMenuTable(Array("user_id" => $this->user_id, "group_id" => $this->group_id), USERGROUPRELATIONSHIP, "usergrouprelationship", "view-edit-options-usergrouprelationship", false); } ?> group_id > 2) { $sql = "SELECT * "."FROM din_usergrouprelationship ugr "."WHERE ugr.user_id = $this->user_id "."AND ugr.group_id = 2"; $result = $this->conn->query($sql); if (DB :: isError($result) != true) { if ($result->numRows() == 0) { $newRel = new UserGroupRelationship($this->user_id, 2); $newRel->store(); } } else { error("UserGroupRelationships - admin: ".$result->toString()); } } } public function _checkMod() { $group = new Group($this->group_id); if ($group->admin == 1) { $sql = "SELECT * "."FROM din_usergrouprelationship ugr "."WHERE ugr.user_id = $this->user_id "."AND ugr.group_id = 61"; $result = $this->conn->query($sql); if (DB :: isError($result) != true) { if ($result->numRows() == 0) { $newRel = new UserGroupRelationship($this->user_id, 61); $newRel->store(); } } else { error("UserGroupRelationships - admin: ".$result->toString()); } } } } ?>