Witajcie, widziałem wiele tutoriali Yii 2 RBAC, ale nie jestem w stanie docenić sposobu implementacji reguł. W przewodniku Yii 2 przedstawili zasady działania, ale nie w jaki sposób można je zastosować w zachowaniu kontrolera lub gdzie indziej. Naprawdę potrzebuję oświecenia w tej sprawie.Yii2 RBAC Implementacja reguły
Mam teraz system przesyłania dokumentów, w którym mam dwie role, mianowicie koder admin &. Zasadniczo rola administratora może zrobić wszystko, podczas gdy rola enkodera może tylko tworzyć, wyświetlać, aktualizować i usuwać własne. Stworzyłem już regułę o nazwie encodedBy.
To jest mój kod w moim EncoderRule
namespace app\rbac; use yii\rbac\Rule;
/** * Checks if encoded_by matches user passed via params */ class EncoderRule extends Rule {
public $name = 'encodedBy';
/**
* @param string|integer $user the user ID.
* @param Item $item the role or permission that this rule is associated with
* @param array $params parameters passed to ManagerInterface::checkAccess().
* @return boolean a value indicating whether the rule permits the role or permission it is associated with.
*/
public function execute($user, $item, $params)
{
return isset($params['document']) ? $params['document']->encoded_by == $user : false;
} }
przechowywać dane w tabeli „dokument”, gdzie mam pole o nazwie „encoded_by” Mam nadzieję, że chłopaki mogą mi pomóc w tej sprawie. Wielkie dzięki!
Ten film naprawdę dobrze wyjaśnia objaśnienie RBAC dla każdego, kto nie jest pewien, jak to działa: https://www.youtube.com/watch?v = vLb8YATO-HU – TheStoryCoder