예제 #1
0
        public List <SysPermission> GetPermissionList(PermissionCode permission)
        {
            Type t = permission.GetType();
            List <SysPermission> list = new List <SysPermission>();

            list = GetPermissionList(t, list);
            return(list);
        }
예제 #2
0
 public override int GetHashCode()
 {
     if (UserId != 0 && PermissionCode != null && PermissionCategory != null)
     {
         return(UserId.GetHashCode() ^ PermissionCode.GetHashCode() ^ PermissionCategory.GetHashCode());
     }
     else
     {
         return(base.GetHashCode());
     }
 }
예제 #3
0
        public async Task <bool> HasPermission(int[] roleIds, PermissionCode permission)
        {
            var code  = $";{permission.GetHashCode()};";
            var roles = await _rolesRepository.FetchAsync(c => roleIds.Contains(c.Id));

            if (roles.Any(c => !String.IsNullOrEmpty(c.Permissions) && c.Permissions.Contains(code)))
            {
                return(true);
            }
            return(false);
        }
예제 #4
0
        public List <UserModel> GetUserByPermission(PermissionCode permission)
        {
            using (var context = _userRepository.GetDbContext())
            {
                var users = context.Users.Where(c =>
                                                c.UserRoles.Contains($";{permission.GetHashCode().ToString()};")).ToList();

                var model = users.CloneToListModels <User, UserModel>();
                return(model);
            }
        }
예제 #5
0
        public static bool HasPermission(this ClaimsPrincipal claimsPrincipal, PermissionCode permissionCode)
        {
            var permissionsClaims = claimsPrincipal.Claims.FirstOrDefault(c => c.Type == "permissions");

            if (permissionsClaims == null)
            {
                return(false);
            }

            return(permissionsClaims.Value.Contains(";" + permissionCode.GetHashCode() + ";"));
        }
예제 #6
0
        public List <SysPermission> GetPermissionList(PermissionCode permission)
        {
            Type t = permission.GetType();
            List <SysPermission> list = new List <SysPermission>();

            //SysPermission p = new SysPermission();
            //p.Id = "0";
            //p.Name = "权限集合";
            //p.PId = "";
            //list.Add(p);
            list = GetBasePermissionList(t, list);
            return(list);
        }
예제 #7
0
        public bool IsPermissionGranted(int?pageId, PermissionCode permissionCode)
        {
            bool result = false;

            if (_AllItems.IsNotNull())
            {
                result = (from i in _AllItems
                          where i.GroupId == BackEndSessions.CurrentUser.GroupId &&
                          i.PageId == pageId &&
                          i.PermissionCode.ToLower() == permissionCode.ToString().ToLower()
                          select i).Count() > 0;
            }
            return(result);
        }
 public Permission(PermissionCode code)
 {
     Code = code;
 }
예제 #9
0
 /// <summary>
 /// Разрешено ли текущему пользователю разрешение
 /// </summary>
 /// <param name="permissionCode">
 /// The permission Code.
 /// </param>
 /// <returns>
 /// The <see cref="bool"/>.
 /// </returns>
 public bool GetIsCurrentUserAllowPermission(PermissionCode permissionCode)
 {
     return(InvokeInterceptors(() => Service.GetIsCurrentUserAllowPermission(permissionCode)));
 }
예제 #10
0
파일: Utils.cs 프로젝트: syurov/rt.srz
        /// <summary>
        /// Ищет в меню элемент со значением menuItemValue и если нету прав на этот элемент, то скрывает(удаляет) его из меню
        /// </summary>
        /// <param name="session"></param>
        /// <param name="menu"></param>
        /// <param name="service"></param>
        /// <param name="menuItemValue"></param>
        /// <param name="permissionCode"></param>
        public static void SetMenuItemByPermission(HttpSessionState session, Menu menu, ISecurityService service, string menuItemValue, PermissionCode permissionCode)
        {
            //чтобы избежать пересечения в сессии значений например для пункта редактировать на разных формах, в качестве имени берём код разрешения
            string name = permissionCode.ToString();

            if (session[name] == null)
            {
                session[name] = service.GetIsCurrentUserAllowPermission(permissionCode);
            }
            SetMenuItemByValue(menu, menuItemValue, (bool)session[name]);
        }
예제 #11
0
        /// <summary>
        /// Разрешено ли текущему пользователю разрешение
        /// </summary>
        /// <param name="permissionCode">
        /// The permission Code.
        /// </param>
        /// <returns>
        /// The <see cref="bool"/>.
        /// </returns>
        public bool GetIsCurrentUserAllowPermission(PermissionCode permissionCode)
        {
            var currentUser = GetCurrentUser();

            return(ObjectFactory.GetInstance <IUserManager>().GetIsUserAllowPermission(currentUser.Id, (int)permissionCode));
        }
예제 #12
0
 public PermissionRequirement(PermissionCode permission)
 {
     Permission = permission;
 }
예제 #13
0
 private void SetMenuByPermission(User currentUser, string menuItemValue, PermissionCode permissionCode)
 {
     UtilsHelper.SetMenuItemByPermission(Session, Menu, _securityService, menuItemValue, permissionCode);
 }
 public List <SysPermission> GetPermissionList(PermissionCode pPermissionCode)
 {
     return(_authorizeRelay.GetPermissionList(pPermissionCode));
 }
예제 #15
0
 public override bool Equals(object obj)
 {
     return(PermissionCode.Equals(
                obj.ToString(),
                StringComparison.InvariantCultureIgnoreCase));
 }
예제 #16
0
 public bool Has(PermissionCode permission)
 {
     return(false);
 }