From be9aa9c636204051381f4efe4b895dff968f0c4d Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 17 May 2013 11:44:46 +0200 Subject: Add Role management support to module, instead of just creating one if it's not already there. Supports 'jobList' attribute to enable job pushing --- .../java/com/c2kernel/process/module/Module.java | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/main/java/com/c2kernel/process') diff --git a/src/main/java/com/c2kernel/process/module/Module.java b/src/main/java/com/c2kernel/process/module/Module.java index 91c43b2..33180ae 100644 --- a/src/main/java/com/c2kernel/process/module/Module.java +++ b/src/main/java/com/c2kernel/process/module/Module.java @@ -9,8 +9,10 @@ import com.c2kernel.lifecycle.instance.predefined.entitycreation.Dependency; import com.c2kernel.lifecycle.instance.predefined.entitycreation.DependencyMember; import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewAgent; import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewItem; +import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewRole; import com.c2kernel.lifecycle.instance.predefined.entitycreation.Outcome; import com.c2kernel.lookup.DomainPath; +import com.c2kernel.lookup.RolePath; import com.c2kernel.process.Bootstrap; import com.c2kernel.process.Gateway; import com.c2kernel.scripting.ErrorInfo; @@ -74,6 +76,7 @@ public class Module { public void importAll(ItemProxy serverEntity, String moduleXML) throws Exception { addModuleItem(moduleXML); + int systemAgentId = Gateway.getLDAPLookup().getRoleManager().getAgentPath("system").getSysKey(); for (ModuleImport thisImp : imports.list) { Logger.msg(1, "Checking for "+thisImp.name+" "+thisImp.getClass().getSimpleName()); if (thisImp instanceof ModuleResource) { @@ -93,7 +96,21 @@ public class Module { continue; } catch (ObjectNotFoundException ex) { } Logger.msg("Module.importAll() - Item '"+thisItem.name+"' not found. Creating."); - thisItem.create(Gateway.getLDAPLookup().getRoleManager().getAgentPath("system").getSysKey()); + thisItem.create(systemAgentId); + } + else if (thisImp instanceof NewRole) { + NewRole thisRole = (NewRole)thisImp; + RolePath rolePath; + try { + rolePath = Gateway.getLDAPLookup().getRoleManager().getRolePath(thisRole.name); + if (rolePath.hasJobList() != thisRole.jobList) { + Logger.msg("Module.importAll() - Role '"+thisRole.name+"' has incorrect joblist settings. Correcting."); + rolePath.setHasJobList(thisRole.jobList); + } + } catch (ObjectNotFoundException ex) { + Logger.msg("Module.importAll() - Role '"+thisRole.name+"' not found. Creating."); + thisRole.create(systemAgentId); + } } else if (thisImp instanceof NewAgent) { NewAgent thisAgent = (NewAgent)thisImp; @@ -103,7 +120,7 @@ public class Module { continue; } catch (ObjectNotFoundException ex) { } Logger.msg("Module.importAll() - User '"+thisAgent.name+"' not found. Creating."); - thisAgent.create(Gateway.getLDAPLookup().getRoleManager().getAgentPath("system").getSysKey()); + thisAgent.create(systemAgentId); } } } -- cgit v1.2.3