// Path: app/models/Person.java
// @Entity
// public class Person extends GenericModel {
// 
// 	@Id
// 	public String username;
// 	public String password;
// 	public Role role = Role.Guest;
// 	@Lob
// 	public String clipboard;
// 	public Boolean preferMultiframe;
// 	public String niftiMultiframeScript;
// 
// 	public Person(String username) {
// 		this.username = username;
// 	}
// 
// 	public void setPassword(String password) {
// 		if (!password.startsWith("$2a$")) {
// 			this.password = BCrypt.hashpw(password, BCrypt.gensalt());
// 		}
// 	}
// 
// 	@PostUpdate
// 	public void postUpdate() {
// 		Cache.delete(username);
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return String.format("%s (%s)", username, role);
// 	}
// 
// 	public static enum Role {
// 		Researcher, Administrator, Visitor, Guest;
// 	}
// 
// }
// 
// Path: app/util/Properties.java
// public class Properties {
// 
// 	public static int getInt(String key) {
// 		return Integer.parseInt(Play.configuration.getProperty(key));
// 	}
// 
// 	public static String getString(String key) {
// 		return Play.configuration.getProperty(key);
// 	}
// 
// 	public static File getArchive() {
// 		File archive = new File(Filesystem.<Filesystem>findAll().get(0).dirpath);
// 		return archive.isAbsolute() ? archive : new File(getString("dcm4chee"), String.format("server/default/%s", archive.getPath()));
// 	}
// 
// 	public static int pageSize() {
// 		return Integer.parseInt(Play.configuration.getProperty("page.size", String.valueOf(20)));
// 	}
// 
// 	public static File getDownloads() {
// 		File downloads = new File(Play.tmpDir, "downloads");
// 		downloads.mkdir();
// 		return downloads;
// 	}
// 
// 	public static File getExports() {
// 		return new File(getString("exports"));
// 	}
// 
// 	public static int getMaximumExportSize() {
// 		return Integer.parseInt(Play.configuration.getProperty("export.maxsize", String.valueOf(100)));
// 	}
// 
// 	public static File getCollations() {
// 		File downloads = new File(Play.tmpDir, "collations");
// 		downloads.mkdir();
// 		return downloads;
// 	}
// }


import models.Person;
import play.Logger;
import play.cache.Cache;
import play.mvc.Before;
import play.mvc.Controller;
import play.mvc.With;
import util.Properties;
import controllers.Secure.Security;
package controllers;


@With(Secure.class)
public class SecureController extends Controller {

	@Before
	static void log() {
// Path: app/models/Person.java
// @Entity
// public class Person extends GenericModel {
// 
// 	@Id
// 	public String username;
// 	public String password;
// 	public Role role = Role.Guest;
// 	@Lob
// 	public String clipboard;
// 	public Boolean preferMultiframe;
// 	public String niftiMultiframeScript;
// 
// 	public Person(String username) {
// 		this.username = username;
// 	}
// 
// 	public void setPassword(String password) {
// 		if (!password.startsWith("$2a$")) {
// 			this.password = BCrypt.hashpw(password, BCrypt.gensalt());
// 		}
// 	}
// 
// 	@PostUpdate
// 	public void postUpdate() {
// 		Cache.delete(username);
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return String.format("%s (%s)", username, role);
// 	}
// 
// 	public static enum Role {
// 		Researcher, Administrator, Visitor, Guest;
// 	}
// 
// }
// 
// Path: app/util/Properties.java
// public class Properties {
// 
// 	public static int getInt(String key) {
// 		return Integer.parseInt(Play.configuration.getProperty(key));
// 	}
// 
// 	public static String getString(String key) {
// 		return Play.configuration.getProperty(key);
// 	}
// 
// 	public static File getArchive() {
// 		File archive = new File(Filesystem.<Filesystem>findAll().get(0).dirpath);
// 		return archive.isAbsolute() ? archive : new File(getString("dcm4chee"), String.format("server/default/%s", archive.getPath()));
// 	}
// 
// 	public static int pageSize() {
// 		return Integer.parseInt(Play.configuration.getProperty("page.size", String.valueOf(20)));
// 	}
// 
// 	public static File getDownloads() {
// 		File downloads = new File(Play.tmpDir, "downloads");
// 		downloads.mkdir();
// 		return downloads;
// 	}
// 
// 	public static File getExports() {
// 		return new File(getString("exports"));
// 	}
// 
// 	public static int getMaximumExportSize() {
// 		return Integer.parseInt(Play.configuration.getProperty("export.maxsize", String.valueOf(100)));
// 	}
// 
// 	public static File getCollations() {
// 		File downloads = new File(Play.tmpDir, "collations");
// 		downloads.mkdir();
// 		return downloads;
// 	}
// }


// Path: app/controllers/SecureController.java
import models.Person;
import play.Logger;
import play.cache.Cache;
import play.mvc.Before;
import play.mvc.Controller;
import play.mvc.With;
import util.Properties;
import controllers.Secure.Security;

package controllers;


@With(Secure.class)
public class SecureController extends Controller {

	@Before
	static void log() {
		if (Security.isConnected() && !request.isAjax() && !"false".equals(Properties.getString("log.actions"))) {