Commit 38f4e043 authored by Rafael Monnerat's avatar Rafael Monnerat

slapos_upgrader: Add Google Login migration script

   This script is included to convert Google Login into ERP5 Login
parent acff4533
# Search for Google Login that is activated and run migration scripts
portal = context.getPortalObject()
activate_kw = {}
if tag:
activate_kw["tag"] = tag
portal.portal_catalog.searchAndActivate(
portal_type='Google Login',
validation_state='validated',
method_id='GoogleLogin_migrateToERP5Login',
method_kw={'dry_run': dry_run},
activate_kw=activate_kw
)
context.portal_alarms.activate(after_tag=tag).getId()
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>tag=None, dry_run=False, REQUEST=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ERP5Site_migrateGoogleLoginToERP5Login</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
from zExceptions import Unauthorized
if REQUEST is not None:
raise Unauthorized
google_login = context
assert google_login.getPortalType() == "Google Login"
assert google_login.getValidationState() == "validated"
person = google_login.getParentValue()
if person.getDefaultEmailText() != google_login.getReference():
raise ValueError('User email isnt same as as google login (%s, %s)' % (
person.getDefaultEmailText(), google_login.getReference()
))
if dry_run:
return
erp5_login = person.newContent(
portal_type="ERP5 Login",
reference=google_login.getReference(),
# 128 is larger then the population, generated by the sample, so call 2x64
password=person.Person_generatePassword(length=64)+person.Person_generatePassword(length=64)
)
erp5_login.checkConsistency()
erp5_login.validate()
google_login.invalidate()
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>dry_run=False, REQUEST=None, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>GoogleLogin_migrateToERP5Login</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
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