src/cm/management/commands/create_manager.py
author raph
Wed, 03 Feb 2010 15:42:56 +0100
changeset 142 9b3438382e53
parent 141 3acc965253e2
permissions -rw-r--r--
add base64 parameter passing mode
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
142
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
     1
from django.core.management.base import LabelCommand, CommandError, BaseCommand, make_option
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
     2
from base64 import b64decode
141
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
     3
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
     4
class Command(LabelCommand):
142
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
     5
    option_list = BaseCommand.option_list + (
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
     6
        make_option('--base64', action='store_true', dest='base64', default=False,
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
     7
            help='Assume all input are base64 encoded.'),
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
     8
    )
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
     9
        
141
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
    10
    help = "Create manager"
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
    11
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
    12
    def handle(self, *labels, **options):
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
    13
        if len(labels)!=5:
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
    14
            raise CommandError("Enter manager's email, username, password, first_name, last_name")
142
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    15
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    16
        base64 = options.get('base64')
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    17
        if base64:
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    18
            email       = b64decode(labels[0])
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    19
            username    = b64decode(labels[1])
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    20
            password    = b64decode(labels[2])
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    21
            first_name  = b64decode(labels[3])
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    22
            last_name   = b64decode(labels[4])
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    23
        else:
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    24
            email       = labels[0]
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    25
            username    = labels[1]
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    26
            password    = labels[2]
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    27
            first_name  = labels[3]
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    28
            last_name   = labels[4]
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    29
        
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    30
        email = email.decode('utf8')
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    31
        username = username.decode('utf8')
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    32
        password = password.decode('utf8')
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    33
        first_name = first_name.decode('utf8')
9b3438382e53 add base64 parameter passing mode
raph
parents: 141
diff changeset
    34
        last_name = last_name.decode('utf8')
141
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
    35
        
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
    36
        from cm.models import UserProfile
3acc965253e2 add set_workspacename and create_manager management commands
raph
parents:
diff changeset
    37
        UserProfile.objects._create_manager(email, username, password, first_name, last_name)