API & Client - order on user account status in administration

+ fixes
This commit is contained in:
Sam
2022-03-26 18:28:00 +01:00
parent 614c888ec4
commit eb02ede0d7
8 changed files with 115 additions and 11 deletions

View File

@ -59,14 +59,16 @@ class User(BaseModel):
username: str,
email: str,
password: str,
created_at: Optional[datetime] = datetime.utcnow(),
created_at: Optional[datetime] = None,
) -> None:
self.username = username
self.email = email
self.password = bcrypt.generate_password_hash(
password, current_app.config.get('BCRYPT_LOG_ROUNDS')
).decode()
self.created_at = created_at
self.created_at = (
datetime.utcnow() if created_at is None else created_at
)
@staticmethod
def encode_auth_token(user_id: int) -> str:

View File

@ -172,7 +172,7 @@ def get_users(auth_user: User) -> Dict:
:query integer per_page: number of users per page (default: 10, max: 50)
:query string q: query on user name
:query string order_by: sorting criteria (``username``, ``created_at``,
``workouts_count``, ``admin``)
``workouts_count``, ``admin``, ``is_active``)
:query string order: sorting order (default: ``asc``)
:reqheader Authorization: OAuth 2.0 Bearer Token
@ -221,6 +221,12 @@ def get_users(auth_user: User) -> Dict:
User.admin.desc()
if order_by == 'admin' and order == 'desc'
else True,
User.is_active.asc()
if order_by == 'is_active' and order == 'asc'
else True,
User.is_active.desc()
if order_by == 'is_active' and order == 'desc'
else True,
)
.paginate(page, per_page, False)
)