diff --git a/db/models.py b/db/models.py index 310e9fd..a3f0d7a 100644 --- a/db/models.py +++ b/db/models.py @@ -37,7 +37,9 @@ class User(BaseModel): mastodon_post_public = BooleanField(null=True, default=False) def mastodon_account(self): - if self.mastodon_server.name == MASTODON_INSTANCE: + if self.mastodon_server is None or self.mastodon_username is None: + return + elif self.mastodon_server.name == MASTODON_INSTANCE: return self.mastodon_username else: return f"{self.mastodon_username}@{self.mastodon_server}" diff --git a/web/app.py b/web/app.py index 630cb69..d388403 100644 --- a/web/app.py +++ b/web/app.py @@ -140,7 +140,7 @@ def mastodon_oauth(): user_mastodon_user_set(current_user.db_user.id, username, access_token) - return redirect('/profile') + return redirect('/profile/') @app.route('/login') def login(): diff --git a/web/vite/src/Profile.tsx b/web/vite/src/Profile.tsx index 6df6498..a0845f2 100644 --- a/web/vite/src/Profile.tsx +++ b/web/vite/src/Profile.tsx @@ -70,7 +70,10 @@ export const Profile: React.FC = () => { const [opened, { open, close }] = useDisclosure(false); const mastodon_account = React.useMemo( - () => `@${mastodon_username}@${mastodon_server}`, + () => + mastodon_username && mastodon_server + ? `@${mastodon_username}@${mastodon_server}` + : null, [mastodon_server, mastodon_username], );