예제 #1
0
  public static Result upload() {
    MultipartFormData body = request().body().asMultipartFormData();
    FilePart input = body.getFile("inputFile");

    if (input != null) {
      String fileName = input.getFilename();
      String contentType = input.getContentType();
      File file = input.getFile();
      SeqFile seq = new SeqFile(file);
      return redirect(routes.Application.results(true));
    } else {
      flash("error", "Missing file");
      return redirect(routes.Application.results(false));
    }
  }
예제 #2
0
  /**
   * 로그인 처리 시스템 설정에서 가입승인 기능이 활성화 되어 있고 사용자 상태가 잠금상태(미승인?)라면 계정이 잠겼다는 메시지를 노출하고 로그인 폼으로 돌아감 시스템 설정에서
   * 가입승인 기능이 활성화 되어 있지 않다면, 사용자 상태가 잠금상태라도 로그인이 가능하다 (스펙확인 필요) 요청의 정보로 사용자 인증에 성공하면 로그인쿠키를 생성하고
   * 로그인유지하기가 선택되었다면, 로그인유지를 위한 쿠키를 별도로 생성한다 인증에 실패하면 관련된 메시지를 노출하고 로그인 폼으로 돌아간다
   *
   * @return
   */
  public static Result login() {
    Form<User> userForm = form(User.class).bindFromRequest();
    if (userForm.hasErrors()) {
      return badRequest(login.render("title.login", userForm));
    }
    User sourceUser = form(User.class).bindFromRequest().get();

    if (isUseSignUpConfirm()) {
      if (User.findByLoginId(sourceUser.loginId).state == UserState.LOCKED) {
        flash(Constants.WARNING, "user.locked");
        return redirect(routes.UserApp.loginForm());
      }
    }

    if (User.findByLoginId(sourceUser.loginId).state == UserState.DELETED) {
      flash(Constants.WARNING, "user.deleted");
      return redirect(routes.UserApp.loginForm());
    }

    User authenticate = authenticateWithPlainPassword(sourceUser.loginId, sourceUser.password);

    if (authenticate != null) {
      addUserInfoToSession(authenticate);
      if (sourceUser.rememberMe) {
        setupRememberMe(authenticate);
      }
      return redirect(routes.Application.index());
    }

    flash(Constants.WARNING, "user.login.failed");
    return redirect(routes.UserApp.loginForm());
  }
예제 #3
0
파일: UserApp.java 프로젝트: jeonnoej/yobi
  /**
   * 사용자 가입 화면 이동
   *
   * @return
   */
  public static Result signupForm() {
    if (!UserApp.currentUser().isAnonymous()) {
      return redirect(routes.Application.index());
    }

    return ok(signup.render("title.signup", form(User.class)));
  }
예제 #4
0
 public static Result registerNewUser() {
   Form<Register> regForm = Form.form(Register.class).bindFromRequest();
   if (regForm.hasErrors()) {
     return badRequest(register.render(regForm));
   } else {
     return redirect(routes.Application.login());
   }
 }
예제 #5
0
 public static Result newTask() {
   Form<Task> filledForm = taskForm.bindFromRequest();
   if (filledForm.hasErrors()) return badRequest(views.html.task.render(Task.all(), filledForm));
   else {
     Task.createTask(filledForm.get());
     return redirect(routes.Application.getTasks());
   }
 }
예제 #6
0
 public static Result authenticate() {
   Form<Login> loginForm = Form.form(Login.class).bindFromRequest();
   if (loginForm.hasErrors()) {
     return badRequest(login.render(loginForm));
   } else {
     session().clear();
     session("email", loginForm.get().email);
     return redirect(routes.Application.start());
   }
 }
예제 #7
0
파일: UserApp.java 프로젝트: jeonnoej/yobi
  /**
   * 로그인 폼으로 이동
   *
   * @return
   */
  public static Result loginForm() {
    if (!UserApp.currentUser().isAnonymous()) {
      return redirect(routes.Application.index());
    }

    String redirectUrl = request().getQueryString("redirectUrl");
    String loginFormUrl = routes.UserApp.loginForm().url();
    String referer = request().getHeader("Referer");
    if (StringUtils.isEmpty(redirectUrl) && !StringUtils.equals(loginFormUrl, referer)) {
      redirectUrl = request().getHeader("Referer");
    }
    return ok(login.render("title.login", form(User.class), redirectUrl));
  }
  public static Result enter() {
    Map<String, String[]> params;
    params = request().body().asFormUrlEncoded();

    String email = params.get("email")[0];
    User user = User.find.byId(email);
    if (user == null) {
      return redirect(routes.Application.login());
    } else {
      session("email", email);
      return redirect(routes.Chats.allChats());
    }
  }
예제 #9
0
  /**
   * Start the workflow run asynchronously.
   *
   * @param name The name of the workflow
   * @return json response containing id
   */
  @Security.Authenticated(Secured.class)
  public Result runWorkflow(String name) {
    FormDefinition form = formDefinitionForWorkflow(name);

    // Process file upload first if present in form data
    Http.MultipartFormData body = request().body().asMultipartFormData();

    for (Object obj : body.getFiles()) {
      Http.MultipartFormData.FilePart filePart = (Http.MultipartFormData.FilePart) obj;
      UserUpload userUpload = uploadFile(filePart);

      BasicField fileInputField = form.getField(filePart.getKey());
      fileInputField.setValue(userUpload);
    }

    //  Set the form definition field values from the request data
    Map<String, String[]> data = body.asFormUrlEncoded();
    for (String key : data.keySet()) {
      BasicField field = form.getField(key);
      field.setValue(data.get(key));
    }

    // Transfer form field data to workflow settings map
    Map<String, Object> settings = new HashMap<>();

    for (BasicField field : form.fields) {
      settings.put(field.name, field.value());
    }

    settings.putAll(settingsFromConfig(form));

    // Update the workflow model object and persist to the db
    Workflow workflow = Workflow.find.where().eq("name", form.name).findUnique();

    if (workflow == null) {
      workflow = new Workflow();
    }

    workflow.name = form.name;
    workflow.title = form.title;
    workflow.yamlFile = form.yamlFile;

    workflow.save();

    // Run the workflow
    ObjectNode response = runYamlWorkflow(form.yamlFile, workflow, settings);

    return redirect(routes.Application.index());
  }
예제 #10
0
 /**
  * 사용자 가입 처리 입력된 데이터 유효성 검증에 실패하면 bad request 응답 사용자 정보를 저장, 로그인 쿠기 생성 후 메인 페이지로 이동 시스템 설정에서 가입승인
  * 기능이 활성화되어 있다면 사용자의 계정 상태를 잠금으로 설정하여 저장, 로그인 쿠키 생성 안됨
  *
  * @return
  */
 public static Result newUser() {
   Form<User> newUserForm = form(User.class).bindFromRequest();
   validate(newUserForm);
   if (newUserForm.hasErrors()) {
     return badRequest(signup.render("title.signup", newUserForm));
   } else {
     User user = createNewUser(newUserForm.get());
     if (user.state == UserState.LOCKED) {
       flash(Constants.INFO, "user.signup.requested");
     } else {
       addUserInfoToSession(user);
     }
     return redirect(routes.Application.index());
   }
 }
예제 #11
0
파일: UserApp.java 프로젝트: bluemir/hive
  /**
   * 로그인 처리 시스템 설정에서 가입승인 기능이 활성화 되어 있고 사용자 상태가 잠금상태(미승인?)라면 계정이 잠겼다는 메시지를 노출하고 로그인 폼으로 돌아감 시스템 설정에서
   * 가입승인 기능이 활성화 되어 있지 않다면, 사용자 상태가 잠금상태라도 로그인이 가능하다 (스펙확인 필요) 요청의 정보로 사용자 인증에 성공하면 로그인쿠키를 생성하고
   * 로그인유지하기가 선택되었다면, 로그인유지를 위한 쿠키를 별도로 생성한다 인증에 실패하면 관련된 메시지를 노출하고 로그인 폼으로 돌아간다
   *
   * @return
   */
  public static Result login() {
    Form<User> userForm = form(User.class).bindFromRequest();
    if (userForm.hasErrors()) {
      return badRequest(login.render("title.login", userForm, null));
    }
    User sourceUser = form(User.class).bindFromRequest().get();

    Map<String, String[]> params = request().body().asFormUrlEncoded();
    String redirectUrl = HttpUtil.getFirstValueFromQuery(params, "redirectUrl");

    String loginFormUrl = routes.UserApp.loginForm().absoluteURL(request());
    loginFormUrl += "?redirectUrl=" + redirectUrl;

    if (isUseSignUpConfirm()) {
      if (User.findByLoginId(sourceUser.loginId).state == UserState.LOCKED) {
        flash(Constants.WARNING, "user.locked");
        return redirect(loginFormUrl);
      }
    }

    if (User.findByLoginId(sourceUser.loginId).state == UserState.DELETED) {
      flash(Constants.WARNING, "user.deleted");
      return redirect(loginFormUrl);
    }

    User authenticate = authenticateWithPlainPassword(sourceUser.loginId, sourceUser.password);

    if (authenticate != null) {
      addUserInfoToSession(authenticate);
      if (sourceUser.rememberMe) {
        setupRememberMe(authenticate);
      }

      authenticate.lang = play.mvc.Http.Context.current().lang().code();
      authenticate.update();

      if (StringUtils.isEmpty(redirectUrl)) {
        return redirect(routes.Application.index());
      } else {
        return redirect(redirectUrl);
      }
    }

    flash(Constants.WARNING, "user.login.failed");
    return redirect(routes.UserApp.loginForm());
  }
예제 #12
0
  public static Result createNewUser() {
    Form<User> nu = userForm.bindFromRequest();

    ObjectNode jsonData = Json.newObject();
    String userName = null;

    try {
      userName =
          nu.field("firstName").value()
              + " "
              + (nu.field("middleInitial")).value()
              + " "
              + (nu.field("lastName")).value();
      jsonData.put("userName", userName);
      jsonData.put("firstName", nu.get().getFirstName());
      jsonData.put("middleInitial", nu.get().getMiddleInitial());
      jsonData.put("lastName", nu.get().getLastName());
      jsonData.put("password", nu.get().getPassword());
      jsonData.put("affiliation", nu.get().getAffiliation());
      jsonData.put("title", nu.get().getTitle());
      jsonData.put("email", nu.get().getEmail());
      jsonData.put("mailingAddress", nu.get().getMailingAddress());
      jsonData.put("phoneNumber", nu.get().getPhoneNumber());
      jsonData.put("faxNumber", nu.get().getFaxNumber());
      jsonData.put("researchFields", nu.get().getResearchFields());
      jsonData.put("highestDegree", nu.get().getHighestDegree());

      JsonNode response =
          RESTfulCalls.postAPI(
              Constants.URL_HOST + Constants.CMU_BACKEND_PORT + Constants.ADD_USER, jsonData);

      // flash the response message
      Application.flashMsg(response);
      return redirect(routes.Application.createSuccess());

    } catch (IllegalStateException e) {
      e.printStackTrace();
      Application.flashMsg(RESTfulCalls.createResponse(ResponseType.CONVERSIONERROR));
    } catch (Exception e) {
      e.printStackTrace();
      Application.flashMsg(RESTfulCalls.createResponse(ResponseType.UNKNOWN));
    }
    return ok(signup.render(nu));
  }
예제 #13
0
  @Security.Authenticated(Secured.class)
  public static Result viewMyConversation(Long id) {
    Student s = Student.find.byId(request().username());
    Conversation c = Conversation.find.byId(id.toString());

    if (!c.getParticipants().contains(s)) { // unauthorized access!
      return redirect(routes.Application.viewMyConversations());
    } else {
      // mark all read
      for (Message m : c.messages) {
        if (!m.sender.email.equals(s.email)) {
          m.setRead();
          m.save();
        }
      }

      return ok(viewConversation.render(s, c, form(MessageForm.class)));
    }
  }
예제 #14
0
  @Security.Authenticated(Secured.class)
  public static Result addNewMessageForm(Long id) {
    Form<MessageForm> mesForm = Form.form(MessageForm.class).bindFromRequest();
    if (mesForm.hasErrors()) {
      return badRequest(postNewMessage.render(mesForm, id));
    } else {

      Message m =
          new Message(
              mesForm.field("text").value().toString(), Student.find.byId(request().username()));

      Conversation c = null;

      c = Conversation.find.byId(id.toString());
      c.messages.add(m);
      c.save();

      return redirect(routes.Application.viewMyConversation(id));
    }
  }
예제 #15
0
 public static Result authenticate() {
   DynamicForm df = new DynamicForm().bindFromRequest();
   session().clear();
   session(Application.PASSWORD, Crypto.encryptAES(df.get("password")));
   return redirect(routes.Application.index());
 }
예제 #16
0
 /**
  * 로그아웃 로그인 유지 기능 해제 메인으로 이동
  *
  * @return
  */
 public static Result logout() {
   processLogout();
   flash(Constants.SUCCESS, "user.logout.success");
   return redirect(routes.Application.index());
 }
예제 #17
0
 public static Result deleteTask(Long id) {
   Task.delete(id);
   return redirect(routes.Application.tasks());
 }
예제 #18
0
 public static Result index() {
   return redirect(routes.Application.tasks());
 }
예제 #19
0
 @Security.Authenticated(Secured.class)
 public static Result addNewMessage(Long id) {
   return redirect(
       //                postNewMessage.render(form(MessageForm.class), id)
       routes.Application.viewMyConversation(id));
 }
예제 #20
0
 public static Result logout() {
   session().clear();
   flash("success", "You've been logged out");
   return redirect(routes.Application.login());
 }