public ActionResult GetUserPermissions()
        {
            var user = _usersService.GetCurrentUser();
            var allowedPermissions = _permissionsRepository.GetPermissionsForRoles(
                _usersService.GetRolesByIds(user.Roles.Select(r => r.RoleId)).Select(r => r.RoleCode).ToArray());

            return(Json(Extensions.ToEnumList <PermissionType>().ToDictionary(x => x.ToString(), x => allowedPermissions.Contains(x)), JsonRequestBehavior.AllowGet));
        }
        public bool HasCurrentUserPermissions(params PermissionType[] permissionTypes)
        {
            if (permissionTypes == null || !permissionTypes.Any())
            {
                throw new ArgumentException(nameof(permissionTypes));
            }
            var user  = _userService.GetCurrentUser();
            var roles = _userService.GetRolesByIds(user.Roles.Select(x => x.RoleId));
            var allowedPermissions = _permissionsRepository.GetPermissionsForRoles(roles.Select(x => x.RoleCode));

            return(permissionTypes.All(pt => allowedPermissions.Contains(pt)));
        }