如上图,请问项目属性中的参与者角色指定与自定义的函数是哪个?aaApi_CreateProject()后,各参与者角色都是自定义待选的状态。
我也没发现针对项目角色进行设置的API,有一个变相的解决办法:当改变角色时,您跟踪一下数据库,了解到影响到哪个表的哪个字段,然后通过程序修改底层数据库实现目的。
lijun.ma said:跟踪一下数据库,了解到影响到哪个表的哪个字段
是否应在改变角色的HOOK中使用与sql有关的函数进行查询?请问跟踪数据库的函数是?
Lihui.He said:请问跟踪数据库的函数是?
跟踪数据库不是指具体的函数而是一种动作。这个要事先了解PW后台的各个表的基本功能,然后执行一个操作,看看相关的表中有什么变化。从本质上绝大多数的aaApi函数都是在对PW的各类表在操作。你直接去修改数据库表也能达到API函数的目的。不过,这个是万不得已的办法,能调用API解决的还是最好通过调用API解决。
好的,符工。我看到其他帖子也说了,数据库表一般情况下不允许操作。
如果需要知道某个动作影响了数据库中哪个表的哪个字段,这种查询方法应该比较费事·。相关操作的API的确没有见到。
跟踪数据库我指的是数据库跟踪调试工具,具体SQL server可以用内置的SQL Profiler, Oracle可以用Toad工具。
具体到这个问题:
尝试添加参与者后,跟踪到与dms_proj最后一个字段对应的权限信息有关,这是权限表的外键;
跟踪权限[dms_ace]表,得到信息如下:
2,135,137即为我添加的参与者,
4为类型,这里指设置的项目参与者,
65535,318,318即为参与者类型,这里65535指的是项目管理员,318指的是项目成员,
可以代码直接操作该表,
也可模拟数据调用权限函数aaApi_ApplyAccessControlList()即可最终解决。
数据库分析可以庖丁解牛,分析没有源码情况下理解系统机理,抽丝剥茧,当然麻烦,但作为coder很多人乐此不疲。
Answer Verified By: Lihui.He