Skip to content
Snippets Groups Projects
Commit 81aa2922 authored by Fabrice Salvaire's avatar Fabrice Salvaire
Browse files

ProjectManager: added make_secret_key

parent 67a6507b
No related branches found
No related tags found
No related merge requests found
......@@ -25,6 +25,8 @@ import cmd
import glob
import json
import os
import random
import secrets
import subprocess
import colors # ansicolors @PyPI
......@@ -110,10 +112,10 @@ class Shell(cmd.Cmd):
##############################################
def _check_args(self, args):
def _check_args(self, args, defaults=None):
if isinstance(args, str):
return FakeArgument(args)
return FakeArgument(args, defaults)
else:
return args
......@@ -179,19 +181,20 @@ class Shell(cmd.Cmd):
'Create superuser'
args = self._check_args(args)
# Fixme: how to pass for all
defaults = dict(
# superuser = create_superuser_parser.get_default('superuser')
# superuser_email = create_superuser_parser.get_default('superuser_email')
superuser = Defaults.SUPERUSER,
superuser_email = Defaults.SUPERUSER_EMAIL,
)
args = self._check_args(args, defaults)
self._print_banner('Create superuser / admin')
# Fixme: how ot pass for all
if args is None:
# superuser = create_superuser_parser.get_default('superuser')
# superuser_email = create_superuser_parser.get_default('superuser_email')
superuser = Defaults.SUPERUSER
superuser_email = Defaults.SUPERUSER_EMAIL
else:
superuser = args.superuser
superuser_email = args.superuser_email
superuser = args.superuser
superuser_email = args.superuser_email
self._manage(
'createsuperuser',
......@@ -293,6 +296,30 @@ class Shell(cmd.Cmd):
##############################################
def do_make_secret_key(self, args=None):
'Make Secret Key'
defaults = dict(
size=50,
)
args = self._check_args(args, defaults)
size = int(args.size)
if args.url_safe:
key = secrets.token_urlsafe(size)
else:
characters = ''.join([chr(ord('a') + i) for i in range(26)])
characters += characters.upper()
characters += ''.join([str(i) for i in range(10)])
characters += '_ - + * = ( ) ! @ # $ % & ^'.replace(' ', '')
key = ''.join([random.SystemRandom().choice(characters) for i in range(size)])
print(key)
##############################################
def do_all_setup(self, args=None):
'Run all'
......
......@@ -177,6 +177,18 @@ class ArgumentParser:
make_message_parser.set_defaults(func=shell.do_make_message)
################################
make_secret_key = subparsers.add_parser(
'make_secret_key',
help='Make secret key',
)
make_secret_key.add_argument('--url-safe', action='store_true')
make_secret_key.add_argument('--size', type=int, default=50)
make_secret_key.set_defaults(func=shell.do_make_secret_key)
##############################################
def parse(self):
......
#! /usr/bin/env python3
####################################################################################################
import random
####################################################################################################
characters = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)'
key_length = 50
key = ''.join([random.SystemRandom().choice(characters) for i in range(key_length)])
print(key)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment