Commit 73e009e5 authored by Łukasz Nowak's avatar Łukasz Nowak

Follow simplification.

parent 23552c1a
...@@ -54,68 +54,58 @@ ...@@ -54,68 +54,58 @@
\n \n
portal = context.getPortalObject()\n portal = context.getPortalObject()\n
\n \n
def getPASDictDifference(portal, d):\n def mergePASDictDifference(portal, d, fixit):\n
plugins = portal.acl_users.plugins\n
error_list = []\n error_list = []\n
pas_list = portal.acl_users.objectValues()\n plugin_type_info = plugins.listPluginTypeInfo()\n
pas_meta_type_set = set([q.meta_type for q in pas_list])\n for plugin, active_list in d.iteritems():\n
for meta_type, plugin_list in d.iteritems():\n plugin_info = [q for q in plugin_type_info if q[\'id\'] == plugin][0]\n
if meta_type not in pas_meta_type_set:\n found_list = plugins.listPlugins(plugin_info[\'interface\'])\n
error_list.append(\'Missing plugin %r.\' % meta_type)\n meta_type_list = [q[1].meta_type for q in found_list]\n
else:\n for expected in active_list:\n
plugin = [q for q in pas_list if q.meta_type==meta_type][0]\n if expected not in meta_type_list:\n
active_list = []\n error = \'Plugin %s missing %s.\' % (plugin, expected)\n
for plugin_type_info in plugin.plugins.listPluginTypeInfo():\n if fixit: \n
interface_name = plugin_type_info[\'id\']\n existing = [q for q in portal.acl_users.objectValues() if q.meta_type == expected]\n
interface = plugin_type_info[\'interface\']\n if len(existing) == 0:\n
if plugin.testImplements(interface):\n error_list.append(\'%s not found\' % expected)\n
if plugin.getId() in [q[0] for q in plugin.plugins.listPlugins(interface)]:\n else:\n
active_list.append(interface_name)\n plugins.activatePlugin(plugin_info[\'interface\'], existing[0].getId())\n
if plugin_list != active_list:\n error += \' Fixed.\'\n
error_list.append(\'%r missing activation, expeced %s got %s.\' % (meta_type, \', \'.join(plugin_list), \', \'.join(active_list)))\n error_list.append(error)\n
return error_list\n \n
\n
\n \n
def mergePASDict(portal, s):\n return error_list\n
raise NotImplementedError\n
\n \n
promise_dict = {\n promise_dict = {\n
\'Vifib Machine Authentication Plugin\': [\n \'IExtractionPlugin\': [\n
\'IExtractionPlugin\',\n \'Vifib Machine Authentication Plugin\',\n
\'IAuthenticationPlugin\',\n \'Vifib Browser ID Extraction Plugin\',\n
\'IGroupsPlugin\',\n \'Vifib Facebook Server Extraction Plugin\',\n
\'IUserEnumerationPlugin\'\n \'Vifib Google Server Extraction Plugin\',\n
],\n \'ERP5 Bearer Extraction Plugin\',\n
\'Vifib Shadow Authentication Plugin\': [\n \'ERP5 Facebook Extraction Plugin\',\n
\'IAuthenticationPlugin\',\n \'ERP5 Google Extraction Plugin\',\n
\'IGroupsPlugin\',\n
\'IUserEnumerationPlugin\'\n
],\n
\'Vifib Browser ID Extraction Plugin\': [\n
\'IExtractionPlugin\',\n
],\n ],\n
\'Vifib Facebook Server Extraction Plugin\': [\n \'IAuthenticationPlugin\': [\n
\'IExtractionPlugin\',\n \'Vifib Machine Authentication Plugin\',\n
\'Vifib Shadow Authentication Plugin\',\n
],\n ],\n
\'Vifib Google Server Extraction Plugin\': [\n \'IGroupsPlugin\': [\n
\'IExtractionPlugin\',\n \'Vifib Machine Authentication Plugin\',\n
\'Vifib Shadow Authentication Plugin\',\n
],\n ],\n
\'ERP5 Bearer Extraction Plugin\': [\n \'IUserEnumerationPlugin\': [\n
\'IExtractionPlugin\',\n \'Vifib Machine Authentication Plugin\',\n
],\n \'Vifib Shadow Authentication Plugin\'\n
\'ERP5 Facebook Extraction Plugin\': [\n
\'IExtractionPlugin\',\n
],\n
\'ERP5 Google Extraction Plugin\': [\n
\'IExtractionPlugin\',\n
]\n ]\n
}\n }\n
\n pas_difference = mergePASDictDifference(portal, promise_dict, fixit)\n
pas_difference = getPASDictDifference(portal, promise_dict)\n
if len(pas_difference) != 0:\n if len(pas_difference) != 0:\n
severity = 1\n severity = 1\n
summary = "PAS not configured as expected"\n summary = "PAS not configured as expected"\n
detail = "Difference %s" % (\'\\n\'.join(pas_difference), )\n detail = "Difference:\\n%s" % (\'\\n\'.join(pas_difference), )\n
if fixit:\n
mergePASDict(portal, promise_dict)\n
else:\n else:\n
severity = 0\n severity = 0\n
summary = "Nothing to do."\n summary = "Nothing to do."\n
......
126 127
\ No newline at end of file \ 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