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