API & Client - order on user account status in administration
+ fixes
This commit is contained in:
		@@ -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:
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
    )
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user