public function rename($newlogin) { $config = new Config(); $users = $config->get_array('/users'); if (in_array($users, self::escape_login($newlogin))) { throw new Exception("Login name already exists"); } $newusers = array(); foreach ($users as $u) { if ($u != self::escape_login($this->login)) { $newusers[] = $u; } else { $newusers[] = self::escape_login($newlogin); } } $config->set_array('/users', $newusers); $oldlogin = $this->login; $this->login = $newlogin; $this->save(); $config->delete_string('/users/' . self::escape_login($oldlogin) . '/first_name'); $config->delete_string('/users/' . self::escape_login($oldlogin) . '/last_name'); $config->delete_string('/users/' . self::escape_login($oldlogin) . '/password_hash'); $config->delete_array('/users/' . self::escape_login($oldlogin) . '/roles'); return true; }