diff options
Diffstat (limited to 'src/api')
| -rw-r--r-- | src/api/login.rs | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/api/login.rs b/src/api/login.rs index e3f8d02..cc70c18 100644 --- a/src/api/login.rs +++ b/src/api/login.rs @@ -163,11 +163,9 @@ impl LimitRequest { /// `limit` as a token may say it, within `earlier`'s (a refreshed one says no more): each /// of its capabilities at or below one of `earlier`'s, with some of its rights. fn within(limit: &[Capability], earlier: &[Capability]) -> bool { - limit.iter().all(|cap| { - earlier - .iter() - .any(|outer| cap.path.starts_with(&outer.path) && cap.rights.is_subset(&outer.rights)) - }) + limit + .iter() + .all(|cap| earlier.iter().any(|outer| outer.holds(cap))) } /// `claims` (issued now, by this node), signed, as the answer to a login or refresh. |
