1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/sjclub-auth

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ThinkPHP5.1 权限认证类

Установка

composer require leruge/auth

Глобальная конфигурация

// 会自动在 config 配置目录创建 auth.php 配置文件,如果没有,请手动创建
// 配置参数如下:

return [
    'auth_on'           =>  true,                // 认证开关
    'auth_type'         =>  1,                   // 认证方式,1为实时认证;2为登录认证。
    'auth_group'        =>  'auth_group',        // 用户组数据表名
    'auth_group_access' =>  'auth_group_access', // 用户-用户组关系表
    'auth_rule'         =>  'auth_rule',         // 权限规则表
    'super_ids'         => [],                   // 拥有所有权限的用户,如[1, 2, 3],那么这三个用户则拥有所有权限
];

Импорт базы данных

wdl_ — это пользовательский префикс таблиц.

-- ----------------------------
-- Table structure for wdl_auth_group
-- ----------------------------
DROP TABLE IF EXISTS `wdl_auth_group`;
CREATE TABLE `wdl_auth_group` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '分组名称',
  `rules` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '拥有的权限,使用逗号分隔',
  `create_time` int(11) NOT NULL DEFAULT '0',
  `update_time` int(11) NOT NULL DEFAULT '0',
  `delete_time` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Table structure for wdl_auth_group_access
-- ----------------------------
DROP TABLE IF EXISTS `wdl_auth_group_access`;
CREATE TABLE `wdl_auth_group_access` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `uid` int(11) DEFAULT NULL COMMENT '用户ID',
  `group_id` int(11) DEFAULT NULL COMMENT '分组ID',
  `create_time` int(11) NOT NULL DEFAULT '0',
  `update_time` int(11) NOT NULL DEFAULT '0',
  `delete_time` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Table structure for wdl_auth_rule
-- ----------------------------
DROP TABLE IF EXISTS `wdl_auth_rule`;
CREATE TABLE `wdl_auth_rule` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `pid` int(11) DEFAULT '0' COMMENT '上级ID',
  `name` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '权限规则',
  `title` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '规则中文名',
  `icon` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '菜单图标',
  `sort` int(11) DEFAULT '9' COMMENT '排序',
  `is_show` int(11) DEFAULT '1' COMMENT '1显示;0隐藏',
  `create_time` int(11) NOT NULL DEFAULT '0',
  `update_time` int(11) NOT NULL DEFAULT '0',
  `delete_time` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Принцип работы Принцип работы класса Auth широко освещён в интернете, поэтому здесь мы не будем вдаваться в подробности. Для внешнего использования предоставляются методы check(), authList() и userRuleIdList(), которые используются для проверки прав доступа.

Использование Есть два способа использования:

  1. Использование класса авторизации Auth:
    1. Импортировать библиотеку: use leruge\auth\Auth;
    2. Создать экземпляр класса Auth: $auth = new Auth();
    3. Проверить права доступа:
    if ($auth->check(модуль/контроллер/метод, идентификатор пользователя)){
    //есть права на операцию
    } else {
    //нет прав на операцию
    }
  2. Использовать класс фасада авторизации AuthFacade:
    1. Импортировать библиотеку: use leruge\auth\AuthFacade;
    2. Проверить права доступа:
    if (AuthFacade::check(модуль/контроллер/метод, идентификатор пользователя)){
        //есть права на операцию
      } else {
        //нет прав на операцию
      }

Метод check() Параметры метода check():

check($name, $uid, $relation)
$name — проверяемое право доступа, строка представляет собой одну строку прав доступа, несколько строк прав доступа используют массив
$uid — идентификатор проверяемого пользователя
$relation — или выполняется одно условие, и оно проходит; все условия должны быть выполнены, чтобы пройти

Метод authList()

authList($uid)
Возвращает список прав доступа, не различая уровни выше и ниже

Метод userRuleIdList()

userRuleIdList($uid)
Возвращает массив идентификаторов прав доступа

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/sjclub-auth.git
git@api.gitlife.ru:oschina-mirror/sjclub-auth.git
oschina-mirror
sjclub-auth
sjclub-auth
master