From: Ian Jackson Date: Sun, 1 Nov 2020 20:14:58 +0000 (+0000) Subject: wip adjust players etc. X-Git-Tag: otter-0.2.0~574 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=484bbcb0cef4c533dee45a6acd14212055bcdfdb;p=otter.git wip adjust players etc. Signed-off-by: Ian Jackson --- diff --git a/src/cmdlistener.rs b/src/cmdlistener.rs index 2dedc82d..51dca15f 100644 --- a/src/cmdlistener.rs +++ b/src/cmdlistener.rs @@ -285,16 +285,19 @@ fn execute_game_insn<'ig>( Fine, ig) } - Insn::AddPlayer(add) => { + Insn::AddPlayer { + account, + details: MgmtPlayerDetails { timezone, nick } + } => { // todo some kind of permissions check for player too let ig = cs.check_acl(ag, ig, PCH::Instance, &[TP::AddPlayer])?.0; - let (record, acctid) = ag.lookup(&add.account)?; - let nick = add.nick.ok_or(ME::ParameterMissing)?; + let (record, acctid) = ag.lookup(&account)?; + let nick = nick.ok_or(ME::ParameterMissing)?; let logentry = LogEntry { html: Html(format!("{} added a player: {}", &who, htmlescape::encode_minimal(&nick))), }; - let timezone = add.timezone.as_ref().map(String::as_str) + let timezone = timezone.as_ref().map(String::as_str) .unwrap_or(""); let tz = match Timezone::from_str(timezone) { Ok(tz) => tz, @@ -731,9 +734,10 @@ impl CommandStream<'_> { { let (ipl_unauth, gpl_unauth) = { let ig = ig.by(Authorisation::authorise_any()); - (ig.iplayers.get(player)?, ig.gs.gplayers.get(player)?) + (ig.iplayers.get(player).ok_or(ME::PlayerNotFound)?, + ig.gs.players.get(player).ok_or(ME::PlayerNotFound)?) }; - let how = PCH::InstanceOrOnlyAffectedAccount(ipl_unauth.acctid); + let how = PCH::InstanceOrOnlyAffectedAccount(ipl_unauth.ipl.acctid); let (ig, auth) = self.check_acl(ag, ig, how, p)?; (ig, auth) } diff --git a/src/spec.rs b/src/spec.rs index 6ff27c9b..964affe4 100644 --- a/src/spec.rs +++ b/src/spec.rs @@ -284,7 +284,7 @@ pub mod implementation { Ok(None) } fn client_deliver(&self, - pd: &MgmtPlayerDetails, + pi: &MgmtPlayerInfo, token: &AccessTokenReport) -> Result<(), TDE> { panic!() @@ -318,10 +318,10 @@ pub mod implementation { } #[throws(TDE)] fn client_deliver(&self, - pd: &MgmtPlayerDetails, + pi: &MgmtPlayerInfo, token: &AccessTokenReport) { println!("access account={} nick={:?} url:\n{}", - &pd.account, &pd.nick, token.url); + &pi.account, &pi.nick, token.url); } }