Merge branch 'master' into hendrik-testing
This commit is contained in:
@@ -10,6 +10,11 @@ else {
|
||||
or die('Error connecting to mysql server');
|
||||
}
|
||||
|
||||
/**
|
||||
* Helperfunction to create a database query.
|
||||
* @param string $query
|
||||
* @return PDOStatement
|
||||
*/
|
||||
function prepareQuery(string $query) : PDOStatement {
|
||||
return $GLOBALS["db"]->prepare($query);
|
||||
}
|
||||
@@ -2,6 +2,10 @@
|
||||
require_once "../queries/checkInput.php";
|
||||
require_once "../queries/picture.php";
|
||||
require_once "../queries/alerts.php";
|
||||
|
||||
/**
|
||||
* Creates a group.
|
||||
*/
|
||||
function createGroup()
|
||||
{
|
||||
$createGroup = prepareQuery("
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
<?php
|
||||
/**
|
||||
* Gets the current settings for a group.
|
||||
* @param int $groupID
|
||||
* @return mixed
|
||||
*/
|
||||
function getGroupSettings(int $groupID) {
|
||||
$stmt = prepareQuery("
|
||||
SELECT
|
||||
@@ -15,6 +20,12 @@ function getGroupSettings(int $groupID) {
|
||||
return $stmt->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the settings for a group.
|
||||
* @param int $groupID
|
||||
* @throws AngryAlert
|
||||
* @throws HappyAlert
|
||||
*/
|
||||
function updateGroupSettings(int $groupID)
|
||||
{
|
||||
if (!checkGroupAdmin($groupID, $_SESSION["userID"])) {
|
||||
@@ -40,6 +51,12 @@ function updateGroupSettings(int $groupID)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if an user is an admin for a page.
|
||||
* @param int $groupID
|
||||
* @param int $userID
|
||||
* @return bool
|
||||
*/
|
||||
function checkGroupAdmin(int $groupID, int $userID) : bool {
|
||||
$stmt = prepareQuery("
|
||||
SELECT
|
||||
@@ -60,7 +77,40 @@ function checkGroupAdmin(int $groupID, int $userID) : bool {
|
||||
return ($role == "admin");
|
||||
}
|
||||
|
||||
function getAllGroupMembers(int $groupID) {
|
||||
/**
|
||||
* Returns all normal members for a group.
|
||||
* @param int $groupID
|
||||
* @return array|bool
|
||||
*/
|
||||
function getAllGroupUsers(int $groupID) {
|
||||
return getAllGroupMembers($groupID, 'member');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all admin for a group.
|
||||
* @param int $groupID
|
||||
* @return array|bool
|
||||
*/
|
||||
function getAllGroupAdmins(int $groupID) {
|
||||
return getAllGroupMembers($groupID, 'admin');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all Moderators for a group.
|
||||
* @param int $groupID
|
||||
* @return array|bool
|
||||
*/
|
||||
function getAllGroupMods(int $groupID) {
|
||||
return getAllGroupMembers($groupID, 'mod');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all members for a group specified by a string.
|
||||
* @param int $groupID
|
||||
* @param string $role
|
||||
* @return array|bool
|
||||
*/
|
||||
function getAllGroupMembers(int $groupID, string $role) {
|
||||
$stmt = prepareQuery("
|
||||
SELECT
|
||||
`username`,
|
||||
@@ -74,16 +124,25 @@ function getAllGroupMembers(int $groupID) {
|
||||
ON
|
||||
`group_member`.`userID` = `user`.`userID`
|
||||
WHERE
|
||||
`groupID` = :groupID AND `group_member`.`role` = 'member'
|
||||
`groupID` = :groupID AND `group_member`.`role` = :role
|
||||
");
|
||||
|
||||
$stmt->bindParam(':groupID', $groupID);
|
||||
$stmt->bindParam(":role", $role);
|
||||
if (!$stmt->execute()) {
|
||||
return False;
|
||||
}
|
||||
return $stmt->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Upgrades or downgrades a groupmember to a different role.
|
||||
* @param int $groupID
|
||||
* @param int $userID
|
||||
* @param string $role
|
||||
* @throws AngryAlert
|
||||
* @throws HappyAlert
|
||||
*/
|
||||
function upgradeUser(int $groupID, int $userID, string $role) {
|
||||
if (!checkGroupAdmin($groupID, $_SESSION["userID"])) {
|
||||
throw new AngryAlert("Geen toestemming om te wijzigen");
|
||||
@@ -106,4 +165,28 @@ function upgradeUser(int $groupID, int $userID, string $role) {
|
||||
} else {
|
||||
throw new AngryAlert("Er is iets mis gegaan");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a group form the database.
|
||||
* @throws AngryAlert
|
||||
* @throws HappyAlert
|
||||
*/
|
||||
function deleteGroup() {
|
||||
if (!checkGroupAdmin($_POST["groupID"], $_SESSION["userID"])) {
|
||||
throw new AngryAlert("Geen toestemming om de groep te verwijderen!");
|
||||
}
|
||||
$stmt = prepareQuery("
|
||||
DELETE FROM
|
||||
`group_page`
|
||||
WHERE
|
||||
`groupID` = :groupID
|
||||
");
|
||||
$stmt->bindValue(":groupID", $_POST["groupID"]);
|
||||
$stmt->execute();
|
||||
if ($stmt->rowCount()) {
|
||||
throw new HappyAlert("Group verwijderd!");
|
||||
} else {
|
||||
throw new AngryAlert("Er is iets mis gegaan");
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,10 @@ function getSettings() {
|
||||
`location`,
|
||||
`birthdate`,
|
||||
`bio`,
|
||||
`profilepicture`,
|
||||
IFNULL(
|
||||
`profilepicture`,
|
||||
'../img/avatar-standard.png'
|
||||
) AS profilepicture,
|
||||
`showBday`,
|
||||
`showEmail`,
|
||||
`showProfile`
|
||||
|
||||
Reference in New Issue
Block a user