/* Date: February 2, 2010
* Template: PluginScreenJavaTemplateGen.java.ftl
* generator: org.molgenis.generators.ui.PluginScreenJavaTemplateGen 3.3.2-testing
*
* THIS FILE IS A TEMPLATE. PLEASE EDIT :-)
*/
package org.molgenis.auth.service.tokenmanager;
import java.util.Calendar;
import java.util.Date;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.security.SimpleLogin;
import org.molgenis.framework.ui.PluginModel;
import org.molgenis.framework.ui.ScreenController;
import org.molgenis.framework.ui.ScreenMessage;
import org.molgenis.util.Tuple;
public class TokenManager extends PluginModel
{
private TokenManagerModel model = new TokenManagerModel();
public TokenManagerModel getMyModel()
{
return model;
}
public TokenManager(String name, ScreenController<?> parent)
{
super(name, parent);
}
@Override
public String getViewName()
{
return "TokenManager";
}
@Override
public String getViewTemplate()
{
return "org/molgenis/auth/service/tokenmanager/TokenManager.ftl";
}
public void handleRequest(Database db, Tuple request)
{
if (request.getString("__action") != null)
{
System.out.println("*** handleRequest __action: " + request.getString("__action"));
String action = request.getString("__action");
try
{
if (action.equals("createToken"))
{
int nrOfTokens = request.getInt("amountOfTokens");
int nrOfDays = request.getInt("amountOfDaysValid");
int nrOfHours = request.getInt("amountOfHoursValid");
if (nrOfDays >= 0 && nrOfDays <= 6 && nrOfHours >= 1 && nrOfHours <= 24 && nrOfTokens >= 1
&& nrOfTokens <= 10)
{
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, nrOfDays);
cal.add(Calendar.HOUR, nrOfHours);
Date validUntil = cal.getTime();
String userName = db.getLogin().getUserName();
for (int i = 0; i < nrOfTokens; i++)
{
this.getTokenFactory().makeNewToken(userName, validUntil);
}
}
else
{
throw new Exception("BAD REQUEST: number of days or hours not allowed!");
}
}
if (action.startsWith("deleteToken_"))
{
String uuid = action.substring("deleteToken_".length());
if (this.getTokenFactory().checkIfTokenExists(uuid))
{
this.getTokenFactory().removeToken(uuid);
}
}
}
catch (Exception e)
{
e.printStackTrace();
this.setMessages(new ScreenMessage(e.getMessage() != null ? e.getMessage() : "null", false));
}
}
}
@Override
public void reload(Database db)
{
try
{
String user = db.getLogin().getUserName();
this.model.setTokens(this.getTokenFactory().getAllTokens(user));
}
catch (Exception e)
{
e.printStackTrace();
this.setMessages(new ScreenMessage(e.getMessage() != null ? e.getMessage() : "null", false));
}
}
@Override
public boolean isVisible()
{
if (this.getController().getApplicationController().getLogin() instanceof SimpleLogin)
{
return false;
}
return super.isVisible();
}
}