public function addUser($userid, $admin_level = 0, $receives_emails = false, $invite_code = false) { if (!$this->boardid) { throw new BoardException("You must have an existing board to join"); } $ok = false; $invite_id = 0; $invite = null; if ($invite_code) { $invite = new SCInvite($invite_code); $invite_id = $this->checkInvite($invite); if ($invite_id) { $ok = true; } } else { if (!$this->privacy || $admin_level == 10) { $ok = true; } } if ($ok) { $membership = new SCMembership(); $membership->userid = $userid; $membership->boardid = $this->boardid; return $membership->create($invite); } else { throw new BoardException("This is a private board. if you have an email invitation, please use the link from there to join."); } }
public function loadMembers($only_receive_emails = false) { if (!$this->boardid) { throw new MembershipSetException("Load Members can only be called if board id is set", 400); } $db = new SCDB(); $conditions_array = array("mem_board_id" => $this->boardid, "brd_id" => "mem_board_id", "mem_user_id" => "user_id"); if ($only_receive_emails) { $conditions_array["mem_receives_emails"] = 1; } $memberships = $db->q(array("*"), array("memberships", "boards", "users"), $conditions_array); foreach ($memberships as $id => $membership) { $new_membership = new SCMembership($membership); $new_membership->hideBoard(); $new_membership->board->hidecreator = true; $new_membership->board->hidethreads = true; $new_membership->user->hideBoards = true; $this->memberships[] = $new_membership; } $this->hasmemberships = sizeof($memberships); return $this; }
public function memberships_delete($params = null) { // aka join board if ($params && isset($params["__partial"])) { return null; } if ($params === null) { $this->requireRequestType("DELETE"); $current_user = $this->requireLogin("You must be logged in to delete a membership"); $params = $_GET; } if ($params["membershipid"]) { $membership = new SCMembership($params["membershipid"]); } else { if ($params["userid"] && $params["boardid"]) { $membership = new SCMembership($params["userid"], $params["boardid"]); } else { throw new APIException("Membership id or userid/boardid pair missing", 400); } } if (intval($membership->userid) != intval($current_user->userid)) { throw new APIException("You may only attempt to delete your own memberships", 403); } $membership->delete(); SC::updateSessionUser(); return true; }