Nếu bạn đang xây dựng bất kỳ ứng dụng web nào liên quan đến việc tạo, đọc, cập nhật và xóa thông tin dưới bất kỳ hình thức nào, sẽ rất phổ biến rằng các đặc quyền để thực hiện các hoạt động khác nhau này trên dữ liệu sẽ phải được chia sẻ giữa những người dùng của bạn theo các vai trò khác nhau của họ và các quyền đối với ứng dụng của bạn.
Lấy một ứng dụng quản lý trường học làm ví dụ. Người dùng ứng dụng như vậy thường thuộc các loại:Sinh viên, Giáo viên, Trưởng bộ môn (HOD), v.v. Ứng dụng của bạn KHÔNG được cho phép học sinh có đặc quyền thêm hoặc cập nhật kết quả của họ cho các kỳ thi học kỳ. Đó sẽ là chức năng của một Giáo viên. Và khi một môn học hoặc môn học mới được thêm vào chương trình giảng dạy thì việc thêm môn học đó vào hệ thống là việc của chỉ Trưởng bộ môn.
Trên hệ thống như vậy, chúng ta có thể gọi Sinh viên, Giáo viên, HOD (Trưởng phòng) là các vai trò khác nhau trong ứng dụng của chúng tôi. Đối với các hành động như thêm và cập nhật kết quả của sinh viên, thêm khóa học mới, chúng tôi sẽ gọi đây là quyền.
Từ phần giải thích cho đến nay, người ta có thể suy ra rằng Người dùng sẽ có một Vai trò và một vai trò sẽ có nhiều Quyền. Ví dụ:John (một người dùng) sẽ có một vai trò (Sinh viên) và nhiều Quyền (đăng ký khóa học, xem điểm, in bảng điểm, v.v.).
Điều này có nghĩa là trong cơ sở dữ liệu MySQL của chúng ta, chúng ta sẽ yêu cầu 3 bảng cơ sở dữ liệu chính:người dùng, vai trò và quyền. Chúng tôi bắt buộc phải có mối quan hệ Nhiều-Một giữa người dùng và các bảng cơ sở dữ liệu vai trò (Một vai trò thuộc về Nhiều người dùng) và mối quan hệ Nhiều-Nhiều giữa các vai trò và bảng quyền (Nhiều quyền có thể được gán cho Nhiều vai trò) .
Cách bạn tham khảo các vai trò này là tùy thuộc vào bạn. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng Sinh viên, Giáo viên, HOD để đại diện cho các vai trò vì ví dụ này là về một ứng dụng quản lý trường học. Nếu bạn đang làm việc trên một ứng dụng quản lý khách sạn, các vai trò có thể là Quản lý, Dọn dẹp, Lễ tân và những vai trò tương tự.
Trong hướng dẫn này, chúng tôi đang xây dựng hệ thống quản lý tài khoản người dùng cho một ứng dụng blog. Vì vậy, chúng tôi sẽ gọi những vai trò này là Tác giả, Biên tập viên và Quản trị viên. Tất nhiên, bạn có thể thay đổi chúng theo ý muốn nhưng ba điều này gần như là một tiêu chuẩn cho hệ thống quản lý nội dung.
Hệ thống đăng ký và đăng nhập quản trị viên / người dùng đầy đủ sẽ được triển khai. Tất cả người dùng sẽ đăng nhập thông qua cùng một biểu mẫu đăng nhập và khi đã đăng nhập, chỉ người dùng quản trị (Tác giả, Biên tập viên, Quản trị viên) mới có quyền truy cập vào trang tổng quan quản trị trong khi người dùng bình thường sẽ được chuyển hướng đến trang chủ công khai.
Chúng tôi sẽ tạo một bảng cơ sở dữ liệu bài đăng trong cơ sở dữ liệu của mình để có thứ gì đó để kiểm tra các quyền của chúng tôi. Ví dụ:người dùng với vai trò Biên tập viên sẽ có thể chỉnh sửa, cập nhật, xuất bản, hủy xuất bản và xóa bất kỳ và tất cả các bài đăng, trong khi Tác giả sẽ chỉ có quyền tạo, đọc, cập nhật và chỉ xóa những bài đăng đã được do chính họ tạo ra. Quản trị viên sẽ có quyền tạo, cập nhật, xóa người dùng và vai trò quản trị khác cũng như chỉ định / bỏ chỉ định quyền đối với các vai trò và vai trò cho người dùng.
LƯU Ý:Tôi đã thực hiện một hướng dẫn về Tạo một ứng dụng blog hoàn chỉnh từ đầu. Vì vậy, chúng tôi sẽ không thực sự triển khai tạo, xóa và cập nhật bài đăng ở đây. Chúng tôi sẽ chỉ chứng minh cách các quyền này hoạt động xung quanh các bài đăng. Nếu bạn muốn tìm hiểu cách tạo blog với các bài đăng, hãy xem hướng dẫn khác của tôi về cách tạo blog bằng PHP.
Cấu trúc thư mục dự án.
Tạo một thư mục dự án được gọi là tài khoản người dùng và sau đó tạo ba thư mục khác bên trong nó:quản trị viên, bao gồm, tài sản, mỗi thư mục có các thư mục con sau:
admin:Thư mục này chứa mã nguồn cho phần quản trị của ứng dụng. Trong thư mục này, hãy tạo ba thư mục khác, đó là bài đăng, vai trò, người dùng.
nội dung:Điều này sẽ chứa các tệp công khai sẽ được trình duyệt truy cập như hình ảnh, css, js. Vì vậy, bên trong nội dung, hãy tạo hình ảnh, thư mục css và js.
bao gồm:Điều này sẽ giữ các bản vá mã nguồn cho ứng dụng của chúng tôi mà chúng tôi có thể đưa vào các vị trí khác nhau trong ứng dụng của mình. Bên trong thư mục này, hãy tạo hai thư mục khác:bố cục và logic.
Tại thời điểm này, cấu trúc dự án của chúng tôi đã hoàn tất. Bây giờ chúng ta có thể bắt đầu mã hóa hệ thống. Chúng tôi sẽ làm điều đó trong phần tiếp theo của hướng dẫn này.
Cảm ơn sự chú ý của bạn và tôi hy vọng sẽ gặp bạn trong phần tiếp theo.