From: Ian Jackson Date: Wed, 28 Oct 2020 19:20:39 +0000 (+0000) Subject: wip new account etc., adding acctid etc. X-Git-Tag: otter-0.2.0~590 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=86076debf6eacc966d25df281454b80a55bf3192;p=otter.git wip new account etc., adding acctid etc. Signed-off-by: Ian Jackson --- diff --git a/src/global.rs b/src/global.rs index b37f2170..1a0494ad 100644 --- a/src/global.rs +++ b/src/global.rs @@ -417,17 +417,17 @@ impl InstanceGuard<'_> { /// caller is responsible for logging; threading it through /// proves the caller has a log entry. #[throws(MgmtError)] - pub fn player_new(&mut self, newplayer: PlayerState, tz: Timezone, + pub fn player_new(&mut self, newnick: String, newplayer: PlayerState, logentry: LogEntry) -> (PlayerId, LogEntry) { // saving is fallible, but we can't attempt to save unless // we have a thing to serialise with the player in it - if self.c.g.gs.players.values().any(|a| a == &newplayer.account) { - Err(MgmtError::AlreadyExists)?; - } - if self.c.g.iplayers.values().any(|pl| pl.pst.nick == newplayer.nick) { + if self.c.g.gs.players.values().any(|oldnick| oldnick == &newnick) { Err(MgmtError::NickCollision)?; } - let player = self.c.g.gs.players.insert(newplayer.account.clone()); + if self.c.g.iplayers.values().any(|r| r.pst.acctid == newplayer.acctid) { + Err(MgmtError::AlreadyExists)?; + } + let player = self.c.g.gs.players.insert(newnick); let u = PlayerUpdates::new_begin(&self.c.g.gs).new(); let record = PlayerRecord { u, pst: newplayer }; self.c.g.iplayers.insert(player, record); @@ -476,7 +476,7 @@ impl InstanceGuard<'_> { // #[throws(ServerFailure)] // https://github.com/withoutboats/fehler/issues/62 pub fn player_remove(&mut self, oldplayer: PlayerId) - -> Result<(Option, Option), + -> Result<(Option, Option), InternalError> { // We have to filter this player out of everything // Then save @@ -564,7 +564,7 @@ impl InstanceGuard<'_> { pst })(); // <- No ?, ensures that IEFE is infallible (barring panics) - Ok((old_account, old_pst)) + Ok((old_nick, old_pst)) } #[throws(InternalError)]