Skip to content

Commit b507173

Browse files
committed
Fix tests
1 parent 8f89e63 commit b507173

File tree

3 files changed

+28
-11
lines changed

3 files changed

+28
-11
lines changed

samples/star-wars-api/Policies.fs

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
11
namespace FSharp.Data.GraphQL.Samples.StarWarsApi.Authorization
22

3+
open System.Threading.Tasks
34
open FSharp.Core
45
open Microsoft.AspNetCore.Authorization
56

67
module Policies =
78

9+
let [<Literal>] Dummy = "Dummy"
810
let [<Literal>] CanSetMoon = "CanSetMoon"
911

12+
type DummyRequirement () = interface IAuthorizationRequirement
13+
14+
type DummyHandler () =
15+
16+
inherit AuthorizationHandler<DummyRequirement> ()
17+
18+
override _.HandleRequirementAsync (context, requirement) =
19+
context.Succeed requirement
20+
Task.CompletedTask
21+
1022
type IsCharacterRequierment (character : string Set) =
1123
member val Characters = character
1224
interface IAuthorizationRequirement
@@ -15,12 +27,12 @@ type IsCharacterHandler () =
1527

1628
inherit AuthorizationHandler<IsCharacterRequierment> () // Inject services from DI
1729

18-
override _.HandleRequirementAsync (context, requirement) =
19-
Async.StartImmediateAsTask(async {
20-
let allowedCharacters = requirement.Characters
21-
if context.User.Claims
22-
|> Seq.where (fun c -> c.Type = "character")
23-
|> Seq.exists (fun c -> allowedCharacters |> Set.contains c.Value)
24-
then context.Succeed requirement
25-
else () // Go to the next handler if registered
26-
}) :> _
30+
override _.HandleRequirementAsync (context, requirement) =
31+
Async.StartImmediateAsTask(async {
32+
let allowedCharacters = requirement.Characters
33+
if context.User.Claims
34+
|> Seq.where (fun c -> c.Type = "character")
35+
|> Seq.exists (fun c -> allowedCharacters |> Set.contains c.Value)
36+
then context.Succeed requirement
37+
else () // Go to the next handler if registered
38+
}) :> _

samples/star-wars-api/Schema.fs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,10 @@ module Schema =
295295
// ctx.Schema.LiveFieldSubscriptionProvider.Publish<Planet> "Planet" "isMoon" planet
296296
// return planet
297297
//})
298-
).WithAuthorizationPolicies(Policies.CanSetMoon)
298+
// For demo purposes of authorization
299+
//).WithAuthorizationPolicies(Policies.CanSetMoon)
300+
// For build verification purposes
301+
).WithAuthorizationPolicies(Policies.Dummy)
299302
]
300303
)
301304

samples/star-wars-api/Startup.fs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@ type Startup private () =
3131
member _.ConfigureServices (services : IServiceCollection) : unit =
3232
services
3333
.AddAuthorization(fun options ->
34-
options.AddPolicy (
34+
options.AddPolicy (Policies.Dummy, fun policy -> policy.Requirements.Add (DummyRequirement ()))
35+
options.AddPolicy(
3536
Policies.CanSetMoon,
3637
(fun policy -> policy.Requirements.Add (IsCharacterRequierment (Set.singleton "droid"))))
3738
)
39+
.AddScoped<IAuthorizationHandler, DummyHandler>()
3840
.AddScoped<IAuthorizationHandler, IsCharacterHandler>()
3941
.AddOxpecker()
4042
.AddGraphQL<Root> (Schema.executor, rootFactory, configure = configure)

0 commit comments

Comments
 (0)