Commit 5c0400bc authored by Rafael Monnerat's avatar Rafael Monnerat

slapos_cloud: Use erp5_certificate_authority bt5

   Move code related to Certificate Authorithy to generic bt5
   Certificate authority is installed via erp5_certificate_authority bt5
   Person re-definition was moved into erp5_certificate_authority business templates

   extra:
      slapos_configurator: Update test to include new dependency
parent 5fcfcdbd
from AccessControl import ClassSecurityInfo, Unauthorized, getSecurityManager
from Products.ERP5.Document.Person import Person as ERP5Person
from Products.ERP5Type import Permissions
class Person(ERP5Person):
security = ClassSecurityInfo()
security.declarePublic('getCertificate')
def _checkCertificateRequest(self):
try:
self.checkUserCanChangePassword()
except Unauthorized:
# in ERP5 user has no SetOwnPassword permission on Person document
# referring himself, so implement "security" by checking that currently
# logged in user is trying to get/revoke his own certificate
user_id = self.getUserId()
if not user_id:
raise
if getSecurityManager().getUser().getId() != user_id:
raise
def _getCertificate(self):
return self.getPortalObject().portal_certificate_authority\
.getNewCertificate(self.getReference())
def _revokeCertificate(self):
return self.getPortalObject().portal_certificate_authority\
.revokeCertificateByCommonName(self.getReference())
def getCertificate(self):
"""Returns new SSL certificate"""
self._checkCertificateRequest()
return self._getCertificate()
security.declarePublic('revokeCertificate')
def revokeCertificate(self):
"""Revokes existing certificate"""
self._checkCertificateRequest()
self._revokeCertificate()
security.declareProtected(Permissions.AccessContentsInformation,
'getTitle')
def getTitle(self, **kw):
"""
Returns the title if it exists or a combination of
first name and last name
"""
title = ERP5Person.getTitle(self, **kw)
test_title = title.replace(' ', '')
if test_title == '':
return self.getDefaultEmailCoordinateText(test_title)
else:
return title
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Document Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Person</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>document.erp5.Person</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Document Component</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -60,7 +60,7 @@ class TestSlapOSSecurityMixin(SlapOSTestCaseMixin):
for _, plugin in uf._getOb('plugins').listPlugins(
IAuthenticationPlugin ):
if plugin.authenticateCredentials(
{'login_portal_type': 'ERP5 Login',
{'login_portal_type': ('ERP5 Login', 'Certificate Login'),
'external_login': login}) is not None:
break
else:
......@@ -75,14 +75,14 @@ class TestSlapOSSecurityMixin(SlapOSTestCaseMixin):
for plugin_name, plugin in uf._getOb('plugins').listPlugins(
IAuthenticationPlugin ):
if plugin.authenticateCredentials(
{'login_portal_type': 'ERP5 Login',
{'login_portal_type': ('ERP5 Login', 'Certificate Login'),
'external_login': login}) is not None:
self.fail(
"Plugin %s should not have authenticated '%s' with password '%s'" %
(plugin_name, login, password))
class TestSlapOSComputerSecurity(TestSlapOSSecurityMixin):
def test_active(self):
def test_active(self, login_portal_type="Certificate Login"):
user_id = self._generateRandomUniqueUserId('Computer')
reference = self._generateRandomUniqueReference('Computer')
......@@ -90,7 +90,7 @@ class TestSlapOSComputerSecurity(TestSlapOSSecurityMixin):
portal_type='Computer', reference=reference)
computer.setUserId(user_id)
computer.validate()
computer.newContent(portal_type='ERP5 Login',
computer.newContent(portal_type=login_portal_type,
reference=reference).validate()
self.tic()
......@@ -103,22 +103,28 @@ class TestSlapOSComputerSecurity(TestSlapOSSecurityMixin):
self.assertSameSet(['R-COMPUTER'],
user.getGroups())
def test_inactive(self):
def test_inactive(self, login_portal_type="Certificate Login"):
user_id = self._generateRandomUniqueUserId('Computer')
reference = self._generateRandomUniqueReference('Computer')
computer = self.portal.computer_module.newContent(
portal_type='Computer', reference=reference)
computer.setUserId(user_id)
computer.newContent(portal_type='ERP5 Login',
computer.newContent(portal_type=login_portal_type,
reference=reference)
self.tic()
self._assertUserDoesNotExists(user_id, reference, None)
def test_active_backward_compatibility_with_erp5_login(self):
self.test_active(login_portal_type="ERP5 Login")
def test_inactive_backward_compatibility_with_erp5_login(self):
self.test_inactive(login_portal_type="ERP5 Login")
class TestSlapOSSoftwareInstanceSecurity(TestSlapOSSecurityMixin):
portal_type = 'Software Instance'
def test_active(self):
def test_active(self, login_portal_type="Certificate Login"):
user_id = self._generateRandomUniqueUserId(self.portal_type)
reference = self._generateRandomUniqueReference(self.portal_type)
......@@ -126,7 +132,7 @@ class TestSlapOSSoftwareInstanceSecurity(TestSlapOSSecurityMixin):
.newContent(portal_type=self.portal_type, reference=reference)
instance.setUserId(user_id)
instance.validate()
instance.newContent(portal_type='ERP5 Login',
instance.newContent(portal_type=login_portal_type,
reference=reference).validate()
self.tic()
......@@ -157,7 +163,7 @@ class TestSlapOSSoftwareInstanceSecurity(TestSlapOSSecurityMixin):
self.assertSameSet(['R-INSTANCE', subscription_reference],
user.getGroups())
def test_inactive(self):
def test_inactive(self, login_portal_type="Certificate Login"):
user_id = self._generateRandomUniqueUserId(self.portal_type)
reference = self._generateRandomUniqueReference(self.portal_type)
......@@ -168,8 +174,14 @@ class TestSlapOSSoftwareInstanceSecurity(TestSlapOSSecurityMixin):
self._assertUserDoesNotExists(user_id, reference, None)
def test_active_backward_compatibility_with_erp5_login(self):
self.test_active(login_portal_type="ERP5 Login")
def test_inactive_backward_compatibility_with_erp5_login(self):
self.test_inactive(login_portal_type="ERP5 Login")
class TestSlapOSPersonSecurity(TestSlapOSSecurityMixin):
def test_active(self):
def test_active(self, login_portal_type="Certificate Login"):
password = str(random.random())
reference = self._generateRandomUniqueReference('Person')
user_id = self._generateRandomUniqueUserId('Person')
......@@ -180,7 +192,7 @@ class TestSlapOSPersonSecurity(TestSlapOSSecurityMixin):
person.setUserId(user_id)
person.newContent(portal_type='Assignment').open()
person.newContent(portal_type='ERP5 Login',
person.newContent(portal_type=login_portal_type,
reference=reference, password=password).validate()
self.tic()
......@@ -216,7 +228,7 @@ class TestSlapOSPersonSecurity(TestSlapOSSecurityMixin):
self.assertTrue('Authenticated' in user.getRoles())
self.assertSameSet(['R-MEMBER', 'G-COMPANY'], user.getGroups())
def test_inactive(self):
def test_inactive(self, login_portal_type="Certificate Login"):
password = str(random.random())
reference = self._generateRandomUniqueReference('Person')
user_id = self._generateRandomUniqueReference('Person')
......@@ -228,6 +240,22 @@ class TestSlapOSPersonSecurity(TestSlapOSSecurityMixin):
self._assertUserDoesNotExists(user_id, reference, password)
person.newContent(portal_type=login_portal_type,
reference=reference).validate()
self.tic()
self._assertUserDoesNotExists(user_id, reference, password)
def test_active_erp5_login(self):
self.test_active(login_portal_type="ERP5 Login")
def test_inactive_erp5_login(self):
self.test_inactive(login_portal_type="ERP5 Login")
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestSlapOSComputerSecurity))
......
......@@ -2,3 +2,4 @@ erp5_item
erp5_computer_immobilisation
erp5_software_pdm
erp5_security_uid_innodb_catalog
erp5_certificate_authority
\ No newline at end of file
document.erp5.Person
document.erp5.SoftwareInstance
\ No newline at end of file
......@@ -304,6 +304,7 @@ class TestSlapOSConfigurator(SlapOSTestCaseMixin):
'slapos_l10n_zh',
'slapos_subscription_request',
'erp5_bearer_token',
'erp5_certificate_authority',
'erp5_access_token',
'erp5_project',
'erp5_oauth',
......
......@@ -147,6 +147,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -157,6 +158,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -258,6 +260,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -268,6 +271,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -370,6 +374,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -380,6 +385,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -478,6 +484,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -488,6 +495,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -590,6 +598,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -600,6 +609,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -702,6 +712,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -712,6 +723,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -811,6 +823,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -821,6 +834,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -921,6 +935,7 @@ erp5_dms_base
erp5_dms_web
erp5_ods_style
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -931,6 +946,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -1030,6 +1046,7 @@ erp5_dms_base
erp5_dms_web
erp5_odt_style
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -1040,6 +1057,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -1140,6 +1158,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -1150,6 +1169,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -1250,6 +1270,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -1260,6 +1281,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -1361,6 +1383,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -1371,6 +1394,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......@@ -1472,6 +1496,7 @@ erp5_simulation
erp5_dms_base
erp5_dms_web
erp5_accounting_l10n_fr
erp5_certificate_authority
erp5_item
erp5_item_trade
erp5_upgrader
......@@ -1482,6 +1507,7 @@ erp5_administration
erp5_auto_logout
erp5_base
erp5_bearer_token
erp5_certificate_authority
erp5_ckeditor
erp5_code_mirror
erp5_commerce
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Certificate Authority Tool" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_Transient_Objects_Permission</string> </key>
<value>
<tuple id="1.1">
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Access_arbitrary_user_session_data_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Member</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Access_future_portal_content_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Access_inactive_portal_content_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Access_session_data_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Accelerated_HTTP_Cache_Managers_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_BTreeFolder2s_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Browser_Id_Manager_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMFActivity_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMFCategory_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMF_Action_Icons_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMF_Active_Processs_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMF_Caching_Policy_Managers_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMF_Calendar_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMF_Core_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMF_Default_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMF_Sites_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_CMF_Unique_Id_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Content_Type_Registrys_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Cookie_Crumblers_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Database_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Documents__Images__and_Files_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5Catalog_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5Configurator_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5Form_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5SecurePayment_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5ShortMessage_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5SyncML_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5TioSafe_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5Type_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5Wizard_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_Filesystem_Formulator_Forms_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_Form_Printouts_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_Forms_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_OOo_Templates_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_PDF_Forms_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_PDF_Templates_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_Python_Scripts_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_Reports_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_Sites_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ERP5_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_External_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Filesystem_Directory_Views_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Folders_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Formulator_Forms_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Generic_Setup_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_HBTreeFolder2s_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_LDAP_Connections_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_LDAP_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_LDIF_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Localizers_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_MailHost_objects_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_MessageCatalogs_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_MimetypesRegistry_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Page_Templates_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Pluggable_Index_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Plugin_Registrys_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_PortalTransforms_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Python_Scripts_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_RAM_Cache_Managers_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ReStructuredText_Documents_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Session_Data_Manager_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Site_Roots_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_SlapOS_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Temporary_Folder_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Transient_Object_Container_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_User_Folders_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Vifib_Tools_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Virtual_Host_Monsters_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Vocabularies_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ZCatalogs_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_ZODB_Mount_Points_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_Z_MySQL_Database_Connections_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_events_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_portal_folders_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_portal_member_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Add_portal_topics_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Browse_Connection_Entries_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Browser_Id_Manager_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_DTML_Documents_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_DTML_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Database_Connections_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Database_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_External_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Formulator_Fields_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Formulator_Forms_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Images_and_Files_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_LDAP_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Lock_Information_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Page_Templates_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Python_Scripts_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_Session_Data_Manager_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_bindings_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_cache_managers_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_cache_settings_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_configuration_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_permissions_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_portal_events_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_portal_topics_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Change_proxy_roles_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Copy_or_Move_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Create_New_Entry_Objects_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Create_Transient_Objects_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Define_permissions_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Delete_Entry_Objects_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Delete_objects_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Edit_ReStructuredText_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Edit_connection_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Edit_target_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_FTP_access_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Import_Export_objects_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_List_folder_contents_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_List_portal_members_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_List_undoable_changes_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Log_Site_Errors_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Log_to_the_Event_Log_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Mail_forgotten_password_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_Access_Rules_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_Entry_information_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_Five_local_sites_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_Groups_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_Selenium_test_cases_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_Site_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_Transient_Object_Container_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_Vocabulary_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_WebDAV_Locks_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_ZCatalogIndex_Entries_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_ZCatalog_Entries_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_languages_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_messages_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_portal_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_properties_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Manage_users_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Modify_Cookie_Crumblers_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Open_Close_Connection_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Open_Close_Database_Connection_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Open_Close_Database_Connections_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Private__only_accessible_from_trusted_code_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Public__everyone_can_access_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Query_Vocabulary_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Reply_to_item_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Request_review_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Reset_dynamic_classes_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Review_portal_content_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Search_ZCatalog_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Search_for_principals_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Set_own_password_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Set_own_properties_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Take_ownership_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Test_Database_Connections_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Translate_Content_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Undo_changes_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Use_Database_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Use_LDAP_Methods_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Use_external_editor_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_Use_mailhost_services_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_View_History_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_management_screens_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_WebDAV_Lock_items_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_WebDAV_Unlock_items_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>_WebDAV_access_Permission</string> </key>
<value> <reference id="1.1"/> </value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>certificate_authority_path</string> </key>
<value> <string>/etc/slapos-ssl</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>portal_certificate_authority</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Certificate Authority Tool</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>portal_certificate_authority</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
portal_certificate_authority
\ No newline at end of file
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