/** * 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"
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"); }
/** * @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/>"; }
/** * 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'); } }
'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);
/** * 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'); } }