chiark / gitweb /
wip new account etc., adding acctid etc.
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 26 Oct 2020 19:00:32 +0000 (19:00 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 26 Oct 2020 19:00:32 +0000 (19:00 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/accounts.rs
src/global.rs

index 17cb68acc648757c6938915749a1a0f3ec57c0cd..4ba85afc3631afd3e2650a25b6f3c380ec01ee03 100644 (file)
@@ -241,7 +241,8 @@ impl AccountRecord {
       .ok_or(MgmtError::AccountNotFound)?;
 
     if let Some(new_access) = set_access() {
-      invalidate_all_tokens_for_account(acctid)?;
+      process_all_players_for_account(acctid,
+                                      InstanceGuard::invalidate_tokens)?;
       entry.access = new_access;
     }      
     let output = f(&mut *entry, acctid);
@@ -288,7 +289,7 @@ impl AccountRecord {
       let entry = accounts.names.entry(account);
       if let hash_map::Entry::Occupied(oe) = entry;
       then { oe }
-      else { throw!(AccountNotFound) }
+      else { throw!(ME::AccountNotFound) }
     };
     let acctid = *oe.key();
     process_all_players_for_account(acctid, InstanceGuard::player_remove)?;
index a199c5343be1a329e03ab4fb71f095ac00590837..b37f2170b686e9228ce141930e9f47eab18713d7 100644 (file)
@@ -454,7 +454,7 @@ impl InstanceGuard<'_> {
                         signal: ErrorSignaledViaUpdate) {
     let mut clients_to_remove = HashSet::new();
     self.clients.retain(|k,v| {
-      let remove = v.player == oldplayer;
+      let remove = v.player == player;
       if remove { clients_to_remove.insert(k); }
       !remove
     });
@@ -552,7 +552,7 @@ impl InstanceGuard<'_> {
       }
       buf.finish();
 
-      self.remove_clients(player, ErrorSignaledViaUpdate::PlayerRemoved);
+      self.remove_clients(oldplayer, ErrorSignaledViaUpdate::PlayerRemoved);
       self.tokens_deregister_for_id(|id:PlayerId| id==oldplayer);
       let iplayer = self.iplayers.remove(oldplayer);
       let pst = iplayer.map(|iplayer| iplayer.pst);
@@ -570,8 +570,8 @@ impl InstanceGuard<'_> {
   #[throws(InternalError)]
   pub fn invalidate_tokens(&mut self, player: PlayerId) {
     let old_tokens = self.tokens_players.get(player).clone();
-    self.tokens_deregister_for_id(|id:PlayerId| id==oldplayer);
-    save_access_now().map_err(|e|{
+    self.tokens_deregister_for_id(|id:PlayerId| id==player);
+    self.save_access_now().map_err(|e|{
       // oof
       self.tokens.players.insert(player, old_tokens);
       e