package de.skuzzle.polly.core.internal.httpv2;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import de.skuzzle.polly.http.annotations.Get;
import de.skuzzle.polly.http.annotations.OnRegister;
import de.skuzzle.polly.http.api.AlternativeAnswerException;
import de.skuzzle.polly.http.api.Controller;
import de.skuzzle.polly.http.api.answers.HttpAnswer;
import de.skuzzle.polly.sdk.MyPolly;
import de.skuzzle.polly.sdk.httpv2.PollyController;
import de.skuzzle.polly.sdk.httpv2.WebinterfaceManager;
import de.skuzzle.polly.sdk.roles.RoleManager;
public class RoleController extends PollyController {
private final static String ADMIN_CATEGORY_KEY = "roleAdminCategory"; //$NON-NLS-1$
private final static String ROLE_NAME_KEY = "roleManagerPage"; //$NON-NLS-1$
private final static String ROLE_DESC_KEY = "roleManagerDesc"; //$NON-NLS-1$
public final static String PAGE_ROLE_MANAGER = "pages/roles"; //$NON-NLS-1$
public final static String CONTENT_ROLE_MANAGER = "/http/view/roles.html"; //$NON-NLS-1$
public RoleController(MyPolly myPolly) {
super(myPolly);
}
@Override
protected Controller createInstance() {
return new RoleController(this.getMyPolly());
}
@Get(value = PAGE_ROLE_MANAGER, name = ROLE_NAME_KEY)
@OnRegister({
WebinterfaceManager.ADD_MENU_ENTRY,
MSG.FAMILY,
ADMIN_CATEGORY_KEY,
ROLE_DESC_KEY,
RoleManager.ADMIN_PERMISSION
})
public HttpAnswer roles() throws AlternativeAnswerException {
this.requirePermissions(RoleManager.ADMIN_PERMISSION);
final Map<String, Object> c = this.createContext(CONTENT_ROLE_MANAGER);
c.put("roles", this.getMyPolly().roles().getRoles()); //$NON-NLS-1$
Set<String> allPerms = new TreeSet<String>();
for (String role : this.getMyPolly().roles().getRoles()) {
allPerms.addAll(this.getMyPolly().roles().getPermissions(role));
}
c.put("allPerms", allPerms); //$NON-NLS-1$
return this.makeAnswer(c);
}
}