Пример #1
0
 def set_refresh_token(self, issuer: str, client_id: str, refresh_token: str):
     data = self.load()
     log.info("Storing refresh token for issuer {i!r} (client {c!r})".format(i=issuer, c=client_id))
     deep_set(data, _normalize_url(issuer), client_id, value={
         "date": utcnow_rfc3339(),
         "refresh_token": refresh_token,
     })
     self._write(data)
Пример #2
0
 def set_oidc_client_config(
         self, backend: str, provider_id: str, client_id: str, client_secret: str = None, issuer: str = None
 ):
     data = self.load()
     keys = ("backends", _normalize_url(backend), "oidc", "providers", provider_id)
     # TODO: support multiple clients? (pick latest by default for example)
     deep_set(data, *keys, "date", value=utcnow_rfc3339())
     deep_set(data, *keys, "client_id", value=client_id)
     if client_secret:
         deep_set(data, *keys, "client_secret", value=client_secret)
     if issuer:
         deep_set(data, *keys, "issuer", value=issuer)
     self._write(data)
Пример #3
0
 def set_basic_auth(self, backend: str, username: str, password: Union[str, None]):
     data = self.load()
     keys = ("backends", _normalize_url(backend), "basic",)
     # TODO: support multiple basic auth credentials? (pick latest by default for example)
     deep_set(data, *keys, "date", value=utcnow_rfc3339())
     deep_set(data, *keys, "username", value=username)
     if password:
         deep_set(data, *keys, "password", value=password)
     self._write(data)
Пример #4
0
def test_deep_set_dict(init, keys, expected):
    d = init
    deep_set(d, *keys, value=42)
    assert d == expected
Пример #5
0
 def set(self, *keys, value):
     data = self.load()
     deep_set(data, *keys, value=value)
     self._write(data)