Kohana і права доступу

Kohana і права доступу

Це означає наступне:

  • Якщо користувач має права адміністратора, то дати йому можливість працювати з контролерами, що відносяться до адмінки.
  • Якщо користувач має лише правами "login", то админка для нього буде закрита.

Приступимо до виконання задуманого.

На початку я пропоную відокремити мух від котлет 🙂

Всі контролери, які стосуються до адмінки, я засунь в піддиректорію admin в папці kohana \ www \ application \ classes \ controller.

Крім того, необхідно задати додаткове правило маршрутизації в файлі kohana \ www \ application \ bootstrap.php

Виглядає воно наступним чином:

Для вищеозначених URL визначається директорія за замовчуванням (admin). а також дефоултний контролер (main) і action (index).

Важливе доповнення - bootstrap.php виконується послідовно, тому загальне правило дефоултной маршрутизації необхідно вказувати після приватного правила маршрутизації admin.

Як ви пам'ятаєте, шановний читачу, дана задача вирішувалася успадкуванням від kohana \ www \ application \ classes \ mycontroller.php, де описувався метод before:

На основі mycontroller.php я пропоную створити mycontrolleradmin.php і вже в ньому підредагувати метод before:

Ми додали всього одне правило редиректу (7-й рядок). У цьому рядку методом $ auth-> logged_in ( 'admin') здійснюється перевірка на присутність у залогіненним користувача ролі admin.

Назва ролі зазначено в таблиці roles нашої бази даних.

Тепер залишається успадкувати контролери адмінки від mycontrolleradmin.php і все, завдання виконане:

ПС: з приводу хешування - хешування тим і відрізняється від шифрування що воно є незворотнім, тому відновити захешірованние дані впринципі неможливо.

А для поділу користувачів на групи і присвоєння їм відповідних ролей ідеально підходить саме таблиця roles_users і не треба нічого додавати в таблицю users. У Kohana це все вже реалізовано з коробки.

Допоможіть пожплуйста, у мене ось така помилка

ErrorException [Fatal Error]: Call to undefined method Kohana :: config ()

MODPATH / email / classes / email.php [34]
29 // Load SwiftMailer
30 require Kohana :: find_file ( 'vendor', 'swift / swift_required');
31>
32
33 // Load default configuration
34 ($ config === NULL) and $ config = Kohana :: config ( 'email');
35
36 switch ($ config [ 'driver'])
37 38 case 'smtp':
39 // Set port
»Kohana_Core :: shutdown_handler ()

34 ... $ config = Kohana :: $ config-> load ( 'email');

правильно запам'ятовувати значення Request :: initial () -> uri ();
який і поверне замість kohana / amdin просто admin. 🙂

І на солодке. Кохана - ЦЕ ВІН. і не патамушо гладіолус, а патамушо фреймворк.
жигулі не червона, а червоний - тому що автомобіль.
Сочі не красиві, а гарний - тому що місто
Кохана - він, тому що фреймворк.
Імена власності не склоняються по особах і числах.
Шура може бути і він і вона, дивлячись хто
Таймс може бути свіже і свіжа, дивлячись про газету або журнал йде мова.
Москва - красива, не тому що гладіолус, а потомучто СТОЛИЦЯ. був би просто місто, а не мати всіх міст, була б гарним.
і мерседес темний, якщо автомобіль, а темна елси жіноче ім'я.

лада - ось вона червона, це тупо історично склалося, так як лада ім'я машини, хоча це не правильно - це автомобіль. машина - це комп'ютер, верстати та ін машини. дуже загальне поняття. і автомобіль туди не входить так як виріб яке складається з купи машин і механізмів.
але в народі прижилося.
А ось Ока повільний, повільна тільки якщо річка.

Кохана - він. Хм. Дотримуючись Вашою логікою з приводу міст, Одеса - він?

Кохана - вона. Тому що жіночого роду.

Схожі статті