odoo初学者代码总结–init/security
常记溪亭日暮,沉醉不知归路。 兴尽晚回舟,误入藕花深处。 争渡,争渡,惊起一滩odoo
提前声明:本人是odoo萌新,python也只有基础,欢迎大神指点,有所不足之处还请见谅
此为本萌新学习归纳所用,毕竟有输出才有动力,废话不多说,开始:
在manifest.py 的上方,就是init.py文件了,他位于odoo/addons/hr_contract的根目录下,用来导入需要依赖和应用的文件夹
点开后,会看到如下代码:
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
这里代表引用了根目录下的models文件夹.
然后我们再看security/ir.model.access.csv文件:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_hr_resource_manager,hr.employee.resource.manager,resource.model_resource_resource,hr.group_hr_manager,1,1,1,1
access_hr_resource_calendar_user,hr.employee.resource.calendar.user,resource.model_resource_calendar,hr.group_hr_user,1,1,1,1
access_hr_resource_calendar_attendance_user,hr.employee.resource.calendar.attendance.user,resource.model_resource_calendar_attendance,hr.group_hr_user,1,1,1,1
access_hr_contract_manager,hr.contract.manager,model_hr_contract,hr_contract.group_hr_contract_manager,1,1,1,1
我们知道,security是安全文件夹,管理odoo模型的增删改查权限.
第一行是固定写法,以逗号分隔,相当于标题栏,他们分别代表:
- id:权限的ID
- name:权限的name
- model_id:id;模型的ID
- roup_id:id;群组的ID
- perm_read:查看权限
- perm_write:修改权限
- perm_create:增加数据权限
- perm_unlink:删除权限
至于他下面的代码,可以理解为所对应标题栏位下的数据.举个不太恰当的例子:第一行是他的key值,而下方则是他所对应的value.这样说当然是不正确的,只是一个比方,一个比喻,方便大家理解(令人着急的表达能力QAQ)
我们拿第二行的数据举例:
access_hr_resource_manager,hr.employee.resource.manager,resource.model_resource_resource,hr.group_hr_manager,1,1,1,1
其中第一个字段就代表权限的ID,第二个字段代表权限的name,而第三个则是模型的ID,对照上面提到过的标题栏,以此类推,我们便知道此行中的数据,究竟代表了什么.
怕本萌新表达不清,再此还是给把security的数据,转换为表格形式给大家显示吧(手机端需要左右拖拽表格哦,不然显示不全):
id | name | model_id:id | roup_id:id | perm_read | perm_write | perm_create | perm_unlink |
---|---|---|---|---|---|---|---|
access_hr_resource_manager | hr.employee.resource.manager | resource.model_resource_resource | hr.group_hr_manager | 1 | 1 | 1 | 1 |
access_hr_resource_calendar_user | hr.employee.resource.calendar.user | resource.model_resource_calendar | hr.group_hr_user | 1 | 1 | 1 | 1 |
access_hr_resource_calendar_attendance_user | hr.employee.resource.calendar.attendance.user | resource.model_resource_calendar_attendance | hr.group_hr_user | 1 | 1 | 1 | 1 |
access_hr_contract_manager | hr.contract.manager | model_hr_contract | hr_contract.group_hr_contract_manager | 1 | 1 | 1 | 1 |
结合此段代码与后续代码,我们大概可以摸索出写法的规范:
- ID:access_hr_contract_manager(access_+模型名+角色名)
- name:hr.contract.manager(模型+角色名)
- model_id:id;model_hr_contract(model_+模型名)
- roup_id:id;hr_contract.group_hr_contract_manager(模型名+group+用户名)这里表示用了hr_contract模块下的group_hr_contract_manager用户群组
- 1,1,1,1(分别代表:查,改,增,删的权限,0表示false,没有此项权限,1代表true,表示有此项权限,此为:1,1,1,1,表示此用户组下的人员具有查,改,增,删的权限)
如果自己开发,在写完权限后,记得要在manifest.py里的data中进行引用,由于是配置权限,所以他的优先级高于其他文件.回顾上篇也不难发现,他身居data的second(第二名)
广告时间:security的解释和写法这是一位odoo大神(零妖大盗)写的,初学者可以看看,对自己搭建一个简单的模块很有帮助,此文对security的解释及写法有正规的描述,如果有时间,可以去观看参考.
好的,今天的阅读代码到此结束,明天继续阅读,相对来说,此章节并不难,萌新开发的话,也可以依葫芦画瓢.至于此文提到的模块,模型,对于萌新来说知道就好,并不要求掌握,在后续的odoo阅读与理解中,会展开说明(希望严重健忘的我能在后面想起前期挖的坑).
那,感谢大家阅读OuO,我们下篇见