Mysql
 sql >> база данни >  >> RDS >> Mysql

Управление на потребителски акаунти, роли, разрешения, удостоверяване на PHP и MySQL

Ако създавате уеб приложение, което включва създаване, четене, актуализиране и изтриване на информация от всякакъв вид, ще бъде много често привилегиите за извършване на тези различни операции с данни да се споделят между вашите потребители според различните им роли и разрешения за вашето приложение.

Вземете например приложение за управление на училище. Потребителите на такова приложение обикновено попадат в категориите:студенти, учители, ръководител на отдели (HOD) и т.н. Вашето заявление НЕ трябва да позволява на студент да има привилегията да добавя или актуализира своите резултати за семестриалните изпити. Това би била функцията на Учител. И когато към учебната програма трябва да се добави нов курс или предмет, работа само на ръководителя на отдел е да добави този курс в системата.

В такава система можем да посочим студент, учител, HOD (ръководител на отдел) като различните роли в нашето приложение. Що се отнася до действия като добавяне и актуализиране на резултатите от учениците, добавяне на нови курсове, ще ги наричаме разрешенията.

От обяснението дотук вече може да се заключи, че потребителят ще има една роля, а ролята ще има множество разрешения. Например Джон (потребител) ще има една роля (Студент) и множество разрешения (регистриране на курс, преглед на оценки, отпечатване на препис и т.н.).

Това означава, че в нашата MySQL база данни ще ни трябват 3 основни таблици на база данни:потребители, роли и разрешения. От нас се изисква да имаме връзка много към един между потребители и таблици на база данни с роли (Една роля принадлежи на много потребители) и връзка много към много между роли и таблици с разрешения (Много разрешения могат да бъдат присвоени на много роли) .

Начинът, по който се отнасяте  към тези роли, зависи от вас. В нашия пример използвахме ученик, учител, HOD за представяне на ролите, защото примерът беше за приложение за управление на училище. Ако сте работили върху приложение за управление на хотели, ролите може да са нещо като мениджър, чистач, рецепционист и други подобни.

В този урок ние изграждаме система за управление на потребителски акаунти за приложение за блог. Така че ще наричаме тези роли автор, редактор и администратор. Разбира се, можете да ги промените както искате, но тези три са почти стандарт за системите за управление на съдържанието.

Ще бъде въведена пълна система за регистрация и влизане на администратор/потребител. Всички потребители ще влизат чрез една и съща форма за вход и след като влязат, само администраторските потребители (автори, редактори, администратори) ще имат достъп до таблото за управление на администратора, докато нормалните потребители ще бъдат пренасочени към публичната начална страница.

Ще създадем таблица с база данни с публикации в нашата база данни, за да имаме за какво да тестваме разрешенията си. Например, потребител с ролята на Редактор ще може да редактира, актуализира, публикува, прекратява публикуването и изтрива всякакви и всички публикации, докато Автор ще има разрешение само да създава, чете, актуализира и изтрива само онези публикации, които са били създадени от самите тях. Администраторът ще има разрешение да създава, актуализира, изтрива други администраторски потребители и роли, както и да присвоява/отменя разрешения на роли и роли на потребителите.

ЗАБЕЛЕЖКА:Вече направих урок за Създаване на пълно приложение за блог от нулата. Така че всъщност няма да прилагаме създаване, изтриване и актуализиране на публикации тук. Просто ще демонстрираме как работят тези разрешения около публикациите. Ако искате да научите как да създавате блог с публикации, вижте другия ми урок за това как да създадете блог в PHP.

Структура на директория на проекта.

Създайте папка на проекта, наречена user-accounts и след това създайте три други папки вътре в нея:admin, include, assets, като всяка има следните подпапки:

admin:Тази папка съдържа изходния код за администраторската част на приложението. В тази папка създайте три други папки, а именно публикации, роли, потребители.

активи:Това ще съдържа публични файлове, които ще бъдат достъпни от браузъра, като изображения, css, js. Така че в активите създайте изображения, css и js папки.

включва:Това ще съдържа пачове от изходния код за нашето приложение, които можем да включим на различни места в нашето приложение. В тази папка създайте две други папки:оформления и логика.

Към този момент структурата на нашия проект е готова. Сега можем да започнем да кодираме системата. Ще направим това в следващата част на този урок.

Благодаря за вниманието и се надявам да се видим в следващата част.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Премахване на дублиращи се редове в MySQL

  2. Алтернатива на Intersect в MySQL

  3. Как да записвам и извличам изображение на моя сървър в java webapp

  4. CURDATE() Примери – MySQL

  5. Промяна на набора от символи по подразбиране на MySQL на UTF-8 в my.cnf?