Revision 30dc8c1a snf-astakos-app/astakos/im/management/commands/addgroup.py
b/snf-astakos-app/astakos/im/management/commands/addgroup.py | ||
---|---|---|
39 | 39 |
from os.path import abspath |
40 | 40 |
|
41 | 41 |
from django.core.management.base import BaseCommand, CommandError |
42 |
|
|
43 | 42 |
from django.contrib.auth.models import Group |
44 | 43 |
|
44 |
from ._common import add_group_permission |
|
45 |
|
|
45 | 46 |
class Command(BaseCommand): |
46 |
args = "<name>"
|
|
47 |
args = "<groupname> [<permission> ...]"
|
|
47 | 48 |
help = "Insert group" |
48 | 49 |
|
49 | 50 |
def handle(self, *args, **options): |
50 |
if len(args) != 1:
|
|
51 |
if len(args) < 1:
|
|
51 | 52 |
raise CommandError("Invalid number of arguments") |
52 | 53 |
|
53 | 54 |
name = args[0].decode('utf8') |
... | ... | |
58 | 59 |
except Group.DoesNotExist, e: |
59 | 60 |
group = Group(name=name) |
60 | 61 |
group.save() |
61 |
|
|
62 |
msg = "Created group id %d" % (group.id,) |
|
63 |
self.stdout.write(msg + '\n') |
|
62 |
msg = "Created group id %d" % (group.id,) |
|
63 |
self.stdout.write(msg + '\n') |
|
64 |
try: |
|
65 |
for pname in args[1:]: |
|
66 |
r, created = add_group_permission(group, pname) |
|
67 |
if created: |
|
68 |
self.stdout.write('Permission: %s created successfully\n' % pname) |
|
69 |
if r == 0: |
|
70 |
self.stdout.write('Group has already permission: %s\n' % pname) |
|
71 |
else: |
|
72 |
self.stdout.write('Permission: %s added successfully\n' % pname) |
|
73 |
except Exception, e: |
|
74 |
raise CommandError(e) |
Also available in: Unified diff