Tải bản đầy đủ (.pdf) (18 trang)

(yenbao1340@gmail.com) Lập trình Odoo (OpenERP) Phần 3: Xây dựng cơ chế phân quyền trong Odoo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (951.99 KB, 18 trang )

1
LAB_3
PHÂN QUYỀN
MÃ NGUỒN MỞ
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
Hướng dẫn: Nguyễn Yên Bảo
Điện thoại:
Email:
2
NỘI DUNG
2
1. Cơ chế phân quyền trong Odoo
2. Tạo group user
3. Gán quyền cho các group user
4. Phân quyền truy cập view
3
NỘI DUNG
3
1. Cơ chế phân quyền trong Odoo
2. Tạo group user
3. Gán quyền cho các group user
4. Phân quyền truy cập view
4
1. CƠ CHẾ PHÂN QUYỀN TRONG ODOO
4
Bài toán:
Giả sử với hệ thống quản lý sinh viên
Sẽ có nhiều đối tượng người dùng có nhu cầu sử dụng
hệ thống
- Sinh viên: xem thông tin cá nhân và chỉnh sửa 1 số


thông tin…
- Giáo viên: xem và chỉnh sửa toàn bộ thông tin sinh
viên và điểm số…
- Giáo vụ: cập nhật điểm số, tình trạng học tập của sinh
viên…
 Mỗi nhóm người dùng sẽ có những quyền hạn khác
nhau, vậy làm thế nào để có thể phân chia và giao quyền
cho các nhóm người dùng đó?
5
1. CƠ CHẾ PHÂN QUYỀN TRONG ODOO
5
Quản lý phân quyền trong Odoo dựa vào 3 khái niệm
người dùng (user), nhóm người dùng (group) và vai trò
(access rule)
 User: là người trực tiếp tương tác với hệ thống, được
xác định bởi tên đăng nhập và mật khẩu
 Group: là 1 nhóm các user được cấp phép 1 số quyền
hạn nhất định trong hệ thống. Tất cả những user nào
thuộc cùng 1 group thì sẽ có quyền giống nhau.
 Access rule: là 1 quy tắc để xác định quyền truy cập
vào các đối tượng/chức năng/module cụ thể trong hệ
thống. Access rule sẽ được gán cho các group
6
1. CƠ CHẾ PHÂN QUYỀN TRONG ODOO
6
User 1
User 2
Rule 1
Rule 2
Rule 5

Rule 4
Rule 3
7
NỘI DUNG
7
1. Cơ chế phân quyền trong Odoo
2. Tạo group user
3. Gán quyền cho các group user
4. Phân quyền truy cập view
8
2. TẠO GROUP USER
8
Có 2 cách để tạo 1 group trong Odoo
Cách 1: Truy cập vào menu SettingGroup và tạo 1
dòng dữ liệu mới
9
2. TẠO GROUP USER
9
Cách 2: Chúng ta sẽ tạo các group trong 1 tập tin *.xml
và được khai báo trong update_xml của __openerp__.py
//Tạo 1 category để gom nhóm các group trong cùng module
<record model="ir.module.category" id="module_category_quanlysv">
<field name="name">Quản lý sinh viên</field>
<field name="sequence">10</field>
</record>
//Tạo 1 group mới
<record model="res.groups“ id="group_giaovien" >
<field name="name">Giáo viên</field>
<field name="category_id" ref="module_category_quanlysv"/>
</record>

10
NỘI DUNG
10
1. Cơ chế phân quyền trong Odoo
2. Tạo group user
3. Gán quyền cho các group user
4. Phân quyền truy cập view
11
3. GÁN QUYỀN CHO CÁC GROUP USER
11
Với một đối tượng trong hệ thống, chúng ta có 4 hoạt
động để tương tác với chúng
- Read: xem được các giá trị thuộc tính trong đối tượng
- Write: thay đổi giá trị các thuộc tính của đối tượng
- Create: Tạo mới một đối tượng
- Unlink: xóa 1 đối tượng
Để gán quyền cho các group user tương tác được với
các đối tượng, chúng ta tạo 1 file ir.model.access.csv và
khai báo trong file __openerp__.py
12
3. GÁN QUYỀN CHO CÁC GROUP USER
12
Cấu trúc của file ir.model.access.csv
Tên
cột
Ý
nghĩa
id
Id c
ủa access rule (VD: giaovien_objnganh)

name
Tên
của access rule
model_id:id
Tên
của đối tượng mà chúng ta muốn gán quyền tương tác. Phải có tiếp đầ
u
ng
ữ model_ (VD: model_x_nganh)
group_id:id
Tên
của group user mà chúng ta muốn gán quyền. Phải có tiếp đầu ngữ
group_
(VD: group_group_giaovien)
perm_read
Nh
ận 2 giá trị 0 hoặc 1 (tương ứng với False hoặcTrue)
perm_write
Nh
ận 2 giá trị 0 hoặc 1 (tương ứng với False hoặc True)
perm_create
Nh
ận 2 giá trị 0 hoặc 1 (tương ứng với False hoặc True)
perm_unlink
Nh
ận 2 giá trị 0 hoặc 1 (tương ứng với False hoặcTrue)
13
NỘI DUNG
13
1. Cơ chế phân quyền trong Odoo

2. Tạo group user
3. Gán quyền cho các group user
4. Phân quyền truy cập view
14
4. PHÂN QUYỀN TRUY CẬP VIEW
14
 Sau khi đá gán quyền cho các group user, nếu group
có quyền read thì các user nào thuộc group mặc định
sẽ có khả năng nhìn thấy được các view của đối
tượng đó.
 Tuy nhiên, đôi khi chúng ta không muốn user có thể
nhìn thấy được hết tất cả các view. Chúng ta cần giới
hạn khả năng truy cập của user
15
4. PHÂN QUYỀN TRUY CẬP VIEW
15
 Với menu:
<record model='ir.ui.menu' id='menu_giaovien'>
<field name="groups_id"
eval="[(6,0,[ref('group_giaovien')])]" />
</record>
 Chỉ có những user thuộc group_giaovien mới có thể nhìn thấy được
menu có id “menu_giaovien”
 Với các thuộc tính trên view ta sử dụng thuộc tính
group
<field name=“state" groups="group_giaovien" />
 Chỉ có những user thuộc group_giaovien mới xem được thuộc
tính state (trạng thái học tập của sinh viên)
16
16

4. Q/A
17
17
1. Xây dựng module “quản lý sinh viên”:
2. Mô tả:
 Có bao nhiêu đối tượng (sinh viên, khoa, ngành…)
 Thuộc tính của từng đối tượng
5. BÀI TẬP
18
The End.

×