| |
@@ -18,6 +18,22 @@
|
| |
timeout = socket.getdefaulttimeout()
|
| |
socket.setdefaulttimeout(None)
|
| |
|
| |
+
|
| |
+ prefix_blacklist = [
|
| |
+ u'git',
|
| |
+ u'svn',
|
| |
+ u'bzr',
|
| |
+ u'cvs',
|
| |
+ u'hg',
|
| |
+ u'cla_',
|
| |
+ u'sysadmin-',
|
| |
+ ]
|
| |
+ suffix_blacklist = [
|
| |
+ u'commits',
|
| |
+ u'git',
|
| |
+ ]
|
| |
+
|
| |
+
|
| |
for letter in reversed(sorted(list(set(string.letters.lower())))):
|
| |
session = hubs.models.init(fedmsg_config['hubs.sqlalchemy.uri'], True, True)
|
| |
print "Querying FAS for the %r users.. hang on." % letter
|
| |
@@ -32,7 +48,51 @@
|
| |
fullname = user['human_name']
|
| |
openid = '%s.id.fedoraproject.org' % username
|
| |
print "Creating account for %r" % openid
|
| |
- hubs.models.User.get_or_create(
|
| |
+ hubs_user = hubs.models.User.get_or_create(
|
| |
session, openid=openid, fullname=fullname)
|
| |
|
| |
session.commit()
|
| |
+
|
| |
+ # Go back now and set up the groups...
|
| |
+ session = hubs.models.init(fedmsg_config['hubs.sqlalchemy.uri'], True, True)
|
| |
+ for user in users:
|
| |
+ hubs_user = hubs.models.User.by_username(session, user['username'])
|
| |
+
|
| |
+ # Build a lookup by group id
|
| |
+ roles = dict([(r.group_id, r) for r in user['roles']])
|
| |
+
|
| |
+ for membership in user['memberships']:
|
| |
+ role = roles[membership['id']]
|
| |
+ if role['role_status'] != u'approved':
|
| |
+ continue
|
| |
+
|
| |
+ name = membership['name']
|
| |
+ summary = membership['display_name']
|
| |
+
|
| |
+ if any([name.startswith(prefix) for prefix in prefix_blacklist]):
|
| |
+ continue
|
| |
+ if any([name.endswith(suffix) for suffix in suffix_blacklist]):
|
| |
+ continue
|
| |
+
|
| |
+ hub = hubs.models.Hub.get_or_create(
|
| |
+ session,
|
| |
+ name=name,
|
| |
+ summary=summary,
|
| |
+ apply_rules=membership['apply_rules'],
|
| |
+ irc_channel=membership['irc_channel'],
|
| |
+ irc_network=membership['irc_network'],
|
| |
+ join_message=membership['joinmsg'],
|
| |
+ mailing_list=membership['mailing_list'],
|
| |
+ mailing_list_url=membership['mailing_list_url'],
|
| |
+ )
|
| |
+
|
| |
+
|
| |
+ if not hubs_user in hub.subscribers:
|
| |
+ hub.subscribe(session, hubs_user, role='subscriber')
|
| |
+ if not hubs_user in hub.members:
|
| |
+ hub.subscribe(session, hubs_user, role='member')
|
| |
+ if not hubs_user in hub.owners:
|
| |
+ if role['role_type'] in [u'administrator', u'sponsor']:
|
| |
+ hub.subscribe(session, hubs_user, role='owner')
|
| |
+
|
| |
+ session.commit()
|
| |