Example #1
0
 public function defollow($id, $prj = false)
 {
     if (!$this->isLogged()) {
         return Utils::$REGISTER_DB_MESSAGE;
     }
     // defollow to remove from members, if member
     if ($prj) {
         $project = new Project($id);
         if (in_array($_SESSION['id'], $project->getMembers())) {
             return Db::query(['DELETE FROM "groups_members" WHERE "to" = :id AND "from" = :me', [':id' => $id, ':me' => $_SESSION['id']]], Db::FETCH_ERRSTR);
         }
     }
     $table = ($prj ? 'groups_' : '') . 'followers';
     return Db::query(['DELETE FROM "' . $table . '" WHERE "to" = :id AND "from" = :me', [':id' => $id, ':me' => $_SESSION['id']]], Db::FETCH_ERRSTR);
 }
$user = new User();
$project = new Project();
ob_start(array('NERDZ\\Core\\Utils', 'minifyHTML'));
$id = isset($_POST['id']) && is_numeric($_POST['id']) ? $_POST['id'] : false;
if (!$user->isLogged() || !$id || !($info = $project->getObject($id)) || $project->getOwner($id) != $_SESSION['id']) {
    die($user->lang('ERROR'));
}
$vals = [];
function sortbyusername($a, $b)
{
    return strtolower($a) < strtolower($b) ? -1 : 1;
}
$vals['photo_n'] = $info->photo;
$vals['website_n'] = $info->website;
$vals['name_n'] = $info->name;
$mem = $project->getMembers($info->counter);
$vals['members_n'] = count($mem);
$vals['members_a'] = [];
foreach ($mem as &$uid) {
    $uid = User::getUsername($uid);
}
$vals['members_a'] = $mem;
usort($vals['members_a'], 'sortbyusername');
$vals['tok_n'] = NERDZ\Core\Security::getCsrfToken('edit');
$vals['id_n'] = $info->counter;
$vals['description_a'] = explode("\n", $info->description);
foreach ($vals['description_a'] as &$val) {
    $val = trim($val);
}
$vals['goal_a'] = explode("\n", $info->goal);
foreach ($vals['goal_a'] as &$val) {
switch (isset($_GET['action']) ? strtolower($_GET['action']) : '') {
    case 'del':
        $capt = new Captcha();
        if (!$capt->check(isset($_POST['captcha']) ? $_POST['captcha'] : '')) {
            die(NERDZ\Core\Utils::jsonResponse('error', $user->lang('ERROR') . ': ' . $user->lang('CAPTCHA')));
        }
        if (Db::NO_ERRNO != Db::query(['DELETE FROM "groups" WHERE "counter" = :id', [':id' => $id]], Db::FETCH_ERRNO)) {
            die(NERDZ\Core\Utils::jsonResponse('error', $user->lang('ERROR')));
        }
        break;
    case 'update':
        //validate fields
        require_once $_SERVER['DOCUMENT_ROOT'] . '/pages/common/validateproject.php';
        // Members
        $_POST['members'] = isset($_POST['members']) ? $_POST['members'] : '';
        $oldmem = $project->getMembers($id);
        $m = array_filter(array_unique(explode("\n", $_POST['members'])));
        $newmem = [];
        $userMap = [];
        foreach ($m as $v) {
            $username = trim($v);
            $uid = $user->getId($username);
            if (is_numeric($uid) && $uid > 0) {
                $newmem[] = $uid;
                $userMap[$uid] = $username;
            } else {
                die(NERDZ\Core\Utils::jsonResponse('error', $user->lang('ERROR') . ': Invalid member - ' . $v));
            }
        }
        //members to add
        $toadd = array_diff($newmem, $oldmem);