(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
(yenbao1340@gmail.com) Lập trình Odoo (OpenERP): Thực hành Xây dựng module Phân quyền

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

Thông tin tài liệu

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

Đề 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ý 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 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) - Đố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ả 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 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 Tạo 1 file sercurity_menu.xml trong thư mục sercurity với nội dung như sau 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 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 . (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

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

Từ khóa liên quan

Mục lục

  • Input:

  • Output:

  • Tạo group user

  • Giải thích:

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan