From: <jos...@us...> - 2009-08-31 06:45:15
|
Revision: 5096 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=5096&view=rev Author: josegar74 Date: 2009-08-31 06:45:09 +0000 (Mon, 31 Aug 2009) Log Message: ----------- GAAP: Delayed load of operations Modified Paths: -------------- sandbox/3.0.x/geonetwork_legacy/src/org/fao/geonet/kernel/AccessManager.java Modified: sandbox/3.0.x/geonetwork_legacy/src/org/fao/geonet/kernel/AccessManager.java =================================================================== --- sandbox/3.0.x/geonetwork_legacy/src/org/fao/geonet/kernel/AccessManager.java 2009-08-31 06:38:37 UTC (rev 5095) +++ sandbox/3.0.x/geonetwork_legacy/src/org/fao/geonet/kernel/AccessManager.java 2009-08-31 06:45:09 UTC (rev 5096) @@ -72,11 +72,9 @@ public AccessManager(GaapServicesClient gaapClient, SettingManager sm) throws GeonetworkGaapClientException { settMan = sm; + this.gaapClient = gaapClient; - List<Operation> operations = gaapClient.getOperations(); - for(Operation op: operations) { - hsAllOps.add(op.getName()); - } + } //-------------------------------------------------------------------------- @@ -105,7 +103,7 @@ // if user is an administrator OR is the owner of the record then allow all // operations if (isOwner(context,mdId)) { - return hsAllOps; + return getHsAllOps(); } // otherwise build result @@ -399,8 +397,12 @@ public boolean isValidPrivilege(String descr) { - return hsAllOps.contains(descr); - + try { + return getHsAllOps().contains(descr); + } catch (Exception e) { + e.printStackTrace(); + return false; + } } @@ -448,6 +450,16 @@ return a1<<24 | a2<<16 | a3<<8 | a4; } + private HashSet<String> getHsAllOps() throws GeonetworkGaapClientException { + if (hsAllOps.isEmpty()) { + List<Operation> operations = gaapClient.getOperations(); + for(Operation op: operations) { + hsAllOps.add(op.getName()); + } + } + + return hsAllOps; + } //-------------------------------------------------------------------------- //--- //--- Variables @@ -456,6 +468,8 @@ private SettingManager settMan; private HashSet<String> hsAllOps = new HashSet<String>(); + + private GaapServicesClient gaapClient; } //============================================================================= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |