Browse Source

修改项目名称权限修改

liweiquan 2 years ago
parent
commit
6d2f9505e9
2 changed files with 17 additions and 2 deletions
  1. 15 0
      app/common/decorators.py
  2. 2 2
      app/routers/project.py

+ 15 - 0
app/common/decorators.py

@@ -22,6 +22,21 @@ async def verify_super_admin(request: Request, user_token: str = Header(), db: S
     if user.id != 1:
         raise HTTPException(status_code=402, detail='该用户不拥有此权限')
 
+async def verify_super_and_project(request: Request, user_token: str = Header(), item_token: str = Header(), db: Session = Depends(get_db)):
+    try:
+        user = crud.verify_user_token(db, user_token)
+        g.user_id = user.id
+        g.user_name = user.name
+    except Exception as e:
+        raise HTTPException(status_code=401, detail=str(e))
+    if user.id != 1:
+        raise HTTPException(status_code=402, detail='该用户不拥有此权限')
+    try:
+        project = crud.verify_item_token(db, item_token)
+        g.project_id = project.id
+    except Exception as e:
+        raise HTTPException(status_code=403, detail=str(e))
+
 async def verify_all(request: Request, user_token: str = Header(), item_token: str = Header(), db: Session = Depends(get_db)):
     try:
         user = crud.verify_user_token(db, user_token)

+ 2 - 2
app/routers/project.py

@@ -6,7 +6,7 @@ from sqlalchemy.orm import Session
 from app.utils.utils import *
 from utils.sx_time import sxtimeit
 from utils.sx_web import web_try
-from app.common.decorators import verify_special, verify_user, verify_all, verify_super_admin
+from app.common.decorators import verify_special, verify_super_and_project, verify_user, verify_all, verify_super_admin
 from configs.globals import g
 from app import crud, get_db, get_page, schemas
 
@@ -23,7 +23,7 @@ def create_project(item: schemas.ProjectCreate, db: Session = Depends(get_db)):
     return crud.create_project(db,item)
 
 
-@router.put("/update_project", dependencies=[Depends(verify_super_admin)])
+@router.put("/update_project", dependencies=[Depends(verify_super_and_project)])
 @web_try()
 @sxtimeit
 def update_project(item: schemas.ProjectUpdate, db: Session = Depends(get_db)):