Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
6797 Lượt xem

i want to update my field depend on current user's group , but when i execute the method it update all the record even it has the other group .

here's the code :

def wtc_approval(self, cr, uid, ids,vals, context=None):
        user = self.pool.get("res.users").browse(cr, uid, uid)['groups_id']
        data = self.pool.get("wtc.approval.line").browse(cr,uid,user)
        line = self.browse(cr, uid, ids, context=context)
   
        for user in line.app_line:
            line.app_line.write({
                                   'sts':'2',
                                   'pelaksana':uid,
                                   'tanggal':datetime.today()
                                   })
           return True

i don't know how to get current user group , the code always catch all group ..

anybody know how to resolve it ?

Thanks in advance

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

You can try to find whether the user has Group access for a particular group.

Flag = self.pool.get('res.users').has_group(cr,create_uid.id , 'base.group_sale_manager')

If access is available, then it is TRUE.

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Openerp has a build in mechanism to restrict access per model / record:

  • Access Control List
  • Record Rule

Generally you can configure access control per model (ex. write access for certain group), openerp will do the checking for you.

The other is condition in workflow transition: you can set group in workflow transition, so that it can be triggered only by that group.

So in many cases you don't have to write some code to check user's group.

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
Expected singleton Đã xử lý
9
thg 3 20
42095
2
thg 10 18
4002
1
thg 10 17
4247
1
thg 3 15
4691
2
thg 4 23
4298