الإطار الثاني - حقوق المستخدم من خلال قاعدة البيانات.
نقوم بإنشاء وحدة تحكم يتم من خلالها توريث جميع وحدات التحكم وقبل إجراء - طريقة سيتم تنفيذها قبل الإجراء.
PS: يجب إنشاء نماذج و CRUD باستخدام وحدة Gii.
<?php namespace app\helper; use yii\web\Controller; use app\models\Users; use app\models\Rights; use Yii; class AppController extends Controller{ public function beforeAction($action){ $controller = $action->controller->id;
الجدول النموذجي والحقوق:
CREATE TABLE `rights` ( `id` int(11) NOT NULL AUTO_INCREMENT, `controller` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `rights` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=32 DEFAULT CHARSET=utf8
نموذج الجدول والمستخدمين ، وخصوصية هو أن هناك مجال حقوق:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(255) NOT NULL, `phone` varchar(22) NOT NULL, `password` varchar(64) NOT NULL, `righgts` varchar(60) NOT NULL, `verify_key` varchar(65) NOT NULL, `activated` int(11) NOT NULL, `recovery_key` varchar(65) NOT NULL, `recovery_key_life` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `auth_key` varchar(255) NOT NULL, `accessToken` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=37 DEFAULT CHARSET=utf8
في جدول المستخدمين ، لدينا القدرة على تغيير حقل الحقوق ، المسؤول عن حقوق الوصول إلى إجراءات التحكم.

في جدول الحقوق ، نكتب: وحدة التحكم والإجراء والأدوار (الحقوق ، الحقوق) التي لها حق الوصول إليها.

الخوارزمية:
- يتحقق جهاز التحكم الأصل من حقوق المستخدم من قاعدة البيانات (عمود الحقوق).
- تحصل وحدة التحكم الأصل على اسم وحدة التحكم التي تم استدعاؤها واسم الإجراء الذي تم استدعاؤه.
- وحدة التحكم الأصل تصل إلى جدول الحقوق وتتحقق من الحقوق المطلوبة من أجل استخدام وحدة التحكم والإجراء المدعوين.
- إذا تطابقت حقوق المستخدم مع الحقوق في جدول الحقوق ، فسيتم تنفيذ الإجراء ؛ وإذا لم يكن الأمر كذلك ، فسيتم تنفيذ إعادة التوجيه.
سرد الحقوق في جدول الحقوق مفصولة بفواصل.
من الجيد استخدام هذه الطريقة في وحدة المسؤول ، لأن الحقوق القياسية لجزء المستخدم مناسبة.
أنا لست سيدًا في كتابة المقالات والتعبير عن نفسي بشكل جميل ، لقد أوضحت فقط الجوهر الفني ، يرجى وضع علامة زائد - سأكتب الكثير من الأشياء المثيرة للاهتمام.