Comments #207

Merged
11166932 merged 1 commits from marijn-groups into master 2017-02-03 11:13:47 +01:00
5 changed files with 64 additions and 0 deletions
Showing only changes of commit c69b5d8ed3 - Show all commits

View File

@@ -21,6 +21,8 @@ require_once "../queries/alerts.php";
include("../views/main.php"); include("../views/main.php");
$alertClass; $alertClass;
$alertMessage; $alertMessage;
// Select which button has been pressed.
if ($_SERVER["REQUEST_METHOD"] == "POST") { if ($_SERVER["REQUEST_METHOD"] == "POST") {
try { try {
switch ($_POST["form"]) { switch ($_POST["form"]) {

View File

@@ -14,6 +14,8 @@
<?php <?php
$alertClass; $alertClass;
$alertMessage; $alertMessage;
// Select which button has been pressed.
if ($_SERVER["REQUEST_METHOD"] == "POST") { if ($_SERVER["REQUEST_METHOD"] == "POST") {
try { try {
switch ($_POST["form"]) { switch ($_POST["form"]) {

View File

@@ -10,6 +10,11 @@ else {
or die('Error connecting to mysql server'); or die('Error connecting to mysql server');
} }
/**
* Helperfunction to create a database query.
* @param string $query
* @return PDOStatement
*/
function prepareQuery(string $query) : PDOStatement { function prepareQuery(string $query) : PDOStatement {
return $GLOBALS["db"]->prepare($query); return $GLOBALS["db"]->prepare($query);
} }

View File

@@ -2,6 +2,10 @@
require_once "../queries/checkInput.php"; require_once "../queries/checkInput.php";
require_once "../queries/picture.php"; require_once "../queries/picture.php";
require_once "../queries/alerts.php"; require_once "../queries/alerts.php";
/**
* Creates a group.
*/
function createGroup() function createGroup()
{ {
$createGroup = prepareQuery(" $createGroup = prepareQuery("

View File

@@ -1,4 +1,9 @@
<?php <?php
/**
* Gets the current settings for a group.
* @param int $groupID
* @return mixed
*/
function getGroupSettings(int $groupID) { function getGroupSettings(int $groupID) {
$stmt = prepareQuery(" $stmt = prepareQuery("
SELECT SELECT
@@ -15,6 +20,12 @@ function getGroupSettings(int $groupID) {
return $stmt->fetch(); return $stmt->fetch();
} }
/**
* Updates the settings for a group.
* @param int $groupID
* @throws AngryAlert
* @throws HappyAlert
*/
function updateGroupSettings(int $groupID) function updateGroupSettings(int $groupID)
{ {
if (!checkGroupAdmin($groupID, $_SESSION["userID"])) { 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 { function checkGroupAdmin(int $groupID, int $userID) : bool {
$stmt = prepareQuery(" $stmt = prepareQuery("
SELECT SELECT
@@ -60,18 +77,39 @@ function checkGroupAdmin(int $groupID, int $userID) : bool {
return ($role == "admin"); return ($role == "admin");
} }
/**
* Returns all normal members for a group.
* @param int $groupID
* @return array|bool
*/
function getAllGroupUsers(int $groupID) { function getAllGroupUsers(int $groupID) {
return getAllGroupMembers($groupID, 'member'); return getAllGroupMembers($groupID, 'member');
} }
/**
* Returns all admin for a group.
* @param int $groupID
* @return array|bool
*/
function getAllGroupAdmins(int $groupID) { function getAllGroupAdmins(int $groupID) {
return getAllGroupMembers($groupID, 'admin'); return getAllGroupMembers($groupID, 'admin');
} }
/**
* Returns all Moderators for a group.
* @param int $groupID
* @return array|bool
*/
function getAllGroupMods(int $groupID) { function getAllGroupMods(int $groupID) {
return getAllGroupMembers($groupID, 'mod'); 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) { function getAllGroupMembers(int $groupID, string $role) {
$stmt = prepareQuery(" $stmt = prepareQuery("
SELECT SELECT
@@ -97,6 +135,14 @@ function getAllGroupMembers(int $groupID, string $role) {
return $stmt->fetchAll(); 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) { function upgradeUser(int $groupID, int $userID, string $role) {
if (!checkGroupAdmin($groupID, $_SESSION["userID"])) { if (!checkGroupAdmin($groupID, $_SESSION["userID"])) {
throw new AngryAlert("Geen toestemming om te wijzigen"); throw new AngryAlert("Geen toestemming om te wijzigen");
@@ -121,6 +167,11 @@ function upgradeUser(int $groupID, int $userID, string $role) {
} }
} }
/**
* Removes a group form the database.
* @throws AngryAlert
* @throws HappyAlert
*/
function deleteGroup() { function deleteGroup() {
if (!checkGroupAdmin($_POST["groupID"], $_SESSION["userID"])) { if (!checkGroupAdmin($_POST["groupID"], $_SESSION["userID"])) {
throw new AngryAlert("Geen toestemming om de groep te verwijderen!"); throw new AngryAlert("Geen toestemming om de groep te verwijderen!");