2009-03-02 21 views
3

私は1つの権限で新しいモデルを追加しました。コードをデプロイして、関連する新しいアプリケーションのsyncdbを実行した後、本番マシンの少数のユーザーにその権限を追加する必要があります。私はこれを行う正しい方法を発見していない。 authドキュメントにはUser.user_permissions.add(許可)が記載されていますが、「許可」が何であるか、またはそれを取得する最良の方法を教えてください。権限に対処する適切な方法は何ですか?

答えて

4

Permissiondjango.contrib.auth.modelsにある)はデータベースオブジェクトです。 Permission.objects.all()ですべてを見ることができます。これらは、各モデルのポストシンク信号によって自動的に作成されます(また、as the docs mention、独自に定義することもできます)。

ユーザーにアクセス許可を割り当てるには、まずPermissionオブジェクトを取得する必要があります(Permission.objects.get(*args)を使用)。その後、前述のようにUser.user_permissions.add(permission)でユーザーに追加できます。

また、簡単な方法でこれを行うことができる場合は、Django管理サイトを使用するだけです。各ユーザーの詳細ページには、アクセス許可に関連するセクションがあります。私はあなたが管理者の外でこれらのアクセス許可を使用していないと推測しているので、それが影響する唯一の領域です。すべてのユーザーにすべての権限を付与する場合は、各ユーザーのis_superuserフラグをTrueに設定してスーパーユーザーにすることができます。

+0

これは技術的に質問された質問に対する技術的な回答ですが、私は何か他のことを望んでいました。私はadd_perm(Model、permission_name)のような何かを見逃したいと思っていた – ironfroggy

+0

いいえ、あなたはしませんでした。技術的には 'User'クラスのdjango/contrib/auth/models.pyを見れば、' User'インスタンス上のすべてのメソッドを見ることができます。 – obeattie

関連する問題