add base64 parameter passing mode
authorraph
Wed, 03 Feb 2010 15:42:56 +0100
changeset 142 9b3438382e53
parent 141 3acc965253e2
child 143 3c21b9097908
child 145 fb5b1e6ad179
add base64 parameter passing mode
src/cm/management/commands/create_manager.py
src/cm/management/commands/set_workspacename.py
--- a/src/cm/management/commands/create_manager.py	Wed Feb 03 15:09:30 2010 +0100
+++ b/src/cm/management/commands/create_manager.py	Wed Feb 03 15:42:56 2010 +0100
@@ -1,16 +1,37 @@
-from django.core.management.base import LabelCommand, CommandError
+from django.core.management.base import LabelCommand, CommandError, BaseCommand, make_option
+from base64 import b64decode
 
 class Command(LabelCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--base64', action='store_true', dest='base64', default=False,
+            help='Assume all input are base64 encoded.'),
+    )
+        
     help = "Create manager"
 
     def handle(self, *labels, **options):
         if len(labels)!=5:
             raise CommandError("Enter manager's email, username, password, first_name, last_name")
-        email       = labels[0]
-        username    = labels[1]
-        password    = labels[2]
-        first_name  = labels[3]
-        last_name   = labels[4]
+
+        base64 = options.get('base64')
+        if base64:
+            email       = b64decode(labels[0])
+            username    = b64decode(labels[1])
+            password    = b64decode(labels[2])
+            first_name  = b64decode(labels[3])
+            last_name   = b64decode(labels[4])
+        else:
+            email       = labels[0]
+            username    = labels[1]
+            password    = labels[2]
+            first_name  = labels[3]
+            last_name   = labels[4]
+        
+        email = email.decode('utf8')
+        username = username.decode('utf8')
+        password = password.decode('utf8')
+        first_name = first_name.decode('utf8')
+        last_name = last_name.decode('utf8')
         
         from cm.models import UserProfile
         UserProfile.objects._create_manager(email, username, password, first_name, last_name)
\ No newline at end of file
--- a/src/cm/management/commands/set_workspacename.py	Wed Feb 03 15:09:30 2010 +0100
+++ b/src/cm/management/commands/set_workspacename.py	Wed Feb 03 15:42:56 2010 +0100
@@ -1,11 +1,23 @@
-from django.core.management.base import LabelCommand, CommandError
+from django.core.management.base import LabelCommand, CommandError, BaseCommand, make_option
+from base64 import b64decode
 
 class Command(LabelCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--base64', action='store_true', dest='base64', default=False,
+            help='Assume all input are base64 encoded.'),
+    )
+    
     help = "Change workspace name"
 
     def handle(self, *labels, **options):
         if len(labels)!=1:
             raise CommandError('Enter workspace name')
-        name = labels[0]
-        from cm.models import Configuration
-        Configuration.objects.set_workspace_name(name.decode('utf8'))        
+        base64 = options.get('base64')
+        if base64:
+            name = b64decode(labels[0])
+        else:
+            name = labels[0]
+        name = name.decode('utf8')
+        
+        from cm.models import Configuration        
+        Configuration.objects.set_workspace_name(name)