Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
financial-system
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xianyang
financial-system
Commits
f0623f78
Commit
f0623f78
authored
Mar 13, 2023
by
xianyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改个人信息接口
parent
700fd03a
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
2 deletions
+45
-2
crud.py
app/api/users/crud.py
+18
-0
schemas.py
app/api/users/schemas.py
+7
-0
views.py
app/api/users/views.py
+15
-1
token_verify.py
libs/token_verify.py
+5
-1
No files found.
app/api/users/crud.py
View file @
f0623f78
...
...
@@ -78,3 +78,21 @@ def delete_user(db: Session, user_id: int):
db
.
query
(
models
.
User
)
.
filter
(
models
.
User
.
id
==
user_id
)
.
delete
()
db
.
commit
()
def
update_user_info
(
db
:
Session
,
param
,
user_info
):
res
=
{
"state"
:
True
}
individual_info
=
db
.
query
(
models
.
User
)
.
filter
(
models
.
User
.
id
==
user_info
.
get
(
"user_id"
))
.
first
()
if
param
.
old_pwd
!=
individual_info
.
hashed_password
:
res
[
"state"
]
=
False
res
[
"data"
]
=
"原密码错误!"
return
res
if
param
.
new_pwd
!=
param
.
confirm_pwd
:
res
[
"state"
]
=
False
res
[
"data"
]
=
"两次密码不一致!"
return
res
db
.
query
(
models
.
User
)
.
filter
(
models
.
User
.
id
==
user_info
.
get
(
"user_id"
))
.
update
({
models
.
User
.
username
:
param
.
username
,
models
.
User
.
hashed_password
:
param
.
new_pwd
})
db
.
commit
()
return
res
app/api/users/schemas.py
View file @
f0623f78
...
...
@@ -46,3 +46,10 @@ class UserList(BaseModel):
page
:
Optional
[
int
]
=
None
size
:
Optional
[
int
]
=
None
username
:
Optional
[
str
]
=
""
class
UserUpdate
(
BaseModel
):
username
:
str
old_pwd
:
str
new_pwd
:
str
confirm_pwd
:
str
app/api/users/views.py
View file @
f0623f78
import
pyotp
from
typing
import
List
from
fastapi
import
Depends
,
APIRouter
from
fastapi
import
Depends
,
APIRouter
,
Request
from
datetime
import
timedelta
from
sqlalchemy.orm
import
Session
from
app
import
get_db
from
app.api.statement.guild
import
query_token
from
app.api.users
import
crud
,
schemas
from
app.api.users.login_verification
import
authenticate_user
,
create_access_token
,
get_user
,
authenticate_pwd
from
app.api.users.schemas
import
UserLoginForm
,
GoogleCode
,
GoogleLogin
...
...
@@ -55,6 +56,8 @@ def google_login(data: GoogleLogin, db: Session = Depends(get_db)):
@
router
.
get
(
"/tokenUser"
)
def
token_user
(
token
=
Depends
(
auth_token
),
db
:
Session
=
Depends
(
get_db
)):
"""通过token,获取登录用户信息"""
if
not
token
:
return
HttpResultResponse
(
code
=
401
,
msg
=
"登录已过期"
)
user_data
=
get_current_user
(
db
=
db
,
token
=
token
)
return
HttpResultResponse
(
code
=
200
,
data
=
user_data
)
...
...
@@ -90,3 +93,14 @@ def delete_user(user_id: int, db: Session = Depends(get_db)):
"""用户删除"""
crud
.
delete_user
(
db
,
user_id
)
return
HttpResultResponse
()
@
router
.
post
(
"/update"
)
def
update_individual_info
(
param
:
schemas
.
UserUpdate
,
request
:
Request
,
db
:
Session
=
Depends
(
get_db
)):
"""个人信息修改"""
headers
=
request
.
get
(
"headers"
)
user
=
query_token
(
db
,
headers
)
res
=
crud
.
update_user_info
(
db
,
param
,
user
)
if
res
.
get
(
"state"
):
return
HttpResultResponse
()
return
HttpResultResponse
(
code
=
500
,
msg
=
res
.
get
(
"data"
))
libs/token_verify.py
View file @
f0623f78
import
datetime
import
json
from
sqlalchemy.orm
import
Session
from
fastapi
import
Depends
,
HTTPException
,
status
from
fastapi.security
import
OAuth2PasswordBearer
...
...
@@ -26,7 +28,8 @@ def auth_token(token: str = Depends(oauth2_scheme)):
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
'token过期'
)
return
token
except
JWTError
as
e
:
raise
HTTPException
(
status_code
=
status
.
HTTP_401_UNAUTHORIZED
,
detail
=
f
'{e}'
)
# raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail='登录过期')
return
''
def
get_current_user
(
db
:
Session
,
token
:
str
=
Depends
(
oauth2_scheme
)):
...
...
@@ -47,6 +50,7 @@ def get_current_user(db: Session, token: str = Depends(oauth2_scheme)):
role_info
=
get_id_to_authority
(
db
,
user_info
.
role_id
)
auth_list
=
role_info
.
authority
.
split
(
','
)
json_data
=
{
"user_id"
:
user_data
.
id
,
"username"
:
user_data
.
username
,
"authority"
:
[
int
(
i
)
for
i
in
auth_list
],
"type"
:
0
if
'0'
in
auth_list
else
1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment