12/08/2018, 15:08

Tìm hiểu mã nguồn mở PHP CMS Drupal hướng dẫn tìm hiểu Permission, hệ thống phân quyền cực đỉnh của Drupal - bài 11

Tiếp theo loạt bài viết về Drupal : Loạt bài đều nói về Drupal 8 nhé các bạn. Bài 1 Bài 2 Bài 3 Bài 4 Bài 5 Bài 6 Bài 7 Bài 8 Bài 9 Bài 10 Tổng quan Phân quyền cũng là 1 sức mạnh khác của drupal 8 khi nó rất linh hoạt cho phép người dùng cấp phép cho các loại thành viên ...

Tiếp theo loạt bài viết về Drupal:

Loạt bài đều nói về Drupal 8 nhé các bạn.

  • Bài 1
  • Bài 2
  • Bài 3
  • Bài 4
  • Bài 5
  • Bài 6
  • Bài 7
  • Bài 8
  • Bài 9
  • Bài 10

Tổng quan

Phân quyền cũng là 1 sức mạnh khác của drupal 8 khi nó rất linh hoạt cho phép người dùng cấp phép cho các loại thành viên chỉ bằng cách click chuột. Hệ thống cũng cho phép chúng ta dễ dàng tạo ra nhiều Role khác nhau góp phần giúp dễ dàng quản trị, quản lý thành viên. Bài này hướng dẫn chúng ta cách sử dụng Permission, hay còn gọi là phân quyền trong hệ thống của Drupal 8.

Roles - Vai trò

Roles trong Drupal 8 là những vai trò, những nhóm quyền, loại thành viên. Roles là thành phần không thể thiếu trong việc phân cấp, phần quyền điều hành, quản lý và sử dụng trong bất kỳ dự án nào trong drupal. Mặc định drupal 8 tạo sẵn cho chúng ta 3 loại quyền gồm:

  • anonymous user: đây là nhóm khách lướt website mà không đăng nhập vào hệ thống website drupal, hay còn gọi là khách, là guest. Thông thường thành phần này bị hạn chế sử dụng website rất nhiều, chủ yếu là họ được xem tin tức và rất ít khi được can thiệp.
  • authenticated user: đây là nhóm thành viên cơ bản của website, người đăng ký thành viên mặc định sẽ là thuộc nhóm quyền này.
  • administrator: Mặc định Drupal tạo ra quyền này và đặt tên là administrator, ta có thể đổi tên của quyền này. Quyền này không quan trọng lắm, chúng ta có thể sử dụng hoặc không, hoặc có thể tạo thêm nhiều roles khác nếu cần.

Lưu ý, Drupal còn có 1 quyền khác ẩn nữa, và sẽ không thể thay đổi được, mình gọi nó là quyền user/1 , đây là user đầu tiên, webmaster của drupal, tài khoản mà chúng ta thiết lập lúc cài đặt drupal. Đây là tài khoản có quyền cao nhất của drupal và không thể thay thế. Để add thêm roles, ta vào admin/people/permissions/roles, nhập tên gọi của quyền đó và bấm add role như hình bên dưới

Sau khi tạo 1 role mới, theo hình trên là "Moderator", chúng ta có thể sắp xếp vị trí bằng cách kéo lên hay xuống. Khi đã có roles mới, chúng ta sẽ cấp quyền cho role này, quyền permission phụ thuộc vào chúng ta muốn cho họ làm được gì trên website của chúng ta.

Permission - quyền cụ thể trong drupal

Để thêm hay thay thế quyền, để phân quyền cụ thể, ta vào admin/people/permissions để cấp quyền cho 1 roles nào đó, ta đơn giản chỉ cần đọc hiểu quyền này là quyền gì? và nhóm nào được phép sử dụng thì check vào như hình bên dưới.

Khi chúng ta cài đặt nhiều modules khác nhau, chắc chắn bản phân quyền sẽ dài ra, và nhóm nào sẽ dùng được các quyền của modules mới.

Đăng ký thành viên và tạo thành viên

Để tạo thành viên, đơn giản trước hết là phải có quyền tạo thành viên đã. cheeky khi đã có quyền tạo thành viên, ta đơn giản vào admin/people/create rồi nhập 1 số thông tin cơ bản yêu cầu của 1 thành viên và bấm create new account là xong. Các field để nhập có thể tăng thêm theo ý chúng ta như background của thành viên hay địa chỉ của thành viên ... mặc định drupal thì chỉ có những field cơ bản như email, username, password, status và roles thôi. để thêm field thì vui lòng xem bài 10 configuration và bài 6 content type

Trường hợp chúng ta làm 1 website mà cho phép công đồng đăng ký thành viên thì yêu cầu tối thiểu bạn phải account config hay admin/config/people/accounts và cấp phép quyền cho khách đăng ký thành viên.

Tổng kết

Phân quyền là vấn đề quan trọng trong việc quản lý và vận hành 1 website. Khi thiết kế 1 website bạn phải chắc chắn kiểm tra kỹ mục phân quyền này trước khi public website ra. Kiểm tra xem anonymous user, authenticated user, và các roles khác làm được gì trong website của mình. Phân quyền tốt thì chắc chắn website của bạn sẽ quản lý dễ dàng.

Tham khảo

  • Drupal 8 docs
  • squallphu
0