Example #1
0
 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()
Example #2
0
 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()
Example #3
0
    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()
Example #4
0
    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()
Example #5
0
 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()
Example #6
0
    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()