Просмотр поста

.
Screamer

Koenig,

`cms_modules`
  `id` int(11) unsigned NOT NULL auto_increment,
  `module` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
-------------------
`cms_access_list`
  `gid` int(11) unsigned NOT NULL, -- Идентификатор группы
  `mid` int(11) unsigned NOT NULL, -- Идентификатор модуля
  PRIMARY KEY (`gid`, `mid`)
-------------------
`users_groups` 
  `id` int(11) unsigned NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
-------------------
`users`
  `id` int(11) unsigned NOT NULL auto_increment,
  -- кучка полей --
  `group` int(11) unsigned NOT NULL,
  PRIMARY KEY (`id`)
-------------------

У мну есть функция для вывода ссылок
string Functions::anchor(string $uri, string $title, string $attributes)

Есть мысля добавить флаг $protected и в зависимости от его значения проверять привилегии, если доступа нет, то возвращать пустую строку.
Както так я себе это представляю
function anchor($uri = '', $title, $attributes = '', $protected = FALSE) {
  $link = '<a href="' . HOMEURL . '/' . $uri . '">' . htmlspecialchars($title) . '</a>';
  if ($protected === TRUE) {
    $module = System::$db->query("SELECT `id` FROM `cms_modules` WHERE `module` = '" . System::$db->real_escape_string($uri) . "'");
    if ($module) {
       $module = $module->fetch_assoc();
       $access = System::$db->query(
          "SELECT COUNT(*) FROM `cms_access_list` " . 
          "WHERE `gid` = '" . System::$user->group . 
          "', `mid` = '" . $module['id'] . "'"
       );
       if (!System::$db->result($access)) {
           return '';
       }
    }
  }
  return $link;
}