OxL Справочник OxL
РусскийEnglish

method DynHandle.setAs

set on behalf of p (a service acting for a user; the policy is evaluated for p).

Example:

oxl✓ проверяется в CI
dynamic Limits {
  rps: u32 = 100
}

policy Limits {
  allow set if caller.hasRole("Admin")
}

fn main() io {
  let l = Limits.get()
  let admin = Principal.User("ann", ["Admin"], Map.new(), false, none)
  let guest = Principal.User("bob", [], Map.new(), false, none)
  print("{l.rps.setAs(&admin, 200) is DynError}")
  print("{l.rps.setAs(&guest, 300) is DynError}")
  print("{l.rps.get()}")
}
Вывод
false
true
200
pub(api) fn setAs(p: &Principal, v: T, layer: DynScope = .Global) -> () | DynError where T: Serializable

С версии. 1.0.0-beta

Параметры

ИмяТип
p&Principal
vT
layerDynScope = .Global

Возвращает

()

Ошибки

Эффекты

не объявлены (чистая, пока тело не говорит иное)

Определено в: std/core/dynconf.oxl:574

См. также