Revision d7c091f7

/dev/null
1
import os
2
import sys
3
os.environ['DJANGO_SETTINGS_MODULE'] = 'synnefo.settings'
4

  
5
from django.conf import settings
6
from astakos.im.models import AstakosUser
7

  
8
def duplicate_users():
9
    for u in AstakosUser.objects.filter():
10
        if AstakosUser.objects.filter(email__iexact=u.email).count() > 1:
11
            print AstakosUser.objects.filter(email__iexact=u.email).values('pk',
12
                                                                    'email',
13
                                                                    'is_active')
14

  
15
if len(sys.argv) == 2:
16
    pk = int(sys.argv[1])
17
    user = AstakosUser.objects.get(pk=pk)
18
    if AstakosUser.objects.filter(email__iexact=user.email).count() == 1:
19
        print "No duplicate emails found for user %s" % (user)
20
        exit()
21
    user = AstakosUser.objects.get(pk=pk)
22
    print "Deleting user %r" % (user)
23
    user.delete()
24
    exit()
25
else:
26
    duplicate_users()
27

  
b/contrib/upgrade-013/delete_astakos_users.py
1
#!/usr/bin/env python
2

  
3
import os
4
import sys
5
from time import sleep
6

  
7
os.environ['DJANGO_SETTINGS_MODULE'] = 'synnefo.settings'
8

  
9
import astakos
10
from astakos.im.models import AstakosUser as A
11

  
12

  
13
def user_filter(user):
14
    return A.objects.filter(email__iexact=user.email).count() > 1
15

  
16
argv = sys.argv
17
argc = len(sys.argv)
18

  
19
if argc < 2:
20
    print "Usage: ./delete_astakos_users.py <id>..."
21
    raise SystemExit()
22

  
23
id_list = [int(x) for x in argv[1:]]
24

  
25
print ""
26
print "This will permanently delete the following users:\n"
27
print "id: email"
28
print "--  -----"
29

  
30
users = A.objects.filter(id__in=id_list)
31
for user in users:
32
    print "%s: %s" % (user.id, user.email)
33

  
34
print "\nExecute? (yes/no): ",
35
line = raw_input().rstrip()
36
if line != 'yes':
37
    print "\nCancelled"
38
    raise SystemExit()
39

  
40
print "\nConfirmed."
41
sleep(2)
42
for user in users:
43
    print "deleting %s: %s" % (user.id, user.email)
44
    user.delete()
b/contrib/upgrade-013/find_astakos_users_with_conflicting_emails.py
1
#!/usr/bin/env python
2
import os
3
import sys
4

  
5
os.environ['DJANGO_SETTINGS_MODULE'] = 'synnefo.settings'
6

  
7
import astakos
8
from astakos.im.models import AstakosUser as A
9

  
10

  
11
def user_filter(user):
12
    return A.objects.filter(email__iexact=user.email).count() > 1
13

  
14
all_users = list(A.objects.all())
15
userlist = [(str(u.pk) + ': ' + str(u.email)) for u in
16
            filter(user_filter, all_users)]
17

  
18
sys.stderr.write("id: email\n")
19
print "\n".join(userlist)

Also available in: Unified diff