Beispiel #1
0
 /**
  * Process message form
  */
 public static function postEditPage($id)
 {
     $app = \Slim\Slim::getInstance();
     $dao = new MessageDAO();
     $userDAO = new UserDAO();
     $strong = \Strong\Strong::getInstance();
     $user = $strong->getUser();
     $user = $userDAO->fetch($user['id']);
     $groupDAO = new GroupDAO();
     $groupsQuery = array();
     $senderDAO = new SenderDAO();
     $sendersQuery = array();
     $strong = \Strong\Strong::getInstance();
     $user2 = $strong->getUser();
     $groupsQuery['user_id'] = $user2['id'];
     $sendersQuery['user_id'] = $user2['id'];
     $groups = $groupDAO->getList($groupsQuery);
     if (0 == $groups['total']) {
         return $app->redirect(MAINURL . '/groups');
     }
     $senders = $senderDAO->getList($sendersQuery);
     if (0 == $senders['total']) {
         return $app->redirect(MAINURL . '/senders');
     }
     $app->view->set('KIND_TEXT_MSG', Message::KIND_TEXT_MSG);
     $app->view->set('KIND_PHOTO_MSG', Message::KIND_PHOTO_MSG);
     $app->view->set('KIND_AUDIO_MSG', Message::KIND_AUDIO_MSG);
     $app->view->set('KIND_VIDEO_MSG', Message::KIND_VIDEO_MSG);
     $item = $dao->fetch($id);
     if (empty($item)) {
         return $app->notFound();
     } else {
         if (!$userDAO->hasRole('ADMIN') && $item->getGroupId() > 0 && !in_array($item->getGroupId(), array_keys($groups['list']))) {
             return $app->status(403);
         }
         if (empty($_POST['data'])) {
             $_POST['data'] = $item->getData();
         }
     }
     $statuses = $dao->getStatuses($item);
     if (!empty($_POST['resend'])) {
         $dao->resend($item);
         $app->redirect(MAINURL . '/messages/edit/' . $item->getId());
         return;
     }
     $item->dataHuman = self::getHumanUrl($item);
     $mime = '*/*';
     if (Message::KIND_PHOTO_MSG == $item->getKind()) {
         $mime = 'image/*';
     }
     if (Message::KIND_AUDIO_MSG == $item->getKind()) {
         $mime = 'audio/*';
     }
     if (Message::KIND_VIDEO_MSG == $item->getKind()) {
         $mime = 'video/*';
     }
     $item->setUserId($user->getId());
     $dateParts = explode('-', $_POST['stime_date']);
     $timeParts = explode(':', $_POST['stime_time']);
     $stime = mktime($timeParts[0], $timeParts[1], $timeParts[2], $dateParts[1], $dateParts[2], $dateParts[0]);
     $item->setStime($stime);
     if ($item->getKind() == Message::KIND_TEXT_MSG) {
         $item->setData($_POST['data']);
     }
     $item->setGroupId($_POST['group_id']);
     $item->setSenderId($_POST['sender_id']);
     $personalized = array();
     $customField = $dao->getCustomFields($item);
     $numbers = $groupDAO->getNumbers($item->getGroupId());
     foreach ($customField as $num => $fields) {
         if (empty($numbers[$num])) {
             continue;
         }
         $personalized[$num] = $num;
     }
     $_POST['personalized'] = 'personalized $validator';
     $validator = new \Valitron\Validator($_POST);
     $validator->addRule('credits', function ($name, $value) use($user, $userDAO) {
         if ($userDAO->hasRole('ADMIN')) {
             return true;
         }
         return $user->getCredits() > 0;
     });
     $validator->addRule('time', function ($name, $value) {
         $value = explode(':', $value);
         if (count($value) != 3) {
             return false;
         }
         return true;
     });
     $validator->addRule('personalized', function ($name, $value) use($personalized, $numbers) {
         if (count($personalized) == 0) {
             return true;
         }
         return count($personalized) == count($numbers);
     });
     $validator->rule('personalized', 'personalized');
     $validator->label('Personalized');
     $validator->rule('required', 'group_id');
     $validator->label('Group');
     $validator->rule('required', 'sender_id');
     $validator->label('Sender');
     $validator->rule('date', 'stime_date');
     $validator->label('Date');
     $validator->rule('time', 'stime_time');
     $validator->label('Time');
     $validator->rule('required', 'data');
     $validator->label('Message');
     $validator->rule('credits', 'credits');
     $validator->label('Credits');
     if ($validator->validate()) {
         $item = $dao->save($item);
         if (!empty($_POST['send']) && empty($statuses)) {
             $dao->addStatus($item, Message::MESSAGE_STATUS_TO_SEND);
             if (!$userDAO->hasRole('ADMIN')) {
                 $numbers = $groupDAO->getNumbers($item->getGroupId());
                 $user->setCredits($user->getCredits() - count($numbers));
                 $userDAO->save($user);
             }
         }
         $app->redirect(MAINURL . '/messages/edit/' . $item->getId());
     } else {
         $app->view->set('menu', 'messages');
         $app->view->set('id', $id);
         $app->view->set('item', $item);
         $app->view->set('numbers', $numbers);
         $app->view->set('numbers_count', count($numbers));
         $app->view->set('personalized', $personalized);
         $app->view->set('personalized_count', count($personalized));
         $app->view->set('groups', $groups);
         $app->view->set('senders', $senders);
         $app->view->set('statuses', $statuses);
         $app->view->set('errors', $validator->errors());
         $app->view->set('mime', $mime);
         $app->render('messages/edit.twig.html');
     }
 }
                                    AND course_user.course_id = ?d AND course_user.status = 5
                                    AND user.id", $course_id);
        }
        echo json_encode($data);
        exit;
    }
}
load_js('tools.js');
// the exercise form has been submitted
if (isset($_POST['submitExercise'])) {
    $v = new Valitron\Validator($_POST);
    $v->addRule('ipORcidr', function($field, $value, array $params) {
        //explode here and run a loop
        $IPs = explode(',', $value);
        //matches IPv4/6 and IPv4/6 CIDR ranges
        foreach ($IPs as $ip){
            $valid = isIPv4($ip) || isIPv4cidr($ip) || isIPv6($ip) || isIPv6cidr($ip);
            if (!$valid) return false;
        }
        return true;
    }, $langIPInvalid);      
    $v->rule('required', array('exerciseTitle'));
    $v->rule('numeric', array('exerciseTimeConstraint', 'exerciseAttemptsAllowed'));
    $v->rule('date', array('exerciseEndDate', 'exerciseStartDate'));
    $v->rule('ipORcidr', array('exerciseIPLock')); 
    $v->labels(array(
        'exerciseTitle' => "$langTheField $langExerciseName",
        'exerciseTimeConstraint' => "$langTheField $langExerciseConstrain",
        'exerciseAttemptsAllowed' => "$langTheField $langExerciseAttemptsAllowed",
        'exerciseEndDate' => "$langTheField $langEnd",
        'exerciseStartDate' => "$langTheField $langStart",
        'exerciseIPLock' => "$langTheField IPs"
Beispiel #3
0
function submit_grades($grades_id, $grades, $email = false) {
    global $tool_content, $langGrades, $langWorkWrongInput, $course_id,
           $course_code, $langFormErrors, $langTheField, $m;
    $assignment = Database::get()->querySingle("SELECT * FROM assignment WHERE id = ?d", $grades_id);
    $errors = [];

    foreach ($grades as $key => $grade) {
        $v = new Valitron\Validator($grade);
        $v->addRule('emptyOrNumeric', function($field, $value, array $params) {
            if(is_numeric($value) || empty($value)) return true;
        });
        $v->rule('emptyOrNumeric', array('grade'));
        $v->rule('min', array('grade'), 0);
        $v->rule('max', array('grade'), $assignment->max_grade);
        $v->labels(array(
            'grade' => "$langTheField $m[grade]"
        ));
        if(!$v->validate()) {
            $valitron_errors = $v->errors();
            $errors["grade.$key"] = $valitron_errors['grade'];
        }
    }
    if(empty($errors)) {
        foreach ($grades as $sid => $grade) {
            $sid = intval($sid);
            $val = Database::get()->querySingle("SELECT grade from assignment_submit WHERE id = ?d", $sid)->grade;

            $grade = is_numeric($grade['grade']) ? $grade['grade'] : null;

            if ($val !== $grade) {
                if (Database::get()->query("UPDATE assignment_submit
                                            SET grade = ?f, grade_submission_date = NOW(), grade_submission_ip = ?s
                                            WHERE id = ?d", $grade, $_SERVER['REMOTE_ADDR'], $sid)->affectedRows > 0) {
                    Log::record($course_id, MODULE_ID_ASSIGN, LOG_MODIFY, array('id' => $sid,
                            'title' => $assignment->title,
                            'grade' => $grade));

                    //update gradebook if needed
                    if ($assignment->group_submissions) {
                        $group_id = Database::get()->querySingle("SELECT group_id FROM assignment_submit WHERE id = ?d", $sid)->group_id;
                        $user_ids = Database::get()->queryArray("SELECT user_id FROM group_members WHERE group_id = ?d", $group_id);
                        foreach ($user_ids as $user_id) {
                            update_gradebook_book($user_id, $assignment->id, $grade/$assignment->max_grade, GRADEBOOK_ACTIVITY_ASSIGNMENT);
                        }
                    } else {                    
                        $quserid = Database::get()->querySingle("SELECT uid FROM assignment_submit WHERE id = ?d", $sid)->uid;
                        update_gradebook_book($quserid, $assignment->id, $grade/$assignment->max_grade, GRADEBOOK_ACTIVITY_ASSIGNMENT);
                    }

                    if ($email) {
                        grade_email_notify($grades_id, $sid, $grade, '');
                    }
                    Session::Messages($langGrades, 'alert-success');
                }
            }
        }
        Session::Messages($langGrades, 'alert-success');
    } else {
        Session::flashPost()->Messages($langFormErrors)->Errors($errors);
    }
    redirect_to_home_page("modules/work/index.php?course=$course_code&id=$grades_id");

}
Beispiel #4
0
/**
 * @brief insert grades for activity
 * @global string $tool_content
 * @global type $langGradebookEdit
 * @param type $gradebook_id
 * @param type $actID
 */
function insert_grades($gradebook_id, $actID) {

    global $tool_content, $langGradebookEdit, $gradebook, $langTheField, 
           $course_code, $langFormErrors, $m;

    $errors = [];  
    $v = new Valitron\Validator($_POST['usersgrade']);
    $v->addRule('emptyOrNumeric', function($field, $value, array $params) {
        if(is_numeric($value) || empty($value)) return true;
    });    
    foreach ($_POST['usersgrade'] as $userID => $userInp) {
        $v->rule('emptyOrNumeric', array("$userID"));
        $v->rule('min', array("$userID"), 0);
        $v->rule('max', array("$userID"), $gradebook->range);
        $v->labels(array(
            "$userID" => "$langTheField $m[grade]"
        ));
    }
    if($v->validate()) {
        foreach ($_POST['usersgrade'] as $userID => $userInp) {
            if ($userInp == '') {
                Database::get()->query("DELETE FROM gradebook_book WHERE gradebook_activity_id = ?d AND uid = ?d", $actID, getDirectReference($userID));
            } else {               
                // //check if there is record for the user for this activity
                $checkForBook = Database::get()->querySingle("SELECT COUNT(id) AS count, id FROM gradebook_book
                                            WHERE gradebook_activity_id = ?d AND uid = ?d", $actID, getDirectReference($userID));
                if ($checkForBook->count) { // update
                    Database::get()->query("UPDATE gradebook_book SET grade = ?f WHERE id = ?d", $userInp/$gradebook->range, $checkForBook->id);
                } else { // insert
                    Database::get()->query("INSERT INTO gradebook_book SET uid = ?d, gradebook_activity_id = ?d, grade = ?f, comments = ?s", getDirectReference($userID), $actID, $userInp/$gradebook->range, '');
                }
            }
        }
    } else {     
        Session::flashPost()->Messages($langFormErrors)->Errors($v->errors());
        redirect_to_home_page("modules/gradebook/index.php?course=$course_code&gradebook_id=".getIndirectReference($gradebook->id)."&ins=".getIndirectReference($actID));        
    }    


    $message = "<div class='alert alert-success'>$langGradebookEdit</div>";
    $tool_content .= $message . "<br/>";
}
Beispiel #5
0
 /**
  * Process user edit form
  * 
  * @param number $id
  * @return boolean
  */
 public static function postEditPage($id)
 {
     $app = \Slim\Slim::getInstance();
     $dao = new UserDAO();
     if (!$dao->hasRole('ADMIN')) {
         return $app->status(403);
     }
     $item = $dao->fetch($id);
     if (empty($item)) {
         return $app->notFound();
     }
     $item->setUsername($_POST['username']);
     if ($_POST['credits'] > 0) {
         $item->setCredits($_POST['credits']);
     }
     if (is_array($_POST['roles'])) {
         $item->setRoles(implode(',', $_POST['roles']));
     } else {
         $item->setRoles('');
     }
     $item->setUsername($_POST['username']);
     if (!empty($_POST['password'])) {
         $item->setPassword(md5($_POST['password']));
     }
     $validator = new \Valitron\Validator($_POST);
     $validator->addRule('repeat', function ($name, $value) {
         if ($value != $_POST['password']) {
             return false;
         }
         return true;
     });
     $validator->addRule('unique_username', function ($name, $value) use($id, $dao) {
         $list = $dao->getList(array('username' => $value));
         if (!empty($list['list'])) {
             foreach ($list['list'] as $item) {
                 if ($item->getId() != $id) {
                     return false;
                 }
             }
         }
         return true;
     }, 'is not unique');
     $validator->rule('unique_username', 'username');
     $validator->rule('repeat', 'repeat');
     $validator->label('Password repeat');
     if (empty($id)) {
         $validator->rule('required', 'password');
     }
     $validator->rule('required', 'username');
     $validator->label('Login');
     if ($validator->validate()) {
         $item = $dao->save($item);
         if (empty($id)) {
             $app->flash('info', 'Account ' . $item->getUsername() . ' has been created successfully');
         }
         $app->redirect(MAINURL . '/users/edit/' . $item->getId());
     } else {
         $app->view->set('menu', 'users');
         $app->view->set('id', $id);
         $app->view->set('item', $item);
         $app->view->set('errors', $validator->errors());
         $app->render('users/edit.twig.html');
     }
 }
Beispiel #6
0
     'givenname_form', 'language_form', 'department', 'pstatus');        
 if (get_config('am_required') and @$_POST['pstatus'] == 5) {
     $requiredFields[] = 'am_form';
 }
 if (get_config('email_required')) {
     $requiredFields[] = 'email_form';
 }
 if (isset($_POST['auth_form']) && $_POST['auth_form'] == 1) {
     $requiredFields[] = 'password';
 }
 augment_registered_posted_variables_arr($requiredFields, true);
 $fieldLabels = array_combine($requiredFields, array_fill(0, count($requiredFields), $langTheField));
 $v = new Valitron\Validator($_POST);
 $v->labels($fieldLabels);
 $v->addRule('usernameFree', function($field, $value, array $params) {
     return !user_exists($value);
 }, $langUserFree);
 $v->rule('required', $requiredFields);
 $v->rule('usernameFree', 'uname_form', $langUserFree);
 $v->rule('required', 'uname_form')->message($langTheFieldIsRequired)->label('');
 $v->rule('in', 'language_form', $session->active_ui_languages);
 $v->rule('in', 'auth_form', get_auth_active_methods());
 $v->rule('email', 'email_form');
 
 cpf_validate_format_valitron($v);
 
 if (!$v->validate()) {
     Session::flashPost()->Messages($langFormErrors)->Errors($v->errors());
 } else {
     // register user
     $depid = intval(isset($_POST['department']) ? $_POST['department'] : 0);
Beispiel #7
0
 /**
  * Process edit sender form, validate, save to DB
  *
  * @param unknown $id
  * @return boolean
  */
 public static function postEditPage($id)
 {
     $app = \Slim\Slim::getInstance();
     $dao = new SenderDAO();
     $userDAO = new UserDAO();
     $item = $dao->fetch($id);
     if (empty($item)) {
         return $app->notFound();
     }
     $_POST['username'] = preg_replace('![^0-9]*!', '', $_POST['username']);
     $item->setNickname($_POST['nickname']);
     if (empty($id)) {
         $item->setUsername($_POST['username']);
     }
     if ($userDAO->hasRole('ADMIN')) {
         $item->setUserId($_POST['user_id']);
     } else {
         if (empty($id)) {
             $strong = \Strong\Strong::getInstance();
             $user = $strong->getUser();
             $item->setUserId($user['id']);
         }
     }
     $validator = new \Valitron\Validator($_POST);
     $validator->addRule('unique_username', function ($name, $value) use($id, $dao) {
         $list = $dao->getList(array('username' => $value));
         if (!empty($list['list'])) {
             foreach ($list['list'] as $item) {
                 if ($item->getId() != $id) {
                     return false;
                 }
             }
         }
         return true;
     }, 'is not unique');
     $validator->rule('unique_username', 'username');
     $validator->rule('required', 'nickname');
     $validator->rule('required', 'username');
     $validator->label('MSISDN');
     if ($validator->validate()) {
         $item = $dao->save($item);
         $app->flash('info', 'Sender ' . $item->getNickname() . ' has been created successfully');
         $app->redirect(MAINURL . '/senders/edit/' . $item->getId());
     } else {
         $app->view->set('menu', 'senders');
         $app->view->set('id', $id);
         $app->view->set('users', $userDAO->getList());
         $app->view->set('item', $item);
         $app->view->set('errors', $validator->errors());
         $app->render('senders/edit.twig.html');
     }
 }