|
| 1 | +[oso][trace] Query(allow(<__main__.User object at 0x7f0013c99640> TYPE `User`, "view", <__main__.Repository object at 0x7f0013c99610> TYPE `Repository`)) |
| 2 | +[oso][info] QUERY RULE: allow(<__main__.User object at 0x7f0013c99640> TYPE `User`, "view", <__main__.Repository object at 0x7f0013c99610> TYPE `Repository`), BINDINGS: {} |
| 3 | +[oso][info] APPLICABLE_RULES: |
| 4 | +[oso][info] allow(actor, action, resource) at line 11, column 5 |
| 5 | +[oso][trace] TraceRule(...) |
| 6 | +[oso][trace] RULE: allow(actor, action, resource) if has_permission(actor, action, resource); |
| 7 | +[oso][trace] TraceStackPush |
| 8 | +[oso][trace] Unify(<__main__.User object at 0x7f0013c99640> TYPE `User`, _actor_4) |
| 9 | +[oso][trace] ⇒ bind: _actor_4 ← <__main__.User object at 0x7f0013c99640> TYPE `User` |
| 10 | +[oso][trace] Unify("view", _action_5) |
| 11 | +[oso][trace] ⇒ bind: _action_5 ← "view" |
| 12 | +[oso][trace] Unify(<__main__.Repository object at 0x7f0013c99610> TYPE `Repository`, _resource_6) |
| 13 | +[oso][trace] ⇒ bind: _resource_6 ← <__main__.Repository object at 0x7f0013c99610> TYPE `Repository` |
| 14 | +[oso][trace] Query(has_permission(_actor_4, _action_5, _resource_6)) |
| 15 | +[oso][trace] TraceStackPush |
| 16 | +[oso][trace] Query(has_permission(_actor_4, _action_5, _resource_6)) |
| 17 | +[oso][info] QUERY RULE: has_permission(_actor_4, _action_5, _resource_6), BINDINGS: {_actor_4 => <__main__.User object at 0x7f0013c99640> TYPE `User`, _action_5 => "view", _resource_6 => <__main__.Repository object at 0x7f0013c99610> TYPE `Repository`} |
| 18 | +[oso][trace] APPLICABLE_RULES: |
| 19 | +[oso][trace] has_permission(actor: Actor{}, "view", repository: Repository{}) at line 7, column 8 |
| 20 | +[oso][trace] TraceRule(...) |
| 21 | +[oso][trace] RULE: has_permission(actor: Actor{}, "view", repository: Repository{}) if has_relation(actor, "owner", repository); |
| 22 | +[oso][trace] TraceStackPush |
| 23 | +[oso][trace] Unify(_actor_4, _actor_11) |
| 24 | +[oso][trace] ⇒ bind: _actor_4 ← _actor_11 |
| 25 | +[oso][trace] Isa(_actor_11, Actor{}) |
| 26 | +[oso][trace] MATCHES: _actor_11 matches Actor{}, BINDINGS: {_actor_11 => <__main__.User object at 0x7f0013c99640> TYPE `User`} |
| 27 | +[oso][trace] Isa(_actor_11, User{}) |
| 28 | +[oso][trace] MATCHES: _actor_11 matches User{}, BINDINGS: {_actor_11 => <__main__.User object at 0x7f0013c99640> TYPE `User`} |
| 29 | +[oso][trace] Isa(<__main__.User object at 0x7f0013c99640> TYPE `User`, User{}) |
| 30 | +[oso][trace] MATCHES: <__main__.User object at 0x7f0013c99640> TYPE `User` matches User{}, BINDINGS: {} |
| 31 | +[oso][trace] IsaExternal { instance: Term { source_info: Ffi, value: ExternalInstance(ExternalInstance { instance_id: 14, constructor: None, repr: None, class_repr: Some("User") }) }, literal: InstanceLiteral { tag: Symbol("User"), fields: Dictionary { fields: {} } } } |
| 32 | +[oso][trace] ⇒ bind: _isa_13 ← false |
| 33 | +[oso][trace] Unify(_isa_13, true) |
| 34 | +[oso][trace] Unify(true, true) |
| 35 | +[oso][trace] Isa(<__main__.User object at 0x7f0013c99640> TYPE `User`, {}) |
| 36 | +[oso][trace] MATCHES: <__main__.User object at 0x7f0013c99640> TYPE `User` matches {}, BINDINGS: {} |
| 37 | +[oso][trace] Unify(_action_5, "view") |
| 38 | +[oso][trace] Unify("view", "view") |
| 39 | +[oso][trace] Unify(_resource_6, _repository_12) |
| 40 | +[oso][trace] ⇒ bind: _resource_6 ← _repository_12 |
| 41 | +[oso][trace] Isa(_repository_12, Repository{}) |
| 42 | +[oso][trace] MATCHES: _repository_12 matches Repository{}, BINDINGS: {_repository_12 => <__main__.Repository object at 0x7f0013c99610> TYPE `Repository`} |
| 43 | +[oso][trace] Isa(<__main__.Repository object at 0x7f0013c99610> TYPE `Repository`, Repository{}) |
| 44 | +[oso][trace] MATCHES: <__main__.Repository object at 0x7f0013c99610> TYPE `Repository` matches Repository{}, BINDINGS: {} |
| 45 | +[oso][trace] IsaExternal { instance: Term { source_info: Ffi, value: ExternalInstance(ExternalInstance { instance_id: 15, constructor: None, repr: None, class_repr: Some("Repository") }) }, literal: InstanceLiteral { tag: Symbol("Repository"), fields: Dictionary { fields: {} } } } |
| 46 | +[oso][trace] ⇒ bind: _isa_14 ← false |
| 47 | +[oso][trace] Unify(_isa_14, true) |
| 48 | +[oso][trace] Unify(true, true) |
| 49 | +[oso][trace] Isa(<__main__.Repository object at 0x7f0013c99610> TYPE `Repository`, {}) |
| 50 | +[oso][trace] MATCHES: <__main__.Repository object at 0x7f0013c99610> TYPE `Repository` matches {}, BINDINGS: {} |
| 51 | +[oso][trace] Query(has_relation(_actor_11, "owner", _repository_12)) |
| 52 | +[oso][trace] TraceStackPush |
| 53 | +[oso][trace] Query(has_relation(_actor_11, "owner", _repository_12)) |
| 54 | +[oso][info] QUERY RULE: has_relation(_actor_11, "owner", _repository_12), BINDINGS: {_actor_11 => <__main__.User object at 0x7f0013c99640> TYPE `User`, _repository_12 => <__main__.Repository object at 0x7f0013c99610> TYPE `Repository`} |
| 55 | +[oso][trace] APPLICABLE_RULES: |
| 56 | +[oso][trace] has_relation(_user: User{}, "owner", _repository: Repository{}) at line 10, column 5 |
| 57 | +[oso][trace] TraceRule(...) |
| 58 | +[oso][trace] RULE: has_relation(_user: User{}, "owner", _repository: Repository{}); |
| 59 | +[oso][trace] TraceStackPush |
| 60 | +[oso][trace] Unify(_actor_11, __user_19) |
| 61 | +[oso][trace] ⇒ bind: _actor_11 ← __user_19 |
| 62 | +[oso][trace] Isa(__user_19, User{}) |
| 63 | +[oso][trace] MATCHES: __user_19 matches User{}, BINDINGS: {__user_19 => <__main__.User object at 0x7f0013c99640> TYPE `User`} |
| 64 | +[oso][trace] Isa(<__main__.User object at 0x7f0013c99640> TYPE `User`, User{}) |
| 65 | +[oso][trace] MATCHES: <__main__.User object at 0x7f0013c99640> TYPE `User` matches User{}, BINDINGS: {} |
| 66 | +[oso][trace] IsaExternal { instance: Term { source_info: Ffi, value: ExternalInstance(ExternalInstance { instance_id: 14, constructor: None, repr: None, class_repr: Some("User") }) }, literal: InstanceLiteral { tag: Symbol("User"), fields: Dictionary { fields: {} } } } |
| 67 | +[oso][trace] ⇒ bind: _isa_21 ← false |
| 68 | +[oso][trace] Unify(_isa_21, true) |
| 69 | +[oso][trace] Unify(true, true) |
| 70 | +[oso][trace] Isa(<__main__.User object at 0x7f0013c99640> TYPE `User`, {}) |
| 71 | +[oso][trace] MATCHES: <__main__.User object at 0x7f0013c99640> TYPE `User` matches {}, BINDINGS: {} |
| 72 | +[oso][trace] Unify("owner", "owner") |
| 73 | +[oso][trace] Unify(_repository_12, __repository_20) |
| 74 | +[oso][trace] ⇒ bind: _repository_12 ← __repository_20 |
| 75 | +[oso][trace] Isa(__repository_20, Repository{}) |
| 76 | +[oso][trace] MATCHES: __repository_20 matches Repository{}, BINDINGS: {__repository_20 => <__main__.Repository object at 0x7f0013c99610> TYPE `Repository`} |
| 77 | +[oso][trace] Isa(<__main__.Repository object at 0x7f0013c99610> TYPE `Repository`, Repository{}) |
| 78 | +[oso][trace] MATCHES: <__main__.Repository object at 0x7f0013c99610> TYPE `Repository` matches Repository{}, BINDINGS: {} |
| 79 | +[oso][trace] IsaExternal { instance: Term { source_info: Ffi, value: ExternalInstance(ExternalInstance { instance_id: 15, constructor: None, repr: None, class_repr: Some("Repository") }) }, literal: InstanceLiteral { tag: Symbol("Repository"), fields: Dictionary { fields: {} } } } |
| 80 | +[oso][trace] ⇒ bind: _isa_22 ← false |
| 81 | +[oso][trace] Unify(_isa_22, true) |
| 82 | +[oso][trace] Unify(true, true) |
| 83 | +[oso][trace] Isa(<__main__.Repository object at 0x7f0013c99610> TYPE `Repository`, {}) |
| 84 | +[oso][trace] MATCHES: <__main__.Repository object at 0x7f0013c99610> TYPE `Repository` matches {}, BINDINGS: {} |
| 85 | +[oso][trace] Query((true)) |
| 86 | +[oso][trace] TraceStackPush |
| 87 | +[oso][trace] TraceStackPop |
| 88 | +[oso][trace] PopQuery((true)) |
| 89 | +[oso][trace] TraceStackPop |
| 90 | +[oso][trace] TraceStackPop |
| 91 | +[oso][trace] PopQuery(has_relation(_actor_11, "owner", _repository_12)) |
| 92 | +[oso][trace] TraceStackPop |
| 93 | +[oso][trace] PopQuery(has_relation(_actor_11, "owner", _repository_12)) |
| 94 | +[oso][trace] TraceStackPop |
| 95 | +[oso][trace] TraceStackPop |
| 96 | +[oso][trace] PopQuery(has_permission(_actor_4, _action_5, _resource_6)) |
| 97 | +[oso][trace] TraceStackPop |
| 98 | +[oso][trace] PopQuery(has_permission(_actor_4, _action_5, _resource_6)) |
| 99 | +[oso][trace] TraceStackPop |
| 100 | +[oso][trace] TraceStackPop |
| 101 | +[oso][trace] PopQuery(allow(<__main__.User object at 0x7f0013c99640> TYPE `User`, "view", <__main__.Repository object at 0x7f0013c99610> TYPE `Repository`)) |
| 102 | +[oso][info] RESULT: SUCCESS |
| 103 | +True |
| 104 | +[oso][trace] Query(allow(<__main__.User object at 0x7f0013c99640> TYPE `User`, "view", <__main__.Project object at 0x7f0013c99310> TYPE `UNKNOWN`)) |
| 105 | +[oso][info] QUERY RULE: allow(<__main__.User object at 0x7f0013c99640> TYPE `User`, "view", <__main__.Project object at 0x7f0013c99310> TYPE `UNKNOWN`), BINDINGS: {} |
| 106 | +[oso][info] APPLICABLE_RULES: |
| 107 | +[oso][info] allow(actor, action, resource) at line 11, column 5 |
| 108 | +[oso][trace] TraceRule(...) |
| 109 | +[oso][trace] RULE: allow(actor, action, resource) if has_permission(actor, action, resource); |
| 110 | +[oso][trace] TraceStackPush |
| 111 | +[oso][trace] Unify(<__main__.User object at 0x7f0013c99640> TYPE `User`, _actor_26) |
| 112 | +[oso][trace] ⇒ bind: _actor_26 ← <__main__.User object at 0x7f0013c99640> TYPE `User` |
| 113 | +[oso][trace] Unify("view", _action_27) |
| 114 | +[oso][trace] ⇒ bind: _action_27 ← "view" |
| 115 | +[oso][trace] Unify(<__main__.Project object at 0x7f0013c99310> TYPE `UNKNOWN`, _resource_28) |
| 116 | +[oso][trace] ⇒ bind: _resource_28 ← <__main__.Project object at 0x7f0013c99310> TYPE `UNKNOWN` |
| 117 | +[oso][trace] Query(has_permission(_actor_26, _action_27, _resource_28)) |
| 118 | +[oso][trace] TraceStackPush |
| 119 | +[oso][trace] Query(has_permission(_actor_26, _action_27, _resource_28)) |
| 120 | +[oso][info] QUERY RULE: has_permission(_actor_26, _action_27, _resource_28), BINDINGS: {_action_27 => "view", _actor_26 => <__main__.User object at 0x7f0013c99640> TYPE `User`, _resource_28 => <__main__.Project object at 0x7f0013c99310> TYPE `UNKNOWN`} |
| 121 | +[oso][info] No matching rules found |
| 122 | +False |
| 123 | + |
| 124 | + |
0 commit comments