pub struct InstanceAdmin<'a> { /* private fields */ }Expand description
Instance-admin capability view over an AccountSession session.
Obtain via AccountSession::admin. See the
module docs for the rationale behind the separate type.
Implementations§
Source§impl<'a> InstanceAdmin<'a>
impl<'a> InstanceAdmin<'a>
Sourcepub async fn create_account(&self, new_account: NewAccount) -> Result<String>
pub async fn create_account(&self, new_account: NewAccount) -> Result<String>
Create a new account.
Authors the Account database with its new key and registers its wrapped credentials in native local storage. Connected registration is gated by the admin’s session key; passwords and plaintext keys are not sent to the daemon. First login retains the existing device-Read grant.
Returns the new instance-local login ID (see
AccountSession::login_id), not the Account root ID. Use
Instance::login_account to obtain an AccountSession session for the new
account; materialising it directly here would require the admin’s
connection to read the new account’s own tree over the wire, where the
session gate (correctly) rejects the admin as a non-member.
§Arguments
new_account- Username and password string (including empty) for the account to create. SeeNewAccount.
Sourcepub async fn list_accounts(&self) -> Result<Vec<String>>
pub async fn list_accounts(&self) -> Result<Vec<String>>
List the login names of all accounts registered on this instance.
Reads native local login names. Connected requests require instance-admin
on the daemon’s _users Auth and return no credential records.
Sourcepub async fn grant_instance_admin(&self, new_admin: &PublicKey) -> Result<()>
pub async fn grant_instance_admin(&self, new_admin: &PublicKey) -> Result<()>
Grant instance-admin to another key.
Adds new_admin as Admin(0) on the system databases that gate
instance-level admin operations (_users and _databases), with the
write signed by this admin’s own key. The first instance admin is
created automatically during instance bootstrap; this is how every
subsequent admin is promoted.
Idempotent: re-granting an existing admin re-asserts the same
Admin(0) entry.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for InstanceAdmin<'a>
impl<'a> !RefUnwindSafe for InstanceAdmin<'a>
impl<'a> Send for InstanceAdmin<'a>
impl<'a> Sync for InstanceAdmin<'a>
impl<'a> Unpin for InstanceAdmin<'a>
impl<'a> UnsafeUnpin for InstanceAdmin<'a>
impl<'a> !UnwindSafe for InstanceAdmin<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more