Commit 2b592845 authored by Łukasz Nowak's avatar Łukasz Nowak

Return less information whenever possible.

parent f28835a6
...@@ -143,13 +143,20 @@ class SlapTool(BaseTool): ...@@ -143,13 +143,20 @@ class SlapTool(BaseTool):
""" """
def _getComputerInformation(computer_id, user): def _getComputerInformation(computer_id, user):
user_document = self.getPortalObject().portal_catalog.getResultValue(
reference=user, portal_type=['Person', 'Computer', 'Software Instance'])
user_type = user_document.getPortalType()
self.REQUEST.response.setHeader('Content-Type', 'text/xml') self.REQUEST.response.setHeader('Content-Type', 'text/xml')
slap_computer = Computer(computer_id) slap_computer = Computer(computer_id)
parent_uid = self._getComputerUidByReference(computer_id) parent_uid = self._getComputerUidByReference(computer_id)
slap_computer._computer_partition_list = [] slap_computer._computer_partition_list = []
slap_computer._software_release_list = \ if user_type == 'Computer':
slap_computer._software_release_list = \
self._getSoftwareReleaseValueListForComputer(computer_id) self._getSoftwareReleaseValueListForComputer(computer_id)
else:
slap_computer._software_release_list = []
for computer_partition in self.getPortalObject().portal_catalog( for computer_partition in self.getPortalObject().portal_catalog(
parent_uid=parent_uid, parent_uid=parent_uid,
portal_type="Computer Partition"): portal_type="Computer Partition"):
...@@ -171,19 +178,31 @@ class SlapTool(BaseTool): ...@@ -171,19 +178,31 @@ class SlapTool(BaseTool):
Reuses slap library for easy marshalling. Reuses slap library for easy marshalling.
""" """
self.REQUEST.response.setHeader('Content-Type', 'text/xml') def _getFullComputerInformation(computer_id, user):
slap_computer = Computer(computer_id) user_document = self.getPortalObject().portal_catalog.getResultValue(
parent_uid = self._getComputerUidByReference(computer_id) reference=user, portal_type=['Person', 'Computer', 'Software Instance'])
user_type = user_document.getPortalType()
slap_computer._computer_partition_list = [] self.REQUEST.response.setHeader('Content-Type', 'text/xml')
slap_computer._software_release_list = \ slap_computer = Computer(computer_id)
self._getSoftwareReleaseValueListForComputer(computer_id, full=True) parent_uid = self._getComputerUidByReference(computer_id)
for computer_partition in self.getPortalObject().portal_catalog(
parent_uid=parent_uid, slap_computer._computer_partition_list = []
portal_type="Computer Partition"): if user_type == 'Computer':
slap_computer._computer_partition_list.append( slap_computer._software_release_list = \
self._getSlapPartitionByPackingList(computer_partition.getObject())) self._getSoftwareReleaseValueListForComputer(computer_id, full=True)
return xml_marshaller.xml_marshaller.dumps(slap_computer) else:
slap_computer._software_release_list = []
for computer_partition in self.getPortalObject().portal_catalog(
parent_uid=parent_uid,
validation_state="validated",
portal_type="Computer Partition"):
slap_computer._computer_partition_list.append(
self._getSlapPartitionByPackingList(computer_partition.getObject()))
return xml_marshaller.xml_marshaller.dumps(slap_computer)
user = self.getPortalObject().portal_membership.getAuthenticatedMember().getUserName()
return CachingMethod(_getFullComputerInformation,
id='_getFullComputerInformation',
cache_factory='slap_cache_factory')(computer_id, user)
security.declareProtected(Permissions.AccessContentsInformation, security.declareProtected(Permissions.AccessContentsInformation,
'getComputerPartitionCertificate') 'getComputerPartitionCertificate')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment