Ejemplo n.º 1
0
 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.");
     }
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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;
 }