2016-06-24 18 views
0

私はdjango-tenant-schema(およびpostgresql)を使用してマルチテナントアプリケーションを開発しています。新しいスキーマが作成されるとすぐに、call_commandを使用してスーパーユーザーを作成しています。私はpost_migrateシグナルを使用するオプションも考えました。各スキンdjangoでスーパーユーザーを自動作成

シェルでパスワードを入力せずにスーパーユーザーを自動的に作成する方法は疑いありません。 ユースケースは、ユーザーがスキーマを登録するとすぐに、スーパーユーザーが生成され、ユーザーはスーパーユーザーのユーザー名とパスワードでログインし、その後パスワードを変更することができます。私はcreatesuperuserコマンドを呼び出すために、次を使用してい

はこの問題を解決するために
call_command('createsuperuser', schema_name=self.schema_name, username='admin', email='[email protected]') 

一つの方法は、Djangoのcreatesuperuser.pyファイルを変更すると、自動的にあそこにパスワードを入力して、許容可能な経路ではないthatsの言い訳しています、つまり、いくつかのユースケースのためにソースコードを記述することです。私はあなたが新しいスーパーユーザのパスワードを「準備」とはbashにMD5値を渡すことができますいくつかのより良い方法

答えて

0

の要求をしてもらえ:?

a=# select md5('some password'||'test');; 
       md5 
---------------------------------- 
d5b3eb515b64edf295b2ee9062946d24 
(1 row) 

a=# create user test superuser password 'md5d5b3eb515b64edf295b2ee9062946d24'; 
CREATE ROLE 

ので、あなたはどこか別のパスワードを保存し、bashでd5b3eb515b64edf295b2ee9062946d24を使用することができます。..

+0

私は、セキュリティ上問題がありません。続行する前にパスワードを変更する必要があるためです。しかし、私の問題は、どのようにbashではなく、自動的にコードをdjangoに渡すことができます。スーパーユーザーでもパスワードがなくても大丈夫ですので、初回使用時にパスワード – SG2791

+0

を入力する必要がありますので、ログイン時にパスワードを強制的に変更する方法を教えてください。 –

+0

申し訳ありません。私の質問は、自動的にこのパスワードをDjangoに送る方法です。すなわち、ユーザーが登録するときに、call_commandがcreatesuperuserを呼び出しますが、これはコマンドラインでパスワードを要求しています。私はパスワードが自動的に、つまりコマンドラインではなく、いくつかのプログラミング/コードを介して送信されたい場合 – SG2791

関連する問題