/// <summary>
        /// بدون توجه به رسته اجازه ها، چک می کند که آیا اجازه ای دارد. برای زمانی مناسب است که مثلا می خواهیم یک منو رو فعال یا غیرفعال کنیم ولی رسته ان بعدا مشخص می شود
        /// مثال : آیا اجازه ارسال دستور حداقل در یک استان را دارد؟
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="permissions"></param>
        /// <returns></returns>
        public bool HasAnyCategoryPermission <T>(T permissions) where T : struct
        {
            if (IsEnterpriseAdmin != null && IsEnterpriseAdmin())
            {
                return(true);
            }
            var entityItem = PermissionCoordinator.GetRelatedPermissionItem(typeof(T));

            return(HasAnyCategoryPermission(entityItem, Convert.ToInt64(permissions), null));
        }
        /// <summary>
        /// مقدار بازگشتی نال به معنی این است که بر روی همه موجودیت ها اجازه دارد. این موضوع تنها برای مدیر ارشد معنا دارد
        /// برای سایرین لیست خالی یا لیست با مقدار بازگردانده می شود
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="permissions"></param>
        /// <returns></returns>
        public List <K?> GetAllowedObjects <T>(T permissions) where T : struct
        {
            if (IsEnterpriseAdmin != null && IsEnterpriseAdmin())
            {
                return(null);
            }
            var entityItem = PermissionCoordinator.GetRelatedPermissionItem(typeof(T));
            var acls       = UserAcl();
            var cat        = PermissionCoordinator.GetPermissionCategory(entityItem);
            var lst        = new List <K?>();

            foreach (var aclItem in acls)
            {
                if (aclItem.Key.Category.Equals(cat))
                {
                    if (HasPermissionInAcl(entityItem, Convert.ToInt64(permissions), null, aclItem.Value) == true)
                    {
                        lst.Add(aclItem.Key.CategoryKey);
                    }
                }
            }
            return(lst);
        }
Exemplo n.º 3
0
        /// <summary>
        /// از ارسال اجازه های ترکیبی به این پارامتر خودداری شود
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="permissions"></param>
        /// <returns></returns>
        public bool HasFullPermissionOf <T>(T permissions, K?categoryKey = null) where T : struct
        {
            if (!HttpContext.Current.User.Identity.IsAuthenticated)
            {
                return(false);
            }
            if (categoryKey == null)
            {
                categoryKey = GetPermissionCategoryKey(PermissionCoordinator.GetPermissionCategory(PermissionCoordinator.GetRelatedPermissionItem(typeof(T))));
            }

            return(UserPermissionHelper.HasFullPermissionOf <T>(permissions, categoryKey));
        }
Exemplo n.º 4
0
        public bool HasPermission <T>(T permissions, string itemCreatorUserName = null, K?categoryKey = null) where T : struct
        {
            var entityItem = PermissionCoordinator.GetRelatedPermissionItem(typeof(T));

            return(HasPermission(entityItem, Convert.ToInt64(permissions), itemCreatorUserName, categoryKey) == true);
        }
        public bool HasPermission <T>(T permissions, K?categoryKey = null) where T : struct
        {
            var entityItem = PermissionCoordinator.GetRelatedPermissionItem(typeof(T));

            return(HasPermission(entityItem, Convert.ToInt64(permissions), categoryKey: categoryKey) ?? false);
        }
Exemplo n.º 6
0
        public bool HasFullPermissionOf <T>(T permissions) where T : struct
        {
            var entityItem = PermissionCoordinator.GetRelatedPermissionItem(typeof(T));

            return(HasFullPermissionOf(entityItem, Convert.ToInt64(permissions)));
        }