Перейти до основного контенту

Policy Storage

У Casbin зберігання політики реалізовано як адаптер.

Завантаження політики з файлу .CSV

Це найпоширеніший спосіб використання Casbin. Це легко зрозуміти для початківців і зручно для обміну, коли ви просите допомоги у команди Casbin.

Вміст файлу .CSV examples/rbac_policy.csv наступний:

p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
примітка

Якщо ваш файл містить коми, ви повинні обгорнути їх у подвійні лапки. Наприклад:

p, alice, "data1,data2", read    --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)

Якщо ваш файл містить коми та подвійні лапки, ви повинні обгорнути поле у подвійні лапки та подвоїти всі вбудовані подвійні лапки.

p, alice, data, "r.act in (""get"", ""post"")"        --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")

Пов'язане питання: casbin#886

API адаптера

МетодТипОпис
LoadPolicy()базовийЗавантажити всі правила політики зі сховища
SavePolicy()базовийЗберегти всі правила політики у сховище
AddPolicy()опціональнийДодати правило політики до сховища
RemovePolicy()опціональнийВидалити правило політики зі сховища
RemoveFilteredPolicy()опціональнийВидалити правила політики, які відповідають фільтру, зі сховища

Формат зберігання бази даних

Ваш файл політики

p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin

Відповідна структура бази даних (наприклад, MySQL)

idptypev0v1v2v3v4v5
1pdata2_admindata2read
2pdata2_admindata2write
3galiceadmin

Значення кожної колонки

  • id: Первинний ключ у базі даних. Це не існує як частина casbin policy. Спосіб його генерації залежить від конкретного адаптера.

  • ptype: Відповідає p, g, g2 тощо.

  • v0-v5: Назви колонок не мають конкретного значення і відповідають значенням у policy csv зліва направо. Кількість колонок залежить від того, скільки ви визначите самі. Теоретично, може бути нескінченна кількість колонок, але зазвичай в адаптері реалізовано лише 6 колонок. Якщо цього недостатньо для вас, будь ласка, надішліть проблему до відповідного репозиторію адаптера.

Деталі адаптера

Для отримання додаткової інформації про використання API адаптера та дизайн структури таблиці бази даних, будь ласка, відвідайте: /docs/adapters