olm: Create a new olm account only after login.
That way we can be sure to have a valid device ID.
This commit is contained in:
parent
b309be8a98
commit
357c76edcc
2 changed files with 20 additions and 8 deletions
|
@ -86,6 +86,10 @@ class MatrixLoginEvent(MatrixEvent):
|
||||||
prefix=W.prefix("network"), user=self.user_id)
|
prefix=W.prefix("network"), user=self.user_id)
|
||||||
|
|
||||||
W.prnt(self.server.server_buffer, message)
|
W.prnt(self.server.server_buffer, message)
|
||||||
|
|
||||||
|
if not self.server.olm:
|
||||||
|
self.server.create_olm()
|
||||||
|
|
||||||
self.server.sync()
|
self.server.sync()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
@ -138,20 +138,28 @@ class MatrixServer:
|
||||||
try:
|
try:
|
||||||
self.olm = Olm.from_session_dir(self)
|
self.olm = Olm.from_session_dir(self)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
message = ("{prefix}matrix: Creating new Olm identity for {user}"
|
pass
|
||||||
" on {server} for device {device}.").format(
|
|
||||||
prefix=W.prefix("network"),
|
|
||||||
user=self.user,
|
|
||||||
server=self.name,
|
|
||||||
device=self.device_id)
|
|
||||||
W.prnt("", message)
|
|
||||||
self.olm = Olm(self)
|
|
||||||
except EncryptionError as error:
|
except EncryptionError as error:
|
||||||
message = ("{prefix}matrix: Error loading Olm"
|
message = ("{prefix}matrix: Error loading Olm"
|
||||||
"account: {error}.").format(
|
"account: {error}.").format(
|
||||||
prefix=W.prefix("error"), error=error)
|
prefix=W.prefix("error"), error=error)
|
||||||
W.prnt("", message)
|
W.prnt("", message)
|
||||||
|
|
||||||
|
def create_olm(self):
|
||||||
|
message = ("{prefix}matrix: Creating new Olm identity for "
|
||||||
|
"{self_color}{user}{ncolor}"
|
||||||
|
" on {server_color}{server}{ncolor} for device "
|
||||||
|
"{device}.").format(
|
||||||
|
prefix=W.prefix("network"),
|
||||||
|
self_color=W.color("chat_nick_self"),
|
||||||
|
ncolor=W.color("reset"),
|
||||||
|
user=self.user_id,
|
||||||
|
server_color=W.color("chat_server"),
|
||||||
|
server=self.name,
|
||||||
|
device=self.device_id)
|
||||||
|
W.prnt(self.server_buffer, message)
|
||||||
|
self.olm = Olm(self)
|
||||||
|
|
||||||
def _create_options(self, config_file):
|
def _create_options(self, config_file):
|
||||||
options = [
|
options = [
|
||||||
Option('autoconnect', 'boolean', '', 0, 0, 'off',
|
Option('autoconnect', 'boolean', '', 0, 0, 'off',
|
||||||
|
|
Loading…
Add table
Reference in a new issue