Vue-role — это основанная на Vue библиотека для визуального управления правами доступа, которая упрощает определение прав разработчиками и их назначение нетехническими специалистами.
Данный проект больше не обновляется. Он был опробован в официальном проекте, но оказался неудобным для использования нетехническими сотрудниками, которые предпочитают традиционные древовидные системы управления правами.
Чтобы активировать режим управления правами, нажмите Ctrl+/ (или Cmd+/ на Mac). Все позиции, где можно определить права, будут отмечены точками (красными, зелёными или жёлтыми). Нажав на точку, вы можете назначить права. В правом верхнем углу находится красная точка, с помощью которой можно определить доступ к текущей странице (маршруту). Также в правом верхнем углу можно имитировать просмотр страницы от имени определённой роли.
Красный цвет означает, что права уже назначены; зелёный — права ещё не назначены, и любой может просматривать страницу; жёлтый — права ещё не назначены, но только суперпользователь может просматривать страницу.
https://tengzhinei.gitee.io/vue-role/example/index.html
DEMO использует фреймворк VUE-RAP. VUE-RAP позволяет быстро создавать одностраничные приложения на основе Vue без использования большого количества инструментов (таких как npm, webpack, Browserify и т. д.).
Адрес VUE-RAP: https://gitee.com/tengzhinei/Vue-rap
// Права определяются только после того, как бэкенд вернёт отредактированные права.
var roles = {
'user.add': [1, 2],
'user.edit': [2, 3]
};
// Конфигурация
VueRole.config({
role: 1, // Права текущего пользователя
super_role: 1, // Права суперпользователя
roles: roles, // Данные о правах
role_names: {
'1': 'Суперпользователь',
'2': 'Технический специалист',
'3': 'Редактор'
}, // Названия прав
lang: { // Языковой пакет может быть пустым
title: 'Настройка прав',
sys_role: 'Системная настройка, не редактируется',
f: 'Не выбрано, кроме суперпользователя никто не имеет доступа',
f_not: 'Не выбрано, любой может получить доступ',
cancel: 'Отмена',
submit: 'Отправить',
imitate: 'Имитация',
close: 'Закрыть'
}
});
// Сохранение при редактировании прав
VueRole.onRoleEdit(function (action, roles, close) {
// Во время тестирования права сохраняются непосредственно в локальном кэше localStorage.
localStorage.setItem('vue_role@' + action, JSON.stringify(roles));
close();
});
Директива | Описание |
---|---|
v-role.1.2 | Права 1 или 2 позволяют просматривать, системная настройка не может быть изменена |
v-role:a | Может просматривать ресурсы a |
v-role:a.b | Может просматривать ресурсы a.b |
v-role:a.b.$f | Если права не установлены, только суперпользователь может просмотреть. Без $f любой может просмотреть |
v-role:a.b.$h | В режиме редактирования точки, обозначающие редактируемые права, не отображаются |
Метод | Описание |
---|---|
VueRole.config(config) | Устанавливает параметры конфигурации |
VueRole.onRoleEdit(function(action, roles, close)) | Слушает событие редактирования. Обратите внимание на использование close() для закрытия окна редактирования |
VueRole.onPageNoRole(function()) | Слушает, если текущая страница не имеет прав доступа. По умолчанию отображается окно предупреждения (alert), и происходит возврат назад |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )