Collection<DcModule> managedModules = SecurityCentre.getInstance().getManagedModules();
for (DcModule module : DcModules.getAllModules()) {
ModulePermission mp = new ModulePermission(module.getIndex());
if (managedModules.contains(module)) {
for (DcObject child : user.getChildren()) {
Permission permission = (Permission) child;
if (permission.getModuleIdx() == module.getIndex())
mp.addPermission(permission);
}
} else {
// not managed: access is allowed
for (DcField field : module.getFields()) {
DcObject permission = DcModules.get(DcModules._PERMISSION).getItem();
permission.setValue(Permission._B_FIELD, Long.valueOf(field.getIndex()));
permission.setValue(Permission._C_MODULE, Long.valueOf(module.getIndex()));
permission.setValue(Permission._D_VIEW, Boolean.TRUE);
permission.setValue(Permission._E_EDIT, Boolean.TRUE);
mp.addPermission((Permission) permission);
}
}
modulePermissions.put(Integer.valueOf(module.getIndex()), mp);
}
for (RegisteredPlugin plugin : Plugins.getInstance().getRegistered()) {
for (DcObject child : user.getChildren()) {
Permission permission = (Permission) child;
if (permission.getPlugin() != null && permission.getPlugin().equals(plugin.getKey())) {
PluginPermission pp = new PluginPermission(plugin.getKey());
pp.setAuthorized(permission.isViewingAllowed());
pluginPermissions.put(permission.getPlugin(), pp);
}
}
}
}