mirror of
				https://github.com/pierre42100/ComunicAPI
				synced 2025-11-04 04:04:20 +00:00 
			
		
		
		
	Get membership level of a user
This commit is contained in:
		@@ -106,6 +106,48 @@ class GroupsComponent {
 | 
			
		||||
        ));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Check whether a user has already a saved membership in a group or not
 | 
			
		||||
     * 
 | 
			
		||||
     * @param int $userID The ID of the target user
 | 
			
		||||
     * @param int $groupID The ID of the target group
 | 
			
		||||
     * @return bool TRUE if the database includes a membership for the user / FALSE else
 | 
			
		||||
     */
 | 
			
		||||
    private function hasMembership(int $userID, int $groupID) : bool {
 | 
			
		||||
        return db()->count(
 | 
			
		||||
            self::GROUPS_MEMBERS_TABLE,
 | 
			
		||||
            "WHERE groups_id = ? AND user_id = ?", 
 | 
			
		||||
            array($groupID, $userID)) > 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get the membership level of a user to a group
 | 
			
		||||
     * 
 | 
			
		||||
     * @param int $userID The ID of the queried user
 | 
			
		||||
     * @param int $groupID The ID of the target group
 | 
			
		||||
     * @return int The membership level of the user
 | 
			
		||||
     */
 | 
			
		||||
    public function getMembershipLevel(int $userID, int $groupID) : int {
 | 
			
		||||
 | 
			
		||||
        //Check for membership
 | 
			
		||||
        if(!$this->hasMembership($userID, $groupID))
 | 
			
		||||
            return GroupMember::VISITOR;
 | 
			
		||||
        
 | 
			
		||||
        //Fetch the database to get membership
 | 
			
		||||
        $results = db()->select(
 | 
			
		||||
            self::GROUPS_MEMBERS_TABLE,
 | 
			
		||||
            "WHERE groups_id = ? AND user_id = ?",
 | 
			
		||||
            array($groupID, $userID),
 | 
			
		||||
            array("level")
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        //Check for results
 | 
			
		||||
        if(count($results) < 0)
 | 
			
		||||
            return GroupMember::VISITOR; //Security first
 | 
			
		||||
        
 | 
			
		||||
        return $results[0]["level"];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Count the number of members of a group
 | 
			
		||||
     * 
 | 
			
		||||
@@ -133,6 +175,7 @@ class GroupsComponent {
 | 
			
		||||
        $info->set_id($data["id"]);
 | 
			
		||||
        $info->set_name($data["name"]);
 | 
			
		||||
        $info->set_number_members($this->countMembers($info->get_id()));
 | 
			
		||||
        $info->set_membership_level($this->getMembershipLevel(userID, $info->get_id()));
 | 
			
		||||
 | 
			
		||||
        return $info;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,7 @@ class GroupInfo extends BaseUniqueObject {
 | 
			
		||||
    private $name;
 | 
			
		||||
    private $number_members = -1;
 | 
			
		||||
	private $icon;
 | 
			
		||||
	private $membership_level = -1;
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    //Get and set the name of group
 | 
			
		||||
@@ -57,5 +58,18 @@ class GroupInfo extends BaseUniqueObject {
 | 
			
		||||
	
 | 
			
		||||
	public function get_icon_url() : string {
 | 
			
		||||
		return path_user_data($this->get_icon());
 | 
			
		||||
    }
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	//Get and set the membership level of the current user
 | 
			
		||||
	public function set_membership_level(int $membership_level){
 | 
			
		||||
		$this->membership_level = $membership_level;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public function has_membership_level() : bool {
 | 
			
		||||
		return $this->membership_level > -1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public function get_membership_level() : int {
 | 
			
		||||
		return $this->membership_level;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user