Added queries and functions for adding group members.
This commit is contained in:
40
website/public/API/editMembership.php
Normal file
40
website/public/API/editMembership.php
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if(empty($_POST["grp"]) or empty($_POST["role"])) {
|
||||||
|
header('HTTP/1.1 500 Non enough arguments');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(in_array($_POST["role"], array('request', 'member', 'banned', 'mod', 'admin'))) {
|
||||||
|
header('HTTP/1.1 500 Wrong argument given for role');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once ("../../queries/group_member.php");
|
||||||
|
require_once ("../../queries/group_page.php");
|
||||||
|
require_once ("../../queries/group_member.php");
|
||||||
|
|
||||||
|
$currentRole = selectGroupRole($_POST["grp"]);
|
||||||
|
$groupStatus = selectGroupStatus($_POST["grp"]);
|
||||||
|
echo "role: $currentRole status: $groupStatus ";
|
||||||
|
|
||||||
|
if($_POST["role"] == 'request' and $currentRole == 'none') {
|
||||||
|
if($groupStatus = 'public') {
|
||||||
|
// Add member to public group
|
||||||
|
addMember($_POST["grp"], $_SESSION["userID"], 'member');
|
||||||
|
echo "ADDED";
|
||||||
|
} else if($groupStatus = 'membersonly') {
|
||||||
|
// Send request to members only group
|
||||||
|
addMember($_POST["grp"], $_SESSION["userID"], 'request');
|
||||||
|
} else {
|
||||||
|
// Can't invite yourself to hidden groups
|
||||||
|
header('HTTP/1.1 500 This group is hidden');
|
||||||
|
}
|
||||||
|
header('HTTP/1.1 200');
|
||||||
|
} else if($_POST["role"] == 'none' and $currentRole != 'none') {
|
||||||
|
// Remove yourself from a group
|
||||||
|
deleteMember($_POST["grp"], $_SESSION["userID"]);
|
||||||
|
} else {
|
||||||
|
echo "failure";
|
||||||
|
header('HTTP/1.1 500 Wrong argument given for role');
|
||||||
|
}
|
||||||
12
website/public/API/getGrouprole.php
Normal file
12
website/public/API/getGrouprole.php
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if(empty($_POST["grp"])) {
|
||||||
|
header('HTTP/1.1 500 Non enough arguments');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once("../../queries/group_page.php");
|
||||||
|
|
||||||
|
echo selectGroupRole($_POST["grp"]);
|
||||||
|
|
||||||
@@ -54,3 +54,48 @@ function searchSomeOwnGroups($n, $m, $search) {
|
|||||||
|
|
||||||
return json_encode($stmt->fetchAll());
|
return json_encode($stmt->fetchAll());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addMember($groupID, $userID, $role) {
|
||||||
|
$stmt = prepareQuery("
|
||||||
|
INSERT INTO
|
||||||
|
`group_member` (`userID`, `groupID`, `role`)
|
||||||
|
VALUES
|
||||||
|
(:userID, :groupID, :role)
|
||||||
|
");
|
||||||
|
|
||||||
|
$stmt->bindParam(':userID', $userID);
|
||||||
|
$stmt->bindParam(':groupID', $groupID);
|
||||||
|
$stmt->bindParam(':role', $role);
|
||||||
|
return $stmt->execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
function changeMember($groupID, $userID, $role) {
|
||||||
|
$stmt = prepareQuery("
|
||||||
|
UPDATE
|
||||||
|
`group_member`
|
||||||
|
SET
|
||||||
|
`role` = :role
|
||||||
|
WHERE
|
||||||
|
`userID` = :userID AND
|
||||||
|
`groupID` = :groupID
|
||||||
|
");
|
||||||
|
|
||||||
|
$stmt->bindParam(':userID', $userID);
|
||||||
|
$stmt->bindParam(':groupID', $groupID);
|
||||||
|
$stmt->bindParam(':role', $role);
|
||||||
|
return $stmt->execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
function deleteMember($groupID, $userID) {
|
||||||
|
$stmt = prepareQuery("
|
||||||
|
DELETE FROM
|
||||||
|
`group_member`
|
||||||
|
WHERE
|
||||||
|
`userID` = :userID AND
|
||||||
|
`groupID` = :groupID
|
||||||
|
");
|
||||||
|
|
||||||
|
$stmt->bindParam(':userID', $userID);
|
||||||
|
$stmt->bindParam(':groupID', $groupID);
|
||||||
|
return $stmt->execute();
|
||||||
|
}
|
||||||
@@ -58,6 +58,23 @@ function selectGroupRole(int $groupID) {
|
|||||||
return $stmt->fetch()["role"];
|
return $stmt->fetch()["role"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function selectGroupStatus(int $groupID) {
|
||||||
|
$stmt = prepareQuery("
|
||||||
|
SELECT
|
||||||
|
`status`
|
||||||
|
FROM
|
||||||
|
`group_page`
|
||||||
|
WHERE
|
||||||
|
`groupID` = :groupID
|
||||||
|
");
|
||||||
|
|
||||||
|
$stmt->bindParam(':groupID', $groupID, PDO::PARAM_INT);
|
||||||
|
if(!$stmt->execute()) {
|
||||||
|
return False;
|
||||||
|
}
|
||||||
|
return $stmt->fetch()["status"];
|
||||||
|
}
|
||||||
|
|
||||||
function selectGroupMembers(int $groupID) {
|
function selectGroupMembers(int $groupID) {
|
||||||
$stmt = prepareQuery("
|
$stmt = prepareQuery("
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
Reference in New Issue
Block a user