こんにちは、
この質問が十分に明確でない場合はお知らせください。できるだけわかりやすくするために最善を尽くします。
データ オブジェクトを使用してエンド ユーザーが生成したオブジェクトにアクセス制御を追加するにはどうすればよいですか?
例: DataObject を拡張するクラスがあります。誰かがバックエンドにログインします。CMS によってデータ オブジェクト用に生成されたフォームに入力します。次に、CMS によってデータベースにレコードが作成されます。
データベースに新しく作成されたレコードにアクセス制御を追加したいと思います。
コード シナリオについては、私の投稿の 1 つを見ることができます: Silverstripe 3 - CMS からコントローラー アクセス セキュリティを実装できません
この質問をする他の唯一の方法は次のとおりです。CMS を介して DataObject 拡張機能によって作成されたレコードのアクセス許可を動的に (またはプログラムで) 作成する方法は?
ご協力ありがとうございます。
更新 - サンプルコード
///>snippet, note it also has a Manager class that extends ModelAdmin which manages this!
class component extends DataObject implements PermissionProvider{
public static $db = array(
'Title' => 'Varchar',
'Description' => 'Text',
'Status' => "Enum('Hidden, Published', 'Hidden')",
'Weight' => 'Int'
);
///All the regular permission checks (overrides), for the interface goes here, etc...
///That is: canView, canDelete, canEdit, canCreate, providePermissions
}
現在、エンドユーザーは、バックエンドから、ModelAdmin を拡張して生成されたマネージャー インターフェイスを使用してコンポーネントを追加できます。エンドユーザーがこれらの追加されたコンポーネントに個々のアクセス許可を追加するにはどうすればよいですか? ありがとう。
更新 2
の例: ModelAdmin を拡張するプロセス データ オブジェクトを追加すると、バックエンドでこれが得られます
次に、生成された [プロセスの追加] ボタンをクリックすると、次のようになります。
最後に、誰かがフォームに入力して [作成] ボタンをクリックすると、データがデータベースに保存されます。それは次のようになります。
ここで、MySQL で作成されたレコードで、そのレコードに詳細なアクセス許可を追加したいと思います。つまり、作成されたすべてのレコードに対して、グループ/個人などを介してアクセスを拒否/許可できるようにしたいのですが
、SilverStripe フレームワークでもそれは可能ですか? ありがとう。