2017-06-27 11 views
0

私は最終的に最大100のパーミッションを持つパーミッションテーブルを持っています。 「ユーザーの追加」、「ユーザーの編集」など。Permissionsモデルで許可ごとにconstを作成することは可能でしょうか?データベース内の各値のモデルに定数を代入する

なぜなら、ユーザーが許可を持っているかどうかを確認するために使用される単一の方法があるからです。$this->hasPermission(Permission::USER_ADD)のようなことをしたいと思います。毎回それを私に要求する。

私は当初、レコード数を減らすことを目指していたので、各リソースに対して個別のCRUD権限を持つ代わりに、CRUDアクションの対応する列とともにユーザーに対してのみアクセス許可を持っていました。しかし、特定の権限がそれらのCRUDアクションに該当しないケースがあるので、私にとっては十分柔軟ではありません。たとえば、「表示されていないユーザーを表示する」などです。

私は特に定数に問題は見当たりませんが、これが悪い習慣であれば何らかの入力が必要でした。前もって感謝します。

答えて

1

私は個人的には、ドメインがそれを必要とする場合、100個の定数に問題はありません。

<?php 

abstract class Acl { 
    const USER_ADD = 'USER_ADD'; 
    ... 
} 

し、それらによってチェック:$this->hasPermission(Acl::USER_ADD) あなたがアクセス権の数を成長するにつれて、あなたのモデルが汚染され得ることはありません。この方法を私はおそらく、この場合にはどうなることのように、別のクラスに定数を移動しています。

個人的な経験から、権限オブジェクトを追加することができるように、CRUDを使用して権限オブジェクトをDBに格納することは通常利点はありませんが、コードの新しい機能はまだコード内になければなりません。以前のプロジェクトの1つでは、コードにオブジェクトを格納し、DB内のオブジェクトを参照しました。あなたが達成しようとしていることの逆も同様です。

一方、例えば、以下のように、ACLのためのいくつかの他の(コミュニティ)ソリューションをチェックするbenefitialかもしれません:あなたのための

+1

感謝入力。 – kenshin9

関連する問題