1. Trang chủ
  2. » Công Nghệ Thông Tin

(yenbao1340@gmail.com) Lập trình Odoo (OpenERP): Thực hành Xây dựng module Phân quyền

9 3,7K 180

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 344,26 KB
File đính kèm Lab3_Demo.rar (8 KB)

Nội dung

Lập trình Odoo (OpenERP): Thực hành Xây dựng module Phân quyền trong OdooOpenERPĐề tài: Xây dựng module quản lý sinh viên Giúp các bạn tạo ra một module đầu tiên Tạo đối tượng (model) Tạo view Phân quyền

Trang 1

Đề tài: Xây dựng module quản lý sinh

viên (TT)

Lab 03 – Phân quyền

Input:

- Tạo module quản lý sinh viên

- Tạo được 3 đối tượng x_khoa, x_nganh, x_sinhvien

- Tạo được các menu và view cho x_khoa, x_nganh, x_sinhvien

Output:

- Tạo group user

- Phân quyền trên các view

Tạo group user

Bước 1: Tạo thư mục sercurity trong module quanly_sinhvien

Bước 2: Tạo 1 file sercurity_data.xml trong thư mục quanly_sinhvien/ sercurity

Bước 3: Tạo 1 category sẽ chứa các group trong module của chúng ta

 Mỗi một module nên tạo 1 category để dễ quản lý

Trang 2

Giải thích:

- Dòng 1, 2, 3, 8, 9: khai báo các thẻ mặc định của Odoo Nội dung của file XML sẽ nằm trong thẻ <data>

- Dòng 4: Thẻ record với model là ir.module.category  tạo 1 category chứa các group

Với id phải duy nhất, không trùng với các module khác

- Dòng 5, 6: Khai báo tên của category và thứ tự xuất hiện của nó

Lưu ý: Vì chúng ta chưa tạo group user nên category này vẫn chưa xuất hiện

Bước 4: Tiếp tục khai báo để tạo 1 group user Sinh viên trong file sercurity_data.xml

Giải thích:

- Tạo 1 thẻ record với model là ir.groups có thuộc tính id là Id của group user (phải duy nhất)

- Bên trong thẻ record chúng ta thẻ field để khai báo tên và category của group user đó

Bước 5: Khai báo file sercurity_data.xml trong thuộc tính update_xml của file

openerp .py để Odoo khởi tạo group user

Trang 3

Bước 6: restart service và upgrade module

Bước 7: kiểm tra kết quả

Group user sẽ được thể hiện trong thẻ Access Rights của mỗi User

Để truy cập vào user ta vào menu Settings  Users  Chọn user cần phân quyền trên tree view

Phân quyền group user cho các model

Yêu cầu bài toán với từng nhóm đối tượng

- Đối tượng sinh viên chỉ được xem và chỉnh sửa các thông tin về sinh viên (không được xóa và tạo mới)

Trang 4

- Đối tượng giáo viên chỉ được xem và chỉnh sửa các thông tin về sinh viên và thông tin ngành (không được phép xóa và tạo mới)

- Đối tượng giáo vụ có thể xem, xóa, chỉnh sửa và tạo mới toàn bộ thông tin về sinh viên, khoa, ngành

Bước 1: Tạo 1 file ir.model.access.csv trong thư mục quanly_sinhvien/sercurity với nội

dung sau

 Phân quyền cho nhóm người dùng sinh viên trên 3 đối tượng x_sinhvien, x_khoa, x_nganh

Giải thích:

- Với nội dung trên, chúng ta đang phân quyền cho nhóm người dùng sinh viên (group_sinhvien) trên 3 đối tượng nghiệp vụ (x_sinhvien, x_khoa, x_nganh)

 Hệ thống có 3 nhóm người dùng (sinhvien, giaovien, giaovu) và 3 đối tượng nghiệp vụ, vậy chúng ta phải có tổng cộng 9 dòng dữ liệu để phân quyền cho tất cả nhóm người dùng (3x3=9)

- Lưu ý ở dòng 4: nhóm sinh viên có thể xem được đối tượng x_nganh

(perm_read=1) vì trong đối tượng sinh viên chúng ta có 1 field many2one đến x_nganh, nếu không cho phép nhóm sinh viên read x_nganh thì sẽ báo lỗi

Bước 2: Khai báo file ir.model.access.csv trong thuộc tính update_xml của file

openerp .py để Odoo khởi tạo phân quyền

Bước 3: restart service và upgrade module

Bước 4: kiểm tra kết quả

Trang 5

Bước 4.1: Tạo 1 user mới và phân quyền là thuộc nhóm sinh viên

Vào settingsusersbấm create để tạo mới

Bước 4.2: Thay đổi password cho user vừa tạo

Trang 6

Bước 4.3: Đăng nhập vào tài khoản vừa tạo chúng ta sẽ thấy user thuộc nhóm người

dùng là sinh viên chỉ hiện ra menu Quản lý sinh viên/Sinh viên và Phân ban/Ngành (vì được phép xem đối tượng x_nganh)

Phân quyền group user trên view

Giả sử chúng ta thêm yêu cầu: Các sinh viên chỉ được nhìn thấy menu Quản lý sinh

viên/Sinh viên và không được nhìn thấy thuộc tính Trang thái trong đối tượng x_sinhvien

Chúng ta sẽ tiến hành phân quyền cho nhóm người dùng sinh viên trên các view và menu

Bước 1: Phân quyền trên menu

Trang 7

Tạo 1 file sercurity_menu.xml trong thư mục sercurity với nội dung như sau

Trang 8

Giải thích:

- Nhiệm vụ của đoạn code trên là cập nhật lại thông tin của menu ngành (có id là

“menu_qlsv_phanban_nganh”)

 Chúng ta phải tạo menu ngành trước rồi mới phân quyền

- Giá trị thuộc tính eval (đi kèm với nam=”groups_id”) có nghĩa là chúng ta chỉ cho phép 2 nhóm người dùng giáo viên và giáo vụ xem được menu Ngành Ngoài ra tất cả các nhóm người dùng khác thì không được phép nhìn thấy

Bước 2: Khai báo file sercurity_menu.xml trong thuộc tính update_xml của file

openerp .py để Odoo khởi tạo phân quyền cho menu

Bước 3: restart service và upgrade module

Bước 4: Kiểm tra kết quả: Load lại trang đăng nhập với tài khoản sinh viên chúng ta sẽ

thấy menu Ngành đã được ẩn đi

Trang 9

Giả sử chúng ta thêm yêu cầu: Các sinh viên không được nhìn thấy field trạng thái

Bước 1: Mở file view/sinhvien.xml và đoạn code để giới hạn quyền truy cập vào 1 file

trên form view sinh viên

 Ta thêm thuộc tính groups mang ý nghĩa: field state (trạng thái) chỉ được thấy bởi

2 nhóm người dùng là giáo viên và giáo vụ (Lưu ý: Lab2_Demo là tên của thư mục gốc, nơi đã tạo ra 2 nhóm người dùng group_giaovien và group_giaovu)

Bước 2: Upgrade module

Bước 3: Kiểm tra kết quả: Load lại trang đăng nhập với tài khoản sinh viên  truy cập

vào 1 recode bất kì của sinh viên chúng ta sẽ thấy field trạng thái đã bị ẩn đi

Ngày đăng: 31/07/2015, 10:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w