RSS
Новини
Новини Joomla! CMS
Новини розширень Joomla!
Новини Joomla! Україна
Новини безпеки
Новини мережі
Додати новину
Переклад

Завантажити Joomla

Форум
Хостинг для Joomla
Дискламація

Joomla!TM є торговою маркою компанії Open Source Matters inc. в США та інших країнах. Назва Joomla! і його варіації, такі як J, Joom тощо, використовуються в рамках обмеженою ліцензії, певною компанією Open Source Matters. Спільнота Joomla! Україна не відноситься до компанії Open Source Matters або проекту Joomla! Точки зору представлені на даному сайті не є офіційними точками зору Joomla Project або Open Source Matters.

Торгова марка Joomla® і логотип використовуються в рамках обмеженою ліцензії, наданої Open Source Matters.

Популяні розширення
Sape
Вам необходимо сделать? перерегистрация соответствие закону выгодно устав
горящие путевки в турцию из ростова

Головна arrow Новини розширень Joomla! arrow Joomla! Access Control Plugin - плагін для розподілу рівнів доступу в Joomla!

Joomla! Access Control Plugin - плагін для розподілу рівнів доступу в Joomla!

11.02.2008 | Dutch | Друк | E-mail

Як Ви можливо знаєте, що Joomla 1.5 не дає гранульованого рівня доступу, хоча ACL повинно бути доспупним у версії Joomla 1.6, але це поки що стоїть під питанням. У цей час Роберто Алой (Roberto Aloi – a.k.a. Prof3ta) вирішив цю задачу для Joomla 1.5, написавши простий плагін.

Це доволі простий плагін, який повинен вирішити деякі базові рівні контролю доступа Joomla 1.5.х – компоненти, модулі і т.д.

Якщо Вам необхідно розбити користувачів по групам (наприклад, студентів та викладачів), даючи їм конкретні рівні доступу як в Адміністративній частині, так і в Фронтальній, то у цьому Вам допоможе саме Joomla! Access Control Plugin.

Як використовувати Joomla! Access Control Plugin?

Розглянемо наступну специфікацію, яка буде використовуватися:

  • ACO (Access Control Object) – підтримка контролю доступом (операції, які доступні або недоступні в межах Компоненту);
  • ARO (Access Request Objects) – підтримка контролю запитів (Ваші Користувачі);
  • AXO (Access eXtension Objects) – підтримка контролю доступу до Розширень.

Першим кроком буде встановлення плагіну через Менеджер Встановлення.

Далі Ви повинні додати наступні таблиці до бази даних:

  • #__acl_acos
  • #__acl_aro_groups
  • #__acl_aro_groups_acos_map
  • #__acl_aros_aro_groups_map
  • У даний момент, відсутній будь-який графічний інтерфей, щоб можна було керувати цими таблицями, таким чином Ви повинні керувати базою даних вручну!

    Також Joomla не пропонує можливість виконувати SQL-запити, таким чином необхідно їх виконати вручну. Для цього можете використати цей вихідний SQL-файл (prof3taacl.sql.txt), який необхідно перейменувати з розширенням .sql. Або Ви можете, використовуючи MyPHPAdmin виконати наступний запит:

    DROP TABLE IF EXISTS `#__acl_aro_groups_acos_map`;
    DROP TABLE IF EXISTS `#__acl_aros_aro_groups_map`;
    DROP TABLE IF EXISTS `#__acl_aro_groups`;
    DROP TABLE IF EXISTS `#__acl_acos`;
     
    CREATE TABLE IF NOT EXISTS `#__acl_acos` (
      `id` int(11) NOT NULL auto_increment,
      `axo_id` int(11) NOT NULL,
      `aco_name` varchar(255) NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `axo_id` (`axo_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    CREATE TABLE IF NOT EXISTS `#__acl_aro_groups` (
      `id` int(11) NOT NULL auto_increment,
      `name` varchar(255) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    CREATE TABLE IF NOT EXISTS `#__acl_aro_groups_acos_map` (
      `aro_group_id` int(11) NOT NULL,
      `aco_id` int(11) NOT NULL,
      KEY `aro_group_id` (`aro_group_id`),
      KEY `aco_id` (`aco_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    CREATE TABLE IF NOT EXISTS `#__acl_aros_aro_groups_map` (
      `aro_id` int(11) NOT NULL,
      `aro_group_id` int(11) NOT NULL,
      KEY `aro_id` (`aro_id`),
      KEY `aro_group_id` (`aro_group_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    Перша таблиц (#__acl_acos) містить так званий ACO (див. специфікацію). Таблиця створена таким чином:

    id   |  axo_id   |  aco_name
    ---------------------------
    1    |  37       |  giveGrade
    2    |  37       |  receiveGrade

    де:

    • id – ACO індифікатор;
    • axo_id – component_id компонента;
    • aco_name – символічна назва для дії, яку Користувач може виконати в межах Компонента.

    Наступна таблиця (* __ acl_aro_groups) представляє групи Користувачів. Таблиця створена таким чином:

    id   |  name
    -------------------
    1    |  студенти
    2    |  викладачі

    Третя таблиця (* __ acl_aro_groups_acos_map) містить всі співвідношення між групами ARO і ACO. Таблиця створена таким чином:

    aro_group_id   |   aco_id
    ---------------------------
    1              |   1  
    1              |   1

    У даному випадку, студенти можуть отримати оцінку, а викладачі можуть виставити її.

    Остання таблиця (* __ acl_aros_aro_groups_map) містить всі співвідношення, між ARO (Joomla! зареєстрованими Користувачами) та їх групами ARO. Таблиця створена таким чином:

    aro_id   |   aro_group_id
    ---------------------------
    65       |   1
    66       |   2

    Де 65 – зареєстрований студент, а 66 – зареєстрований викладач.

    Теперь, одна річ, про яку Ви повинні подбати – створити таблиці відповідно до ваших вимог.

    Розробник збирається написати графічний інтерфейс для простого використання.

    Якщо Ви хочете керувати доступом для одного або більше компонентів, Ви можете використовувати наступну функцію:

    $mainframe->triggerEvent( 'onAccessingSafeComponent', array($userId, $acoId));

    А ось приклад, як  можна використовувати цю функцію:

    <?php
     
    $user =& JFactory::getUser();
    $userId = $user->id;
     
    // Import the user plugin group
    JPluginHelper::importPlugin('user');
     
    // Let's fire the onAccessingSafeComponent event
    $canGiveGrades = $mainframe->triggerEvent( 'onAccessingSafeComponent', array($userId, '1'));
     
    if ($canGiveGrades[0] == '1'){
      // CODE TO GIVE GRADES GOES HERE
    }
     
    ?>

    Roberto Aloi: prof3ta.netsons.org

Завантажити:



Restaurant Equipment
 

Додати коментар


Захисний код
Оновити

Додати на БобрдобрДодати на MemoriДодати на news2.ruДодати на Моё МестоДодати на Моё МестоДодати на NewslandДодати на СМИ2Додати на Ваау!Додати на Mr. WongДодати на GoogleДодати на YahooДодати на DiggДодати на Del.icoi.usДодати на SlashdotДодати на BlogmarksДодати на TechnoratiДодати на NewsvineДодати на BlinkbitsДодати на Folkd

1