Exemplo n.º 1
0
function execCreateGroup($userID, $groupMember, $groupName)
{
    $userDAO = new UserDAO();
    $user = $userDAO->getUserByID($userID);
    if ($user->getRole()->getRoleID() == "4") {
        return "This user was forbidden to do this!";
    }
    if (gettype($groupMember) != "array") {
        return "Wrong type of group member!";
    }
    if (count($groupMember) === 0) {
        return "You must choose at least one group member!";
    }
    if (count(array_unique($groupMember)) < count($groupMember)) {
        return "Group member has duplicate value!";
    }
    if (in_array($userID, $groupMember)) {
        return "Group owner should not be a group member!";
    }
    if ($groupName === "" || !isValidGroupName($groupName)) {
        return "Invalid group name, length should be between 2 to 20 and only accepts a-z, A-Z, single space!";
    }
    $arr = array();
    foreach ($groupMember as $groupUserID) {
        $groupUser = $userDAO->getUserByID($groupUserID);
        if ($groupUser === null) {
            return "Could not find some group members!";
        }
        $arr[] = $groupUser;
    }
    $newGroup = new Group($user, $groupName, "1");
    $groupDAO = new GroupDAO();
    $groupDAO->insertGroup($newGroup);
    $gmDAO = new GroupMemberDAO();
    $newGM = new GroupMember($newGroup, $user, "1");
    $gmDAO->insertGroupMember($newGM);
    foreach ($arr as $gmUser) {
        $newGM = new GroupMember($newGroup, $gmUser, "2");
        $gmDAO->insertGroupMember($newGM);
    }
    return true;
}
function execAddToGroup($userID, $groupID, $adduserIDs)
{
    $userDAO = new UserDAO();
    $user = $userDAO->getUserByID($userID);
    if (!isValidID($groupID)) {
        return "Invalid group ID!";
    }
    if (gettype($adduserIDs) != "array") {
        return "Wrong type of user id!";
    }
    if (count($adduserIDs) === 0) {
        return "You have to choose users to add to this group!";
    }
    foreach ($adduserIDs as $adduserID) {
        if (!isValidID($adduserID)) {
            return "Invalid user ID!";
        }
    }
    $groupDAO = new GroupDAO();
    $group = $groupDAO->getGroupByID($groupID);
    if ($group === null) {
        return "Group doesn't exist!";
    }
    if ($group->getOwner()->getUserID() !== $userID) {
        return "You are not the owner of this group!";
    }
    $gmDAO = new GroupMemberDAO();
    foreach ($adduserIDs as $auID) {
        $aduser = $userDAO->getUserByID($auID);
        if ($aduser === null) {
            continue;
        }
        $gm = $gmDAO->getGroupMember($group, $aduser);
        if ($gm !== null) {
            continue;
        }
        $gm = new GroupMember($group, $aduser, "2");
        $gmDAO->insertGroupMember($gm);
    }
    return true;
}