Skip to content

Commit

Permalink
fix: wiki admin
Browse files Browse the repository at this point in the history
  • Loading branch information
trim21 committed Aug 20, 2024
1 parent 6271087 commit 1e77dd6
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 32 deletions.
3 changes: 1 addition & 2 deletions server/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@
from litestar.types import Empty

from config import BGM_TV_APP_ID, BGM_TV_APP_SECRET, SERVER_BASE_URL
from server.base import Request, http_client
from server.model import User
from server.base import Request, User, http_client


CALLBACK_URL = f"{SERVER_BASE_URL}/oauth_callback"
Expand Down
28 changes: 27 additions & 1 deletion server/base.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import time
from dataclasses import dataclass
from typing import Any

import asyncpg
Expand All @@ -9,7 +11,31 @@
from typing_extensions import Never

from config import PG_DSN
from server.model import User


@dataclass(frozen=True, slots=True, kw_only=True)
class User:
user_id: int
group_id: int

access_token: str
refresh_token: str

access_token_created_at: int # unix time stamp
access_token_expires_in: int # seconds

def is_access_token_fresh(self) -> bool:
if not self.access_token:
return False

if self.access_token_created_at + self.access_token_expires_in <= time.time() + 120:
return False

return True

@property
def allow_edit(self) -> bool:
return self.group_id in {2, 9, 11}


http_client = httpx.AsyncClient(follow_redirects=False)
Expand Down
26 changes: 0 additions & 26 deletions server/model.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,8 @@
import enum
import time
from dataclasses import dataclass
from datetime import datetime


@dataclass(frozen=True, slots=True, kw_only=True)
class User:
user_id: int
group_id: int

access_token: str
refresh_token: str

access_token_created_at: int # unix time stamp
access_token_expires_in: int # seconds

def is_access_token_fresh(self) -> bool:
if not self.access_token:
return False

if self.access_token_created_at + self.access_token_expires_in <= time.time() + 120:
return False

return True

@property
def allow_edit(self) -> bool:
return self.group_id in {2, 11}


class PatchState(enum.IntEnum):
Pending = 0
Accept = 1
Expand Down
4 changes: 2 additions & 2 deletions server/review.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

from config import UTC
from server.auth import require_user_editor
from server.base import AuthorizedRequest, BadRequestException, http_client, pg
from server.model import Patch, PatchState, User
from server.base import AuthorizedRequest, BadRequestException, User, http_client, pg
from server.model import Patch, PatchState


class React(str, enum.Enum):
Expand Down
1 change: 0 additions & 1 deletion server/templates/index.html.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
target="_blank" rel="noopener"
class="list-group-item list-group-item-action flex-column align-items-start"
>

<div class="d-flex w-100 justify-content-between">
{% if patch.state == 0 %}
<p class="m-1"
Expand Down

0 comments on commit 1e77dd6

Please sign in to comment.