package controllers; import java.util.NoSuchElementException; import net.vz.mongodb.jackson.DBQuery; import models.Administrator; import play.*; import play.data.Form; import play.mvc.*; import utils.Tools; import views.html.*; public class Application extends Controller { public static class AuthenticateReq { public String username; public String password; } public static Result login() { return ok( login.render() ); } public static Result logout() { session().clear(); return redirect( controllers.routes.Application.login() ); } public static Result authenticate() { Form<AuthenticateReq> authRequest = form(AuthenticateReq.class).bindFromRequest(); models.Administrator.Model administrator = null; if( authRequest.field("username").valueOr("").isEmpty() || authRequest.field("password").valueOr("").isEmpty() ) { flash().put("form_error", "Bad username/password !"); return redirect( controllers.routes.Application.login() ); } try { administrator = Administrator.coll.find(DBQuery.is("username", authRequest.get().username).is("password", Tools.md5Encode( authRequest.get().password ))).next(); } catch(NoSuchElementException e) { e.printStackTrace(); administrator = null; } if( administrator != null ) { session().put("admin_username", administrator.username); session().put("admin_id", administrator._id); return redirect( controllers.routes.Application.home() ); } flash().put("form_error", "Bad username/password !"); return redirect( controllers.routes.Application.login() ); } @Security.Authenticated(AdminSecurity.class) public static Result home() { Http.Context.current().args.put("admin_module", "Application"); Http.Context.current().args.put("admin_parent_section", "dashboard"); // List<String> domains = new ArrayList<String>(); // domains.add(".example.com"); // domains.add("www.example1.com"); // domains.add("example2.com"); // String curr = "example.com"; // if( domains.contains(curr) ) return ok("ok"); // else { // for(String in : domains) { // if( in.substring(0, 1).equals(".") ) { // if( curr.contains(in) || ( "."+curr ).contains( in ) ) return ok("ok"); // } // } // } // // Users user = new Users(); // user.domsins = new ArrayList<String>(); // user.domsins.add("111"); // user.domsins.add("222"); // user.domsins.add("333"); // user.save(); return ok( home.render() ); } public static Result javascriptRoutes() { response().setContentType("text/javascript"); return ok( Routes.javascriptRouter("jsRoutes", // Routes for Properties controllers.routes.javascript.Preview.getData(), controllers.routes.javascript.Preview.view(), controllers.routes.javascript.Heatmaps.mouseFollowHeat(), controllers.routes.javascript.Heatmaps.siteFoldHeat(), controllers.routes.javascript.Heatmaps.clickHeat() ) ); } public static Result index() { // TrackSession sess = new TrackSession(); // sess.startedAt = new Date(); // sess.lastActionAt = new Date(); // sess._id = sess.save().getSavedId(); // //// return ok( sess._id ); // // RecordedLocation location = new RecordedLocation(); // location.sessionId = sess._id; // location.startedAt = new Date(); // location.lastActionAt = new Date(); // location.location = "http://..."; // location.save(); return ok(index.render("Your new application is ready.")); } }