chiark / gitweb /
wip adjust players etc.
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 1 Nov 2020 20:14:58 +0000 (20:14 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 1 Nov 2020 20:14:58 +0000 (20:14 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/cmdlistener.rs
src/spec.rs

index 2dedc82d247e0b830657c8911f1bd31cc89427dc..51dca15f3148388856aa0e1883149e44fe7cded0 100644 (file)
@@ -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)
   }
index 6ff27c9b4ce4f2cc40147c29b1dff3abb0cb17b2..964affe4e0ca82dec3332115fe141fd19f7f3ffc 100644 (file)
@@ -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);
     }
   }