source: asadb/space/dump_locker_access.py @ 0a0a96c

space-accessstablestage
Last change on this file since 0a0a96c was 0a0a96c, checked in by Alex Dehnert <adehnert@…>, 14 years ago

Script to dump who should have locker access

This is pretty quick and dirty, and doesn't handle any sort of incremental
updates. That's fine for the moment, though...

  • Property mode set to 100755
File size: 1.4 KB
Line 
1#!/usr/bin/python
2import collections
3import datetime
4import os
5import sys
6
7if __name__ == '__main__':
8    cur_file = os.path.abspath(__file__)
9    django_dir = os.path.abspath(os.path.join(os.path.dirname(cur_file), '..'))
10    sys.path.append(django_dir)
11    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
12
13import groups.models
14import space.models
15
16def gather_users():
17    spaces_groups = collections.defaultdict(set)
18    spaces_list = space.models.SpaceAssignment.current.filter()
19    for assignment in spaces_list:
20        if assignment.is_locker():
21            spaces_groups[assignment.space.pk].add(assignment.group)
22    space_users = {}
23    role = groups.models.OfficerRole.objects.get(slug='locker-access')
24    for space_id, space_groups in spaces_groups.items():
25        users = set()
26        for group in space_groups:
27            holders = group.officers(role=role)
28            for holder in holders: users.add(holder.person)
29        space_users[space_id] = users
30    return space_users
31
32def print_info(space_users):
33    for space_id, users in space_users.items():
34        print "\n\n%s:" % (space.models.Space.objects.get(pk=space_id), )
35        user_objs = groups.models.AthenaMoiraAccount.objects.filter(username__in=users)
36        for user in user_objs:
37            print "%s (%s %s, %s)" % (user.username, user.first_name, user.last_name, user.mit_id)
38
39if __name__ == '__main__':
40    space_users = gather_users()
41    print_info(space_users)
Note: See TracBrowser for help on using the repository browser.