def migrate_settings(self): print cformat('%{white!}migrating settings') VidyoPlugin.settings.delete_all() opts = self.zodb_root['plugins']['Collaboration']._PluginType__plugins['Vidyo']._PluginBase__options VidyoPlugin.settings.set('managers', convert_principal_list(opts['admins'])) VidyoPlugin.settings.set('acl', convert_principal_list(opts['AuthorisedUsersGroups'])) settings_map = { 'adminAPIURL': 'admin_api_wsdl', 'userAPIURL': 'user_api_wsdl', 'prefix': 'indico_room_prefix', 'indicoGroup': 'room_group_name', 'phoneNumbers': 'vidyo_phone_link', 'maxDaysBeforeClean': 'num_days_old', 'indicoUsername': '******', 'indicoPassword': '******', 'contactSupport': 'support_email', 'cleanWarningAmount': 'max_rooms_warning', 'additionalEmails': 'notification_emails' } for old, new in settings_map.iteritems(): value = option_value(opts[old]) if old == 'prefix': value = int(value) elif old == 'phoneNumbers': match = next((re.search(r'https?://[^"]+', convert_to_unicode(v)) for v in value), None) if match is None: continue value = match.group(0) elif old == 'additionalEmails': value = list(set(value) | {x.email for x in option_value(opts['admins'])}) VidyoPlugin.settings.set(new, value) db.session.commit()
def migrate_settings(self): print cformat('%{white!}migrating settings') rb_settings.delete_all() opts = self.zodb_root['plugins']['RoomBooking']._PluginBase__options # Admins & authorized users/groups rb_settings.set('authorized_principals', convert_principal_list(opts['AuthorisedUsersGroups'])) rb_settings.set('admin_principals', convert_principal_list(opts['Managers'])) # Assistance emails emails = [email for email in opts['assistanceNotificationEmails']._PluginOption__value if is_valid_mail(email, False)] rb_settings.set('assistance_emails', emails) # Simple settings rb_settings.set('notification_before_days', opts['notificationBefore']._PluginOption__value) db.session.commit()
def migrate_settings(self): print cformat('%{white!}migrating settings') rb_settings.delete_all() opts = self.zodb_root['plugins']['RoomBooking']._PluginBase__options # Admins & authorized users/groups rb_settings.set('authorized_principals', convert_principal_list(opts['AuthorisedUsersGroups'])) rb_settings.set('admin_principals', convert_principal_list(opts['Managers'])) # Assistance emails emails = [email for email in opts['assistanceNotificationEmails']._PluginOption__value if is_valid_mail(email, False)] rb_settings.set('assistance_emails', emails) # Simple settings rb_settings.set('notification_hour', opts['notificationHour']._PluginOption__value) rb_settings.set('notification_before_days', opts['notificationBefore']._PluginOption__value) db.session.commit()
def migrate_settings(self): print cformat('%{white!}migrating settings') ChatPlugin.settings.delete_all() type_opts = self.zodb_root['plugins']['InstantMessaging']._PluginBase__options opts = self.zodb_root['plugins']['InstantMessaging']._PluginType__plugins['XMPP']._PluginBase__options host = convert_to_unicode(opts['chatServerHost']._PluginOption__value) admin_emails = [x.email for x in opts['admins']._PluginOption__value] ChatPlugin.settings.set('admins', convert_principal_list(opts['admins'])) ChatPlugin.settings.set('server', host) ChatPlugin.settings.set('muc_server', 'conference.{}'.format(host)) settings_map = { 'additionalEmails': 'notify_emails', 'indicoUsername': '******', 'indicoPassword': '******', 'ckEditor': 'how_to_connect' } for old, new in settings_map.iteritems(): value = opts[old]._PluginOption__value if isinstance(value, basestring): value = convert_to_unicode(value).strip() elif new == 'notify_emails': value = [email for email in set(value + admin_emails) if is_valid_mail(email, multi=False)] ChatPlugin.settings.set(new, value) if opts['activateLogs']._PluginOption__value: ChatPlugin.settings.set('log_url', 'https://{}/logs/'.format(host)) chat_links = [] for item in type_opts['customLinks']._PluginOption__value: link = item['structure'].replace('[chatroom]', '{room}').replace('[host]', '{server}') link = re.sub(r'(?<!conference\.)\{server}', host, link) link = link.replace('conference.{server}', '{server}') # {server} is now the MUC server chat_links.append({'title': item['name'], 'link': link}) ChatPlugin.settings.set('chat_links', chat_links) db.session.commit()
def migrate_settings(self): print cformat("%{white!}migrating settings") rb_settings.delete_all() opts = self.zodb_root["plugins"]["RoomBooking"]._PluginBase__options # Admins & authorized users/groups rb_settings.set("authorized_principals", convert_principal_list(opts["AuthorisedUsersGroups"])) rb_settings.set("admin_principals", convert_principal_list(opts["Managers"])) # Assistance emails emails = [ email for email in opts["assistanceNotificationEmails"]._PluginOption__value if is_valid_mail(email, False) ] rb_settings.set("assistance_emails", emails) # Simple settings rb_settings.set("notification_hour", opts["notificationHour"]._PluginOption__value) rb_settings.set("notification_before_days", opts["notificationBefore"]._PluginOption__value) db.session.commit()
def migrate_settings(self): print cformat('%{white!}migrating settings') ChatPlugin.settings.delete_all() type_opts = self.zodb_root['plugins'][ 'InstantMessaging']._PluginBase__options opts = self.zodb_root['plugins'][ 'InstantMessaging']._PluginType__plugins[ 'XMPP']._PluginBase__options host = convert_to_unicode(opts['chatServerHost']._PluginOption__value) admin_emails = [x.email for x in opts['admins']._PluginOption__value] ChatPlugin.settings.set('admins', convert_principal_list(opts['admins'])) ChatPlugin.settings.set('server', host) ChatPlugin.settings.set('muc_server', 'conference.{}'.format(host)) settings_map = { 'additionalEmails': 'notify_emails', 'indicoUsername': '******', 'indicoPassword': '******', 'ckEditor': 'how_to_connect' } for old, new in settings_map.iteritems(): value = opts[old]._PluginOption__value if isinstance(value, basestring): value = convert_to_unicode(value).strip() elif new == 'notify_emails': value = [ email for email in set(value + admin_emails) if is_valid_mail(email, multi=False) ] ChatPlugin.settings.set(new, value) if opts['activateLogs']._PluginOption__value: ChatPlugin.settings.set('log_url', 'https://{}/logs/'.format(host)) chat_links = [] for item in type_opts['customLinks']._PluginOption__value: link = item['structure'].replace('[chatroom]', '{room}').replace( '[host]', '{server}') link = re.sub(r'(?<!conference\.)\{server}', host, link) link = link.replace('conference.{server}', '{server}') # {server} is now the MUC server chat_links.append({'title': item['name'], 'link': link}) ChatPlugin.settings.set('chat_links', chat_links) db.session.commit()