Here are the examples of the java api @play.filters.csrf.RequireCSRFCheck taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
32 Examples
19
Source : ProblemController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@RequireCSRFCheck
public Result switchLanguage(Http.Request req, long problemId) {
String language = formFactory.form().bindFromRequest(req).get("langCode");
return redirect(req.getHeaders().get("Referer").orElse("")).addingToSession(req, newCurrentStatementLanguage(language));
}
19
Source : LessonController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@RequireCSRFCheck
public Result switchLanguage(Http.Request req, long lessonId) {
String language = formFactory.form().bindFromRequest(req).get("langCode");
return redirect(req.getHeaders().get("Referer").orElse("")).addingToSession(req, newCurrentStatementLanguage(language));
}
19
Source : JophielClientController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@RequireCSRFCheck
@Transactional
public Result postLogin(Http.Request req) {
Form<LoginForm> form = formFactory.form(LoginForm.clreplaced).bindFromRequest(req);
if (form.hasErrors()) {
return showLogin(req, form);
}
LoginForm data = form.get();
PlaySession session;
try {
session = sessionService.logIn(Credentials.of(data.username, data.preplacedword));
} catch (RemoteException e) {
if (e.getError().errorName().equals(PlaySessionErrors.ROLE_NOT_ALLOWED.name())) {
form = form.withGlobalError("User role not allowed to log in.");
} else if (e.getStatus() == 403) {
form = form.withGlobalError("Username or preplacedword incorrect.");
}
return showLogin(req, form);
}
return redirect(getServiceLoginUrl(session.getAuthCode(), getRootUrl(req))).removingFromFlash("localChangesError").withSession(new ImmutableMap.Builder<String, String>().put("version", JophielSessionUtils.getSessionVersion()).put("token", session.getToken()).put("userJid", session.getUserJid()).put("username", session.getUsername()).put("role", session.getRole()).put("avatar", getUserAvatarUrl(session.getUserJid())).build());
}
17
Source : ProblemController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postCreateProblem(Http.Request req) {
Form<ProblemCreateForm> form = formFactory.form(ProblemCreateForm.clreplaced).bindFromRequest(req);
if (formHasErrors(form)) {
return showCreateProblem(req, form);
}
if (problemStore.problemExistsBySlug(form.get().slug)) {
return showCreateProblem(req, form.withError("slug", "Slug already exists"));
}
ProblemCreateForm data = form.get();
Map<String, String> justCreatedProblem = newJustCreatedProblem(data.slug, data.additionalNote, data.initLanguageCode);
if (data.type.equals(ProblemType.PROGRAMMING.name())) {
return redirect(org.iatoki.judgels.sandalphon.problem.programming.routes.ProgrammingProblemController.createProgrammingProblem()).addingToSession(req, justCreatedProblem);
} else if (data.type.equals(ProblemType.BUNDLE.name())) {
return redirect(org.iatoki.judgels.sandalphon.problem.bundle.routes.BundleProblemController.createBundleProblem()).addingToSession(req, justCreatedProblem);
}
return internalServerError();
}
17
Source : ProblemEditorialController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postAddEditorialLanguage(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToManageStatementLanguages(req, problem));
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
String languageCode = formFactory.form().bindFromRequest(req).get("langCode");
if (!WorldLanguageRegistry.getInstance().getLanguages().containsKey(languageCode)) {
// TODO should use form so it can be rejected
throw new IllegalStateException("Languages is not from list.");
}
problemStore.addEditorialLanguage(actorJid, problem.getJid(), languageCode);
return redirect(routes.ProblemEditorialController.listEditorialLanguages(problem.getId()));
}
17
Source : LessonStatementController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postAddStatementLanguage(Http.Request req, long lessonId) {
String actorJid = getUserJid(req);
Lesson lesson = checkFound(lessonStore.findLessonById(lessonId));
checkAllowed(lessonRoleChecker.isAllowedToManageStatementLanguages(req, lesson));
lessonStore.createUserCloneIfNotExists(actorJid, lesson.getJid());
String languageCode = formFactory.form().bindFromRequest(req).get("langCode");
if (!WorldLanguageRegistry.getInstance().getLanguages().containsKey(languageCode)) {
// TODO should use form so it can be rejected
throw new IllegalStateException("Languages is not from list.");
}
lessonStore.addLanguage(actorJid, lesson.getJid(), languageCode);
return redirect(routes.LessonStatementController.listStatementLanguages(lesson.getId()));
}
16
Source : ProgrammingProblemController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postCreateProgrammingProblem(Http.Request req) {
String actorJid = getUserJid(req);
if (!wasProblemJustCreated(req)) {
return badRequest();
}
Form<ProgrammingProblemCreateForm> form = formFactory.form(ProgrammingProblemCreateForm.clreplaced).bindFromRequest(req);
if (formHasErrors(form)) {
return showCreateProgrammingProblem(req, form);
}
String slug = getJustCreatedProblemSlug(req);
String additionalNote = getJustCreatedProblemAdditionalNote(req);
String languageCode = getJustCreatedProblemInitLanguage(req);
ProgrammingProblemCreateForm data = form.get();
Problem problem = problemStore.createProblem(ProblemType.PROGRAMMING, slug, additionalNote, languageCode);
ProblemStatement statement = new ProblemStatement.Builder().replacedle(ProblemStatementUtils.getDefaultreplacedle(languageCode)).text(ProgrammingProblemStatementUtils.getDefaultText(languageCode)).build();
problemStore.updateStatement(null, problem.getJid(), languageCode, statement);
programmingProblemStore.initProgrammingProblem(problem.getJid(), data.gradingEngineName);
problemStore.initRepository(actorJid, problem.getJid());
problemTagStore.refreshDerivedTags(problem.getJid());
return redirect(org.iatoki.judgels.sandalphon.problem.base.routes.ProblemController.enterProblem(problem.getId())).addingToSession(req, newCurrentStatementLanguage(getJustCreatedProblemInitLanguage(req))).removingFromSession(req, removeJustCreatedProblem());
}
16
Source : ProblemEditorialController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postUploadEditorialMediaFiles(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToUploadStatementResources(req, problem));
Http.MultipartFormData<Files.TemporaryFile> body = req.body().asMultipartFormData();
Http.MultipartFormData.FilePart<Files.TemporaryFile> file;
file = body.getFile("file");
if (file != null) {
File mediaFile = file.getRef().path().toFile();
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
problemStore.uploadEditorialMediaFile(actorJid, problem.getJid(), mediaFile, file.getFilename());
return redirect(routes.ProblemEditorialController.listEditorialMediaFiles(problem.getId()));
}
file = body.getFile("fileZipped");
if (file != null) {
File mediaFile = file.getRef().path().toFile();
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
problemStore.uploadEditorialMediaFileZipped(actorJid, problem.getJid(), mediaFile);
return redirect(routes.ProblemEditorialController.listEditorialMediaFiles(problem.getId()));
}
return redirect(routes.ProblemEditorialController.listEditorialMediaFiles(problem.getId()));
}
16
Source : LessonStatementController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postUploadStatementMediaFiles(Http.Request req, long lessonId) {
String actorJid = getUserJid(req);
Lesson lesson = checkFound(lessonStore.findLessonById(lessonId));
checkAllowed(lessonRoleChecker.isAllowedToUploadStatementResources(req, lesson));
Http.MultipartFormData<TemporaryFile> body = req.body().asMultipartFormData();
Http.MultipartFormData.FilePart<TemporaryFile> file;
file = body.getFile("file");
if (file != null) {
File mediaFile = file.getRef().path().toFile();
lessonStore.createUserCloneIfNotExists(actorJid, lesson.getJid());
try {
lessonStore.uploadStatementMediaFile(actorJid, lesson.getJid(), mediaFile, file.getFilename());
} catch (IOException e) {
Form<UploadFileForm> form = formFactory.form(UploadFileForm.clreplaced);
boolean isAllowedToUploadMediaFiles = lessonRoleChecker.isAllowedToUploadStatementResources(req, lesson);
List<FileInfo> mediaFiles = lessonStore.getStatementMediaFiles(actorJid, lesson.getJid());
return showListStatementMediaFiles(req, form.withGlobalError("Error uploading media files."), lesson, mediaFiles, isAllowedToUploadMediaFiles);
}
return redirect(routes.LessonStatementController.listStatementMediaFiles(lesson.getId()));
}
file = body.getFile("fileZipped");
if (file != null) {
File mediaFile = file.getRef().path().toFile();
lessonStore.createUserCloneIfNotExists(actorJid, lesson.getJid());
try {
lessonStore.uploadStatementMediaFileZipped(actorJid, lesson.getJid(), mediaFile);
} catch (IOException e) {
Form<UploadFileForm> form = formFactory.form(UploadFileForm.clreplaced);
boolean isAllowedToUploadMediaFiles = lessonRoleChecker.isAllowedToUploadStatementResources(req, lesson);
List<FileInfo> mediaFiles = lessonStore.getStatementMediaFiles(actorJid, lesson.getJid());
return showListStatementMediaFiles(req, form.withGlobalError("Error uploading media files."), lesson, mediaFiles, isAllowedToUploadMediaFiles);
}
return redirect(routes.LessonStatementController.listStatementMediaFiles(lesson.getId()));
}
return redirect(routes.LessonStatementController.listStatementMediaFiles(lesson.getId()));
}
15
Source : ProblemEditorialController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditEditorial(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
String language = getEditorialLanguage(req, problem);
checkAllowed(problemRoleChecker.isAllowedToUpdateStatementInLanguage(req, problem, language));
Form<EditorialEditForm> form = formFactory.form(EditorialEditForm.clreplaced).bindFromRequest(req);
if (formHasErrors(form)) {
Set<String> allowedLanguages = problemRoleChecker.getAllowedEditorialLanguagesToUpdate(req, problem);
return showEditEditorial(req, language, form, problem, allowedLanguages);
}
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
EditorialEditForm data = form.get();
ProblemEditorial editorial = new ProblemEditorial.Builder().text(JudgelsPlayUtils.toSafeHtml(data.text)).build();
problemStore.updateEditorial(actorJid, problem.getJid(), language, editorial);
return redirect(routes.ProblemEditorialController.viewEditorial(problem.getId())).addingToSession(req, newCurrentStatementLanguage(language));
}
15
Source : LessonStatementController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditStatement(Http.Request req, long lessonId) {
String actorJid = getUserJid(req);
Lesson lesson = checkFound(lessonStore.findLessonById(lessonId));
String language = getStatementLanguage(req, lesson);
checkAllowed(lessonRoleChecker.isAllowedToUpdateStatementInLanguage(req, lesson, language));
Form<UpdateStatementForm> updateStatementForm = formFactory.form(UpdateStatementForm.clreplaced).bindFromRequest(req);
if (formHasErrors(updateStatementForm)) {
Set<String> allowedLanguages = lessonRoleChecker.getAllowedLanguagesToUpdate(req, lesson);
return showEditStatement(req, language, updateStatementForm, lesson, allowedLanguages);
}
lessonStore.createUserCloneIfNotExists(actorJid, lesson.getJid());
try {
UpdateStatementForm updateStatementData = updateStatementForm.get();
lessonStore.updateStatement(actorJid, lesson.getJid(), language, new LessonStatement.Builder().replacedle(updateStatementData.replacedle).text(JudgelsPlayUtils.toSafeHtml(updateStatementData.text)).build());
} catch (IOException e) {
Set<String> allowedLanguages = lessonRoleChecker.getAllowedLanguagesToUpdate(req, lesson);
return showEditStatement(req, language, updateStatementForm.withGlobalError("Error updating statement."), lesson, allowedLanguages);
}
return redirect(routes.LessonStatementController.editStatement(lesson.getId())).addingToSession(req, newCurrentStatementLanguage(language));
}
15
Source : LessonController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditLesson(Http.Request req, long lessonId) {
Lesson lesson = checkFound(lessonStore.findLessonById(lessonId));
checkAllowed(lessonRoleChecker.isAllowedToUpdateLesson(req, lesson));
Form<LessonEditForm> lessonEditForm = formFactory.form(LessonEditForm.clreplaced).bindFromRequest(req);
if (formHasErrors(lessonEditForm)) {
return showEditLesson(req, lessonEditForm, lesson);
}
if (!lesson.getSlug().equals(lessonEditForm.get().slug) && lessonStore.lessonExistsBySlug(lessonEditForm.get().slug)) {
return showEditLesson(req, lessonEditForm.withError("slug", "Slug already exists"), lesson);
}
LessonEditForm lessonEditData = lessonEditForm.get();
lessonStore.updateLesson(lesson.getJid(), lessonEditData.slug, lessonEditData.additionalNote);
return redirect(routes.LessonController.viewLesson(lesson.getId()));
}
15
Source : LessonController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postCreateLesson(Http.Request req) {
String actorJid = getUserJid(req);
Form<LessonCreateForm> lessonCreateForm = formFactory.form(LessonCreateForm.clreplaced).bindFromRequest(req);
if (formHasErrors(lessonCreateForm)) {
return showCreateLesson(req, lessonCreateForm);
}
if (lessonStore.lessonExistsBySlug(lessonCreateForm.get().slug)) {
return showCreateLesson(req, lessonCreateForm.withError("slug", "Slug already exists"));
}
LessonCreateForm lessonCreateData = lessonCreateForm.get();
Lesson lesson;
try {
lesson = lessonStore.createLesson(lessonCreateData.slug, lessonCreateData.additionalNote, lessonCreateData.initLanguageCode);
lessonStore.updateStatement(null, lesson.getJid(), lessonCreateData.initLanguageCode, new LessonStatement.Builder().replacedle(ProblemStatementUtils.getDefaultreplacedle(lessonCreateData.initLanguageCode)).text(LessonStatementUtils.getDefaultText(lessonCreateData.initLanguageCode)).build());
} catch (IOException e) {
throw new RuntimeException(e);
}
lessonStore.initRepository(actorJid, lesson.getJid());
return redirect(routes.LessonController.enterLesson(lesson.getId())).addingToSession(req, newCurrentStatementLanguage(lessonCreateData.initLanguageCode));
}
14
Source : ProgrammingProblemPartnerController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditPartner(Http.Request req, long problemId, long partnerId) {
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAuthorOrAbove(req, problem));
ProblemPartner problemPartner = checkFound(problemStore.findProblemPartnerById(partnerId));
Form<ProblemPartnerUpsertForm> problemForm = formFactory.form(ProblemPartnerUpsertForm.clreplaced).bindFromRequest(req);
Form<ProgrammingPartnerUpsertForm> programmingForm = formFactory.form(ProgrammingPartnerUpsertForm.clreplaced).bindFromRequest(req);
if (formHasErrors(problemForm) || formHasErrors(programmingForm)) {
return showEditPartner(req, problemForm, programmingForm, problem, problemPartner);
}
ProblemPartnerUpsertForm problemData = problemForm.get();
ProblemPartnerConfig problemConfig = new ProblemPartnerConfig.Builder().isAllowedToUpdateProblem(problemData.isAllowedToUpdateProblem).isAllowedToUpdateStatement(problemData.isAllowedToUpdateStatement).isAllowedToUploadStatementResources(problemData.isAllowedToUploadStatementResources).allowedStatementLanguagesToView(PartnerControllerUtils.splitByComma(problemData.allowedStatementLanguagesToView)).allowedStatementLanguagesToUpdate(PartnerControllerUtils.splitByComma(problemData.allowedStatementLanguagesToUpdate)).isAllowedToManageStatementLanguages(problemData.isAllowedToManageStatementLanguages).isAllowedToViewVersionHistory(problemData.isAllowedToViewVersionHistory).isAllowedToRestoreVersionHistory(problemData.isAllowedToRestoreVersionHistory).build();
ProgrammingPartnerUpsertForm programmingData = programmingForm.get();
ProblemPartnerChildConfig programmingConfig = new ProblemPartnerChildConfig.Builder().isAllowedToSubmit(programmingData.isAllowedToSubmit).isAllowedToManageGrading(programmingData.isAllowedToManageGrading).build();
problemStore.updateProblemPartner(partnerId, problemConfig, programmingConfig);
return redirect(org.iatoki.judgels.sandalphon.problem.base.partner.routes.ProblemPartnerController.viewPartners(problem.getId()));
}
14
Source : BundleProblemPartnerController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditPartner(Http.Request req, long problemId, long partnerId) {
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAuthorOrAbove(req, problem));
ProblemPartner problemPartner = checkFound(problemStore.findProblemPartnerById(partnerId));
Form<ProblemPartnerUpsertForm> problemForm = formFactory.form(ProblemPartnerUpsertForm.clreplaced).bindFromRequest(req);
Form<BundlePartnerUpsertForm> bundleForm = formFactory.form(BundlePartnerUpsertForm.clreplaced).bindFromRequest(req);
if (formHasErrors(problemForm) || formHasErrors(bundleForm)) {
return showEditPartner(req, problemForm, bundleForm, problem, problemPartner);
}
ProblemPartnerUpsertForm problemData = problemForm.get();
ProblemPartnerConfig problemConfig = new ProblemPartnerConfig.Builder().isAllowedToUpdateProblem(problemData.isAllowedToUpdateProblem).isAllowedToUpdateStatement(problemData.isAllowedToUpdateStatement).isAllowedToUploadStatementResources(problemData.isAllowedToUploadStatementResources).allowedStatementLanguagesToView(PartnerControllerUtils.splitByComma(problemData.allowedStatementLanguagesToView)).allowedStatementLanguagesToUpdate(PartnerControllerUtils.splitByComma(problemData.allowedStatementLanguagesToUpdate)).isAllowedToManageStatementLanguages(problemData.isAllowedToManageStatementLanguages).isAllowedToViewVersionHistory(problemData.isAllowedToViewVersionHistory).isAllowedToRestoreVersionHistory(problemData.isAllowedToRestoreVersionHistory).build();
BundlePartnerUpsertForm bundleData = bundleForm.get();
ProblemPartnerChildConfig bundleConfig = new ProblemPartnerChildConfig.Builder().isAllowedToSubmit(bundleData.isAllowedToSubmit).isAllowedToManageItems(bundleData.isAllowedToManageItems).build();
problemStore.updateProblemPartner(partnerId, problemConfig, bundleConfig);
return redirect(org.iatoki.judgels.sandalphon.problem.base.partner.routes.ProblemPartnerController.viewPartners(problem.getId()));
}
14
Source : BundleItemController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEdireplacedem(Http.Request req, long problemId, String itemJid) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
String language = getStatementLanguage(req, problem);
checkAllowed(problemRoleChecker.isAllowedToUpdateItemInLanguage(req, problem, language));
if (!bundleItemStore.bundleItemExistsInProblemWithCloneByJid(problem.getJid(), actorJid, itemJid)) {
return notFound();
}
BundleItem item = bundleItemStore.findInProblemWithCloneByItemJid(problem.getJid(), actorJid, itemJid);
ItemConfigAdapter itemConfigAdapter = ItemConfigAdapters.fromItemType(item.getType(), mapper);
Set<String> allowedLanguages = problemRoleChecker.getAllowedStatementLanguagesToUpdate(req, problem);
if (itemConfigAdapter == null) {
return notFound();
}
Form bundleItemConfForm = itemConfigAdapter.bindFormFromRequest(formFactory, req);
if (formHasErrors(bundleItemConfForm)) {
return showEdireplacedem(req, problem, language, item, itemConfigAdapter.getConfHtml(bundleItemConfForm, routes.BundleItemController.postEdireplacedem(problem.getId(), itemJid), "Update"), allowedLanguages);
}
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
bundleItemStore.updateBundleItem(problem.getJid(), actorJid, itemJid, itemConfigAdapter.getMetaFromForm(bundleItemConfForm), itemConfigAdapter.processRequestForm(bundleItemConfForm), language);
return redirect(routes.BundleItemController.viewItems(problem.getId())).addingToSession(req, newCurrentStatementLanguage(language));
}
14
Source : ProblemStatementController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postAddStatementLanguage(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToManageStatementLanguages(req, problem));
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
String languageCode = formFactory.form().bindFromRequest(req).get("langCode");
if (!WorldLanguageRegistry.getInstance().getLanguages().containsKey(languageCode)) {
// TODO should use form so it can be rejected
throw new IllegalStateException("Languages is not from list.");
}
problemStore.addStatementLanguage(actorJid, problem.getJid(), languageCode);
return redirect(routes.ProblemStatementController.listStatementLanguages(problem.getId()));
}
13
Source : ProgrammingProblemGradingController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postUploadGradingHelperFiles(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToManageGrading(req, problem));
Http.MultipartFormData<TemporaryFile> body = req.body().asMultipartFormData();
Http.MultipartFormData.FilePart<TemporaryFile> file;
file = body.getFile("file");
if (file != null) {
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
File helperFile = file.getRef().path().toFile();
programmingProblemStore.uploadGradingHelperFile(actorJid, problem.getJid(), helperFile, file.getFilename());
return redirect(routes.ProgrammingProblemGradingController.listGradingHelperFiles(problem.getId()));
}
file = body.getFile("fileZipped");
if (file != null) {
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
File helperFile = file.getRef().path().toFile();
programmingProblemStore.uploadGradingHelperFileZipped(actorJid, problem.getJid(), helperFile);
return redirect(routes.ProgrammingProblemGradingController.listGradingHelperFiles(problem.getId()));
}
return redirect(routes.ProgrammingProblemGradingController.listGradingHelperFiles(problem.getId()));
}
13
Source : ProblemStatementController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postUploadStatementMediaFiles(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToUploadStatementResources(req, problem));
Http.MultipartFormData<TemporaryFile> body = req.body().asMultipartFormData();
Http.MultipartFormData.FilePart<TemporaryFile> file;
file = body.getFile("file");
if (file != null) {
File mediaFile = file.getRef().path().toFile();
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
problemStore.uploadStatementMediaFile(actorJid, problem.getJid(), mediaFile, file.getFilename());
return redirect(routes.ProblemStatementController.listStatementMediaFiles(problem.getId()));
}
file = body.getFile("fileZipped");
if (file != null) {
File mediaFile = file.getRef().path().toFile();
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
problemStore.uploadStatementMediaFileZipped(actorJid, problem.getJid(), mediaFile);
return redirect(routes.ProblemStatementController.listStatementMediaFiles(problem.getId()));
}
return redirect(routes.ProblemStatementController.listStatementMediaFiles(problem.getId()));
}
13
Source : LessonVersionController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postCommitVersionLocalChanges(Http.Request req, long lessonId) {
String actorJid = getUserJid(req);
Lesson lesson = checkFound(lessonStore.findLessonById(lessonId));
checkAllowed(lessonRoleChecker.isPartnerOrAbove(req, lesson));
Form<VersionCommitForm> form = formFactory.form(VersionCommitForm.clreplaced).bindFromRequest(req);
if (formHasErrors(form)) {
boolean isClean = !lessonStore.userCloneExists(actorJid, lesson.getJid());
return showViewVersionLocalChanges(req, form, lesson, isClean);
}
VersionCommitForm data = form.get();
String localChangesErrorFlash = "";
if (lessonStore.fetchUserClone(actorJid, lesson.getJid())) {
localChangesErrorFlash = "Your working copy has diverged from the master copy. Please update your working copy.";
} else if (!lessonStore.commitThenMergeUserClone(actorJid, lesson.getJid(), data.replacedle, data.description)) {
localChangesErrorFlash = "Your local changes conflict with the master copy. Please remember, discard, and then reapply your local changes.";
} else if (!lessonStore.pushUserClone(actorJid, lesson.getJid())) {
localChangesErrorFlash = "Your local changes conflict with the master copy. Please remember, discard, and then reapply your local changes.";
} else {
lessonStore.discardUserClone(actorJid, lesson.getJid());
}
return redirect(routes.LessonVersionController.viewVersionLocalChanges(lesson.getId())).flashing("localChangesError", localChangesErrorFlash);
}
13
Source : LessonPartnerController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditPartner(Http.Request req, long lessonId, long partnerId) {
Lesson lesson = checkFound(lessonStore.findLessonById(lessonId));
checkAllowed(lessonRoleChecker.isAuthorOrAbove(req, lesson));
LessonPartner lessonPartner = checkFound(lessonStore.findLessonPartnerById(partnerId));
Form<LessonPartnerUpsertForm> lessonForm = formFactory.form(LessonPartnerUpsertForm.clreplaced).bindFromRequest(req);
if (formHasErrors(lessonForm)) {
return showEditPartner(req, lessonForm, lesson, lessonPartner);
}
LessonPartnerUpsertForm lessonData = lessonForm.get();
LessonPartnerConfig lessonConfig = new LessonPartnerConfig.Builder().isAllowedToUpdateLesson(lessonData.isAllowedToUpdateLesson).isAllowedToUpdateStatement(lessonData.isAllowedToUpdateStatement).isAllowedToUploadStatementResources(lessonData.isAllowedToUploadStatementResources).allowedStatementLanguagesToView(PartnerControllerUtils.splitByComma(lessonData.allowedStatementLanguagesToView)).allowedStatementLanguagesToUpdate(PartnerControllerUtils.splitByComma(lessonData.allowedStatementLanguagesToUpdate)).isAllowedToManageStatementLanguages(lessonData.isAllowedToManageStatementLanguages).isAllowedToViewVersionHistory(lessonData.isAllowedToViewVersionHistory).isAllowedToRestoreVersionHistory(lessonData.isAllowedToRestoreVersionHistory).build();
lessonStore.updateLessonPartner(partnerId, lessonConfig);
return redirect(routes.LessonPartnerController.editPartner(lesson.getId(), lessonPartner.getId()));
}
12
Source : ProgrammingProblemGradingController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postUploadGradingTestDataFiles(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToManageGrading(req, problem));
Http.MultipartFormData<TemporaryFile> body = req.body().asMultipartFormData();
Http.MultipartFormData.FilePart<TemporaryFile> file;
file = body.getFile("file");
if (file != null) {
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
File testDataFile = file.getRef().path().toFile();
programmingProblemStore.uploadGradingTestDataFile(actorJid, problem.getJid(), testDataFile, file.getFilename());
return redirect(routes.ProgrammingProblemGradingController.listGradingTestDataFiles(problem.getId()));
}
file = body.getFile("fileZipped");
if (file != null) {
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
File testDataFile = file.getRef().path().toFile();
programmingProblemStore.uploadGradingTestDataFileZipped(actorJid, problem.getJid(), testDataFile);
return redirect(routes.ProgrammingProblemGradingController.listGradingTestDataFiles(problem.getId()));
}
return redirect(routes.ProgrammingProblemGradingController.listGradingTestDataFiles(problem.getId()));
}
12
Source : ProgrammingProblemGradingController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditLanguageRestriction(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToManageGrading(req, problem));
Form<LanguageRestrictionEditForm> form = formFactory.form(LanguageRestrictionEditForm.clreplaced).bindFromRequest(req);
if (formHasErrors(form)) {
return showEditLanguageRestriction(req, form, problem);
}
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
LanguageRestrictionEditForm data = form.get();
LanguageRestriction languageRestriction = LanguageRestrictionAdapter.createLanguageRestrictionFromForm(data.allowedLanguageNames, data.isAllowedAll);
programmingProblemStore.updateLanguageRestriction(actorJid, problem.getJid(), languageRestriction);
return redirect(routes.ProgrammingProblemGradingController.editLanguageRestriction(problem.getId()));
}
12
Source : ProblemVersionController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postCommitVersionLocalChanges(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isPartnerOrAbove(req, problem));
Form<VersionCommitForm> form = formFactory.form(VersionCommitForm.clreplaced).bindFromRequest(req);
if (formHasErrors(form)) {
boolean isClean = !problemStore.userCloneExists(actorJid, problem.getJid());
return showViewVersionLocalChanges(req, form, problem, isClean);
}
VersionCommitForm data = form.get();
String localChangesErrorFlash = "";
if (problemStore.fetchUserClone(actorJid, problem.getJid())) {
localChangesErrorFlash = "Your working copy has diverged from the master copy. Please update your working copy.";
} else if (!problemStore.commitThenMergeUserClone(actorJid, problem.getJid(), data.replacedle, data.description)) {
localChangesErrorFlash = "Your local changes conflict with the master copy. Please remember, discard, and then reapply your local changes.";
} else if (!problemStore.pushUserClone(actorJid, problem.getJid())) {
localChangesErrorFlash = "Your local changes conflict with the master copy. Please remember, discard, and then reapply your local changes.";
} else {
problemStore.discardUserClone(actorJid, problem.getJid());
problemTagStore.refreshDerivedTags(problem.getJid());
}
return redirect(routes.ProblemVersionController.viewVersionLocalChanges(problem.getId())).flashing("localChangesError", localChangesErrorFlash);
}
11
Source : ProgrammingProblemPartnerController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postAddPartner(Http.Request req, long problemId) {
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAuthorOrAbove(req, problem));
Form<ProblemPartnerUsernameForm> usernameForm = formFactory.form(ProblemPartnerUsernameForm.clreplaced).bindFromRequest(req);
Form<ProblemPartnerUpsertForm> problemForm = formFactory.form(ProblemPartnerUpsertForm.clreplaced).bindFromRequest(req);
Form<ProgrammingPartnerUpsertForm> programmingForm = formFactory.form(ProgrammingPartnerUpsertForm.clreplaced).bindFromRequest(req);
if (formHasErrors(usernameForm) || formHasErrors(problemForm) || formHasErrors(programmingForm)) {
return showAddPartner(req, usernameForm, problemForm, programmingForm, problem);
}
String username = usernameForm.get().username;
ProblemPartnerUpsertForm problemData = problemForm.get();
ProgrammingPartnerUpsertForm programmingData = programmingForm.get();
Map<String, String> usernameToJidMap = userSearchService.translateUsernamesToJids(ImmutableSet.of(username));
if (!usernameToJidMap.containsKey(username)) {
return showAddPartner(req, usernameForm.withError("username", "Username not found."), problemForm, programmingForm, problem);
}
String userJid = usernameToJidMap.get(username);
if (problemStore.isUserPartnerForProblem(problem.getJid(), userJid)) {
return showAddPartner(req, usernameForm.withError("username", "This user is already a partner."), problemForm, programmingForm, problem);
}
ProblemPartnerConfig problemConfig = new ProblemPartnerConfig.Builder().isAllowedToUpdateProblem(problemData.isAllowedToUpdateProblem).isAllowedToUpdateStatement(problemData.isAllowedToUpdateStatement).isAllowedToUploadStatementResources(problemData.isAllowedToUploadStatementResources).allowedStatementLanguagesToView(PartnerControllerUtils.splitByComma(problemData.allowedStatementLanguagesToView)).allowedStatementLanguagesToUpdate(PartnerControllerUtils.splitByComma(problemData.allowedStatementLanguagesToUpdate)).isAllowedToManageStatementLanguages(problemData.isAllowedToManageStatementLanguages).isAllowedToViewVersionHistory(problemData.isAllowedToViewVersionHistory).isAllowedToRestoreVersionHistory(problemData.isAllowedToRestoreVersionHistory).build();
ProblemPartnerChildConfig programmingConfig = new ProblemPartnerChildConfig.Builder().isAllowedToSubmit(programmingData.isAllowedToSubmit).isAllowedToManageGrading(programmingData.isAllowedToManageGrading).build();
problemStore.createProblemPartner(problem.getJid(), userJid, problemConfig, programmingConfig);
return redirect(org.iatoki.judgels.sandalphon.problem.base.partner.routes.ProblemPartnerController.viewPartners(problem.getId()));
}
11
Source : BundleProblemPartnerController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postAddPartner(Http.Request req, long problemId) {
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAuthorOrAbove(req, problem));
Form<ProblemPartnerUsernameForm> usernameForm = formFactory.form(ProblemPartnerUsernameForm.clreplaced).bindFromRequest(req);
Form<ProblemPartnerUpsertForm> problemForm = formFactory.form(ProblemPartnerUpsertForm.clreplaced).bindFromRequest(req);
Form<BundlePartnerUpsertForm> bundleForm = formFactory.form(BundlePartnerUpsertForm.clreplaced).bindFromRequest(req);
if (formHasErrors(usernameForm) || formHasErrors(problemForm) || formHasErrors(bundleForm)) {
return showAddPartner(req, usernameForm, problemForm, bundleForm, problem);
}
String username = usernameForm.get().username;
ProblemPartnerUpsertForm problemData = problemForm.get();
BundlePartnerUpsertForm bundleData = bundleForm.get();
Map<String, String> usernameToJidMap = userSearchService.translateUsernamesToJids(ImmutableSet.of(username));
if (!usernameToJidMap.containsKey(username)) {
return showAddPartner(req, usernameForm.withError("username", "Username not found."), problemForm, bundleForm, problem);
}
String userJid = usernameToJidMap.get(username);
if (problemStore.isUserPartnerForProblem(problem.getJid(), userJid)) {
return showAddPartner(req, usernameForm.withError("username", "This user is already a partner."), problemForm, bundleForm, problem);
}
ProblemPartnerConfig problemConfig = new ProblemPartnerConfig.Builder().isAllowedToUpdateProblem(problemData.isAllowedToUpdateProblem).isAllowedToUpdateStatement(problemData.isAllowedToUpdateStatement).isAllowedToUploadStatementResources(problemData.isAllowedToUploadStatementResources).allowedStatementLanguagesToView(PartnerControllerUtils.splitByComma(problemData.allowedStatementLanguagesToView)).allowedStatementLanguagesToUpdate(PartnerControllerUtils.splitByComma(problemData.allowedStatementLanguagesToUpdate)).isAllowedToManageStatementLanguages(problemData.isAllowedToManageStatementLanguages).isAllowedToViewVersionHistory(problemData.isAllowedToViewVersionHistory).isAllowedToRestoreVersionHistory(problemData.isAllowedToRestoreVersionHistory).build();
ProblemPartnerChildConfig bundleConfig = new ProblemPartnerChildConfig.Builder().isAllowedToSubmit(bundleData.isAllowedToSubmit).isAllowedToManageItems(bundleData.isAllowedToManageItems).build();
problemStore.createProblemPartner(problem.getJid(), userJid, problemConfig, bundleConfig);
return redirect(org.iatoki.judgels.sandalphon.problem.base.partner.routes.ProblemPartnerController.viewPartners(problem.getId()));
}
11
Source : ProblemController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditProblem(Http.Request req, long problemId) {
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToUpdateStatement(req, problem));
Form<ProblemEditForm> form = formFactory.form(ProblemEditForm.clreplaced).bindFromRequest(req);
if (formHasErrors(form)) {
return showEditProblem(req, form, problem);
}
if (!problem.getSlug().equals(form.get().slug) && problemStore.problemExistsBySlug(form.get().slug)) {
return showEditProblem(req, form.withError("slug", "Slug already exists"), problem);
}
ProblemEditForm data = form.get();
Set<String> usernames = new HashSet<>();
usernames.addAll(ImmutableSet.copyOf(Optional.ofNullable(data.writerUsernames).orElse("").split(",")));
usernames.addAll(ImmutableSet.copyOf(Optional.ofNullable(data.developerUsernames).orElse("").split(",")));
usernames.addAll(ImmutableSet.copyOf(Optional.ofNullable(data.testerUsernames).orElse("").split(",")));
usernames.addAll(ImmutableSet.copyOf(Optional.ofNullable(data.editorialistUsernames).orElse("").split(",")));
Map<String, String> jidsMap = userSearchService.translateUsernamesToJids(usernames);
problemStore.updateProblem(problem.getJid(), data.slug, data.additionalNote);
Map<ProblemSetterRole, List<String>> setters = problemStore.findProblemSettersByProblemJid(problem.getJid());
updateProblemSetters(problem.getJid(), ProblemSetterRole.WRITER, data.writerUsernames, setters, jidsMap);
updateProblemSetters(problem.getJid(), ProblemSetterRole.DEVELOPER, data.developerUsernames, setters, jidsMap);
updateProblemSetters(problem.getJid(), ProblemSetterRole.TESTER, data.testerUsernames, setters, jidsMap);
updateProblemSetters(problem.getJid(), ProblemSetterRole.EDITORIALIST, data.editorialistUsernames, setters, jidsMap);
return redirect(routes.ProblemController.viewProblem(problem.getId()));
}
10
Source : ProgrammingProblemGradingController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditGradingEngine(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToManageGrading(req, problem));
Form<GradingEngineEditForm> form = formFactory.form(GradingEngineEditForm.clreplaced).bindFromRequest(req);
if (formHasErrors(form)) {
return showEditGradingEngine(req, form, problem);
}
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
String gradingEngine = form.get().gradingEngineName;
String originalGradingEngine = programmingProblemStore.getGradingEngine(actorJid, problem.getJid());
if (!gradingEngine.equals(originalGradingEngine)) {
GradingConfig config = GradingEngineRegistry.getInstance().get(gradingEngine).createDefaultConfig();
programmingProblemStore.updateGradingConfig(actorJid, problem.getJid(), config);
}
programmingProblemStore.updateGradingEngine(actorJid, problem.getJid(), gradingEngine);
return redirect(routes.ProgrammingProblemGradingController.editGradingConfig(problem.getId()));
}
10
Source : BundleItemController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postCreateItem(Http.Request req, long problemId, String itemType, long page, String orderBy, String orderDir, String filterString) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToManageItems(req, problem));
if (!EnumUtils.isValidEnum(ItemType.clreplaced, itemType)) {
Form<ItemCreateForm> form = formFactory.form(ItemCreateForm.clreplaced).withGlobalError("Item undefined.");
Page<BundleItem> items = bundleItemStore.getPageOfBundleItemsInProblemWithClone(problem.getJid(), actorJid, page, PAGE_SIZE, orderBy, orderDir, filterString);
return showListCreateItems(req, problem, items, orderBy, orderDir, filterString, form);
}
String language = getStatementLanguage(req, problem);
ItemConfigAdapter itemConfigAdapter = ItemConfigAdapters.fromItemType(ItemType.valueOf(itemType), mapper);
if (itemConfigAdapter == null) {
Form<ItemCreateForm> form = formFactory.form(ItemCreateForm.clreplaced).withGlobalError("Item undefined");
Page<BundleItem> items = bundleItemStore.getPageOfBundleItemsInProblemWithClone(problem.getJid(), actorJid, page, PAGE_SIZE, orderBy, orderDir, filterString);
return showListCreateItems(req, problem, items, orderBy, orderDir, filterString, form);
}
Form bundleItemConfForm = itemConfigAdapter.bindFormFromRequest(formFactory, req);
if (formHasErrors(bundleItemConfForm)) {
return showCreateItem(req, problem, itemType, itemConfigAdapter.getConfHtml(bundleItemConfForm, routes.BundleItemController.postCreateItem(problem.getId(), itemType, page, orderBy, orderDir, filterString), "Create"), page, orderBy, orderDir, filterString);
}
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
if (bundleItemStore.bundleItemExistsInProblemWithCloneByMeta(problem.getJid(), actorJid, itemConfigAdapter.getMetaFromForm(bundleItemConfForm))) {
Page<BundleItem> items = bundleItemStore.getPageOfBundleItemsInProblemWithClone(problem.getJid(), actorJid, page, PAGE_SIZE, orderBy, orderDir, filterString);
return showListCreateItems(req, problem, items, orderBy, orderDir, filterString, bundleItemConfForm.withGlobalError("Duplicate meta on item."));
}
bundleItemStore.createBundleItem(problem.getJid(), actorJid, ItemType.valueOf(itemType), itemConfigAdapter.getMetaFromForm(bundleItemConfForm), itemConfigAdapter.processRequestForm(bundleItemConfForm), problemStore.getStatementDefaultLanguage(actorJid, problem.getJid()));
return redirect(routes.BundleItemController.viewItems(problem.getId())).addingToSession(req, newCurrentStatementLanguage(language));
}
10
Source : LessonPartnerController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postAddPartner(Http.Request req, long lessonId) {
Lesson lesson = checkFound(lessonStore.findLessonById(lessonId));
checkAllowed(lessonRoleChecker.isAuthorOrAbove(req, lesson));
Form<LessonPartnerUsernameForm> usernameForm = formFactory.form(LessonPartnerUsernameForm.clreplaced).bindFromRequest(req);
Form<LessonPartnerUpsertForm> lessonForm = formFactory.form(LessonPartnerUpsertForm.clreplaced).bindFromRequest(req);
if (formHasErrors(usernameForm) || formHasErrors(lessonForm)) {
return showAddPartner(req, usernameForm, lessonForm, lesson);
}
String username = usernameForm.get().username;
LessonPartnerUpsertForm lessonData = lessonForm.get();
Map<String, String> usernameToJidMap = userSearchService.translateUsernamesToJids(ImmutableSet.of(username));
if (!usernameToJidMap.containsKey(username)) {
return showAddPartner(req, usernameForm.withError("username", "Username not found"), lessonForm, lesson);
}
String userJid = usernameToJidMap.get(username);
if (lessonStore.isUserPartnerForLesson(lesson.getJid(), userJid)) {
return showAddPartner(req, usernameForm.withError("username", "This user is already a partner."), lessonForm, lesson);
}
LessonPartnerConfig partnerConfig = new LessonPartnerConfig.Builder().isAllowedToUpdateLesson(lessonData.isAllowedToUpdateLesson).isAllowedToUpdateStatement(lessonData.isAllowedToUpdateStatement).isAllowedToUploadStatementResources(lessonData.isAllowedToUploadStatementResources).allowedStatementLanguagesToView(PartnerControllerUtils.splitByComma(lessonData.allowedStatementLanguagesToView)).allowedStatementLanguagesToUpdate(PartnerControllerUtils.splitByComma(lessonData.allowedStatementLanguagesToUpdate)).isAllowedToManageStatementLanguages(lessonData.isAllowedToManageStatementLanguages).isAllowedToViewVersionHistory(lessonData.isAllowedToViewVersionHistory).isAllowedToRestoreVersionHistory(lessonData.isAllowedToRestoreVersionHistory).build();
lessonStore.createLessonPartner(lesson.getJid(), userJid, partnerConfig);
return redirect(routes.LessonPartnerController.viewPartners(lesson.getId()));
}
9
Source : ProgrammingProblemGradingController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditGradingConfig(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
checkAllowed(problemRoleChecker.isAllowedToManageGrading(req, problem));
String engine = programmingProblemStore.getGradingEngine(actorJid, problem.getJid());
Form<?> form = GradingEngineAdapterRegistry.getInstance().getByGradingEngineName(engine).createEmptyForm(formFactory).bindFromRequest(req);
if (formHasErrors(form)) {
List<FileInfo> testDataFiles = programmingProblemStore.getGradingTestDataFiles(actorJid, problem.getJid());
List<FileInfo> helperFiles = programmingProblemStore.getGradingHelperFiles(actorJid, problem.getJid());
return showEditGradingConfig(req, form, problem, engine, testDataFiles, helperFiles);
}
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
GradingConfig config = GradingEngineAdapterRegistry.getInstance().getByGradingEngineName(engine).createConfigFromForm(form);
programmingProblemStore.updateGradingConfig(actorJid, problem.getJid(), config);
return redirect(routes.ProgrammingProblemGradingController.editGradingConfig(problem.getId()));
}
8
Source : ProblemStatementController.java
with GNU General Public License v2.0
from ia-toki
with GNU General Public License v2.0
from ia-toki
@Transactional
@RequireCSRFCheck
public Result postEditStatement(Http.Request req, long problemId) {
String actorJid = getUserJid(req);
Problem problem = checkFound(problemStore.findProblemById(problemId));
String language = getStatementLanguage(req, problem);
checkAllowed(problemRoleChecker.isAllowedToUpdateStatementInLanguage(req, problem, language));
Form<UpdateStatementForm> updateStatementForm = formFactory.form(UpdateStatementForm.clreplaced).bindFromRequest(req);
if (formHasErrors(updateStatementForm)) {
Set<String> allowedLanguages = problemRoleChecker.getAllowedStatementLanguagesToUpdate(req, problem);
return showEditStatement(req, language, updateStatementForm, problem, allowedLanguages);
}
problemStore.createUserCloneIfNotExists(actorJid, problem.getJid());
UpdateStatementForm updateStatementData = updateStatementForm.get();
ProblemStatement statement = new ProblemStatement.Builder().replacedle(updateStatementData.replacedle).text(JudgelsPlayUtils.toSafeHtml(updateStatementData.text)).build();
problemStore.updateStatement(actorJid, problem.getJid(), language, statement);
return redirect(routes.ProblemStatementController.viewStatement(problem.getId())).addingToSession(req, newCurrentStatementLanguage(language));
}