package controllers.modules.search;
import java.util.List;
import play.Play;
import play.libs.Codec;
import play.modules.search.Search;
import play.modules.search.store.ManagedIndex;
import play.mvc.Before;
import play.mvc.Controller;
import play.mvc.Http;
public class Administration extends Controller {
@Before
protected static void check () {
Http.Header auth = request.headers.get("authorization");
if(auth != null) {
String encodedPassword = auth.value().substring("Basic ".length());
String password = new String(Codec.decodeBASE64(encodedPassword));
String user = password.substring(0, password.indexOf(':'));
String pwd = password.substring((user + ":").length());
System.out.println("user is " + user + " , passwd is " + pwd);
if (! pwd.equals(Play.configuration.getProperty("play.search.password","search")))
unauthorized("You are not authorized");
} else {
unauthorized("You are not authorized");
}
}
public static void index () {
List<ManagedIndex> indexes = Search.getCurrentStore().listIndexes();
render(indexes);
}
public static void optimize (String name) {
Search.getCurrentStore().optimize(name);
index();
}
public static void reindex(String name) {
Search.getCurrentStore().rebuild(name);
index();
}
public static void reopen (String name) {
Search.getCurrentStore().reopen(name);
index();
}
}