我需要检查登录的用户是否对安全角色中指定的特定实体具有用户级别的创建特权。
我也尝试使用JavaScript来检索Privilege实体,并检查特权,但未按预期工作。
javascript检索用户和特权的角色,但即使用户角色仅具有用户级别的创建特权,它也会显示canbedeep,canbelocal,canbeglobal变为true。
'<fetch mapping="logical" >',
'<entity name="role">',
'<attribute name="name" />',
'<link-entity name="systemuserroles" from="roleid" to="roleid">',
'<link-entity name="systemuser" from="systemuserid" to="systemuserid">',
'<filter>',
'<condition attribute="systemuserid" operator="eq-userid"/>',
'</filter>',
' </link-entity>',
'</link-entity>',
' <link-entity name="roleprivileges" from="roleid" to="roleid">',
' <link-entity name="privilege" from="privilegeid" to="privilegeid">',
' <attribute name="canbebasic" />',
' <attribute name="canbedeep" />',
' <attribute name="canbelocal" />',
' <attribute name="canbeglobal" />',
' <attribute name="accessright" />',
'<filter type="and">',
'<condition attribute="name" operator="eq" value="prvcreate' + entity + '" />',
'</filter>',
' </link-entity>',
' </link-entity>',
'</entity>',
' </fetch>'
有人请帮忙吗?
我认为您在误解什么可能是基础的,可以是基础的,可以是局部的和可以是整体的意思。这些是特权本身的属性(例如,prvCreateAccount)。它们仅表示特权可以在用户级别分配。他们没有指出它已在用户级别分配给任何特定角色或用户。
听起来您想检查RolePrivileges实体上的Privilege Depth Mask。请参考此文章以获取值列表。
http://sliong.wordpress.com/2012/11/20/crm-2011-privilegedepthmask-and-accessright/