@play.filters.csrf.RequireCSRFCheck

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 7

19 Source : ProblemController.java
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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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));
}