added the module configuration data and made use of it in the canInstall

method in the conferencing module
This commit is contained in:
Eric J. Bowersox
2003-06-21 08:02:58 +00:00
parent 145509a886
commit f8bba8b124
6 changed files with 146 additions and 2 deletions

View File

@@ -19,9 +19,13 @@ package com.silverwrist.venice.conf.module;
import java.security.Principal;
import java.util.*;
import com.silverwrist.dynamo.Namespaces;
import com.silverwrist.dynamo.except.*;
import com.silverwrist.dynamo.iface.*;
import com.silverwrist.dynamo.module.ModuleConfigurationData;
import com.silverwrist.dynamo.security.SecurityReferenceMonitor;
import com.silverwrist.dynamo.util.*;
import com.silverwrist.venice.VeniceNamespaces;
import com.silverwrist.venice.community.CommunityServiceInstall;
import com.silverwrist.venice.util.*;
import com.silverwrist.venice.conf.ConfNamespaces;
@@ -120,8 +124,26 @@ public class ModuleMain implements ModuleFunctions, UseCount
public boolean canInstall(ServiceProvider services, Principal installer)
{
return true; // TEMP
}
try
{ // get the module configuration data to get the SRM name, then use that to get the actual SRM, then get
// the global ACL, then test permissions
ModuleConfigurationData conf_data =
(ModuleConfigurationData)(services.queryService(ModuleConfigurationData.class));
String srm_name = conf_data.getValue(Namespaces.DYNAMO_OBJECT_NAMESPACE,"security");
SecurityReferenceMonitor srm =
(SecurityReferenceMonitor)(GetObjectUtils.getDynamoComponent(services,SecurityReferenceMonitor.class,
srm_name));
DynamoAcl gacl = srm.getGlobalAcl();
return gacl.testPermission((DynamoUser)installer,VeniceNamespaces.SYSTEM_PERMS_NAMESPACE,"edit.menus");
} // end try
catch (Exception e)
{ // unable to test permission
return false;
} // end catch
} // end canInstall
public void install(ModuleSite site, ServiceProvider services, Principal installer, DynamoLog log)
throws ModuleException