我有一个公司用户和产品类
每个用户都可以创建x数量的产品。
我只希望每个用户能够查看彼此的产品,但只能编辑自己的产品。
我创建了一个名为ProductPeople的角色,该类型具有我分配给CompanyUsers的Product类的类型权限(该角色具有所有权限,读写导航等)。
我在哪里设置只有userX可以编辑/删除自己产品的标准?
答案 0 :(得分:2)
以下是updater类的代码。它将为基础程序集中的所有对象创建权限。你需要一个受限制的baseobject类来实现它,它应该定义两个属性,CreatedBy是TeamMember(SecuritySystemUser后代)和Restricted,它表示是否要特别限制属性。如果您现在将Restricted标记为已选中,则应该隐藏除了创建它的用户之外的所有对象。
注意:这仅适用于您的装配。您可以为所有引用的程序集添加另一个循环,包括BaseImp和Base。我以KPI程序集为例。
private void CreateTeamRole()
{
SecuritySystemRole Role = ObjectSpace.FindObject<SecuritySystemRole>(new BinaryOperator("Name", "Team"));
if (Role != null)
return;
Role = ObjectSpace.CreateObject<SecuritySystemRole>();
Role.Name = "Team";
Role.CanEditModel = true;
Role.SetTypePermissions<SecuritySystemUser>(SecurityOperations.Read, SecuritySystemModifier.Allow);
Role.SetTypePermissions<SecuritySystemRole>(SecurityOperations.Read, SecuritySystemModifier.Allow);
Role.SetTypePermissions<TeamMember>(SecurityOperations.ReadWriteAccess, SecuritySystemModifier.Allow);
Role.SetTypePermissions<TeamMember>(SecurityOperations.Navigate, SecuritySystemModifier.Allow);
foreach (var item in System.Reflection.Assembly.GetAssembly(typeof(DevExpress.ExpressApp.Kpi.KpiDefinition)).GetTypes())
if (item.IsSubclassOf(typeof(XPBaseObject)))
Role.SetTypePermissions(item, SecurityOperations.FullAccess, SecuritySystemModifier.Allow);
Role.SetTypePermissions<XPWeakReference>(SecurityOperations.FullAccess, SecuritySystemModifier.Allow);
foreach (var item in System.Reflection.Assembly.GetAssembly(typeof(BaseObject)).GetTypes())
{
if (item.IsSubclassOf(typeof(XPBaseObject)) && !item.Equals(typeof(TeamMember)))
{
if (item.IsSubclassOf(typeof(RestrictedBaseObject)))
{
Role.SetTypePermissions(item, "Create;Navigate;Delete", SecuritySystemModifier.Allow);
Role.AddObjectAccessPermission(item, "!Restricted or [CreatedBy.Oid] = CurrentUserId()", SecurityOperations.ReadWriteAccess);
}
else
Role.SetTypePermissions(item, SecurityOperations.FullAccess, SecuritySystemModifier.Allow);
}
}
}
答案 1 :(得分:0)
据我了解您的问题,您只使用了类型许可。为了能够表达您想要的内容,您必须使用objectpermissions。对于SecuritySystemObjectPermissionsObject类型的对象,您可以指定一个条件,通过该条件可以表达对“自己的产品”的限制。