11from app .services import user_service
2- from flask_jwt_extended import jwt_required , get_jwt , get_jwt_identity , create_access_token
2+ from flask_jwt_extended import jwt_required , get_jwt
33from flask .views import MethodView
4- from flask_smorest import Blueprint , abort
4+ from flask_smorest import Blueprint
55from flask_principal import Permission , RoleNeed
66from app .schemas .user_schema import *
77
8- # Define some permissions
9- # admin_permission = Permission(RoleNeed('user_management'))
8+ # Define permissions
9+ read_permission = Permission (RoleNeed ('read' ))
10+ write_permission = Permission (RoleNeed ('write' ))
11+ delete_permission = Permission (RoleNeed ('delete' ))
1012
1113blp = Blueprint ("User" , __name__ , description = "User API" )
1214
1315@blp .route ("/user" )
1416class UserList (MethodView ):
1517 @jwt_required ()
16- # @admin_permission .require(http_exception=403)
18+ @ read_permission .require (http_exception = 403 )
1719 @blp .response (200 , UserSchema (many = True ))
1820 def get (self ):
1921 result = user_service .get_all_user ()
@@ -22,26 +24,23 @@ def get(self):
2224@blp .route ("/user/<int:user_id>" )
2325class User (MethodView ):
2426 @jwt_required ()
27+ @read_permission .require (http_exception = 403 )
2528 @blp .response (200 , UserSchema )
2629 def get (self , user_id ):
2730 result = user_service .get_user (user_id )
2831 return result
2932
3033 @jwt_required ()
34+ @write_permission .require (http_exception = 403 )
3135 @blp .arguments (UserUpdateSchema )
3236 def put (self , user_data , user_id ):
3337 result = user_service .update_user (user_data , user_id )
3438 return result
35-
36- @jwt_required ()
37- def delete (self , user_id ):
38- result = user_service .delete_user (user_id )
39- return result
4039
4140@blp .route ("/block-user/<int:user_id>" )
4241class BlockUser (MethodView ):
4342 @jwt_required ()
44- # @admin_permission .require(http_exception=403)
43+ @ delete_permission .require (http_exception = 403 )
4544 @blp .arguments (UpdateBlockUserSchema )
4645 def put (self , user_data , user_id ):
4746 result = user_service .update_block_user (user_data , user_id )
0 commit comments