using System; using Luticate2.Auth.Attributes.EntityAccessors; using Luticate2.Auth.Dbo.Permissions; namespace Luticate2.Auth.Attributes { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)] public class LuPermissionAttribute : Attribute { public string PermissionName { get; protected set; } public string SrcEntityType { get; protected set; } public Type SrcEntityAccessor { get; protected set; } public string DstEntityType { get; protected set; } public Type DstEntityAccessor { get; protected set; } public object Id { get; protected set; } public LuPermissionAttribute(string permissionName, string srcEntityType, Type srcEntityAccessor, string dstEntityType, Type dstEntityAccessor, object id = null) { PermissionName = permissionName; SrcEntityType = srcEntityType; SrcEntityAccessor = srcEntityAccessor; DstEntityType = dstEntityType; DstEntityAccessor = dstEntityAccessor; Id = id; } public LuPermissionAttribute(string permissionName, string dstEntityType, Type dstEntityAccessor, object id = null) : this(permissionName, LuEntityTypes.LuUsers, typeof(LuAttrLoggedUserAccessor), dstEntityType, dstEntityAccessor, id) { } public LuPermissionAttribute(string permissionName, string dstEntityType, object id = null) : this(permissionName, dstEntityType, typeof(LuAttrArgumentAccessor), id) { } } }