コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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);
        }
コード例 #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));
        }
コード例 #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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        public bool HasFullPermissionOf <T>(T permissions) where T : struct
        {
            var entityItem = PermissionCoordinator.GetRelatedPermissionItem(typeof(T));

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