Skip to content

Commit 39f5736

Browse files
authored
feat: 增加首次进入系统强制修改用户密码功能(#3)
1 parent 553af5f commit 39f5736

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

apps/users/serializers/user_serializers.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,8 @@ def get_user_profile(user: User):
418418
permission_list = get_user_dynamics_permission(str(user.id))
419419
permission_list += [p.value for p in get_permission_list_by_role(RoleConstants[user.role])]
420420
return {'id': user.id, 'username': user.username, 'email': user.email, 'role': user.role,
421-
'permissions': [str(p) for p in permission_list]}
421+
'permissions': [str(p) for p in permission_list],
422+
'is_edit_password': user.password == 'd880e722c47a34d8e9fce789fc62389d' if user.role == 'ADMIN' else False}
422423

423424
@staticmethod
424425
def get_response_body_api():

ui/src/api/type/user.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ interface User {
1919
* 用户权限
2020
*/
2121
permissions: Array<string>
22+
/**
23+
* 是否需要修改密码
24+
*/
25+
is_edit_password?: boolean
2226
}
2327

2428
interface LoginRequest {

ui/src/layout/components/top-bar/avatar/index.vue

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,19 @@
3030
</el-dropdown>
3131
<ResetPassword ref="resetPasswordRef"></ResetPassword>
3232
<AboutDialog ref="AboutDialogRef"></AboutDialog>
33+
<UserPwdDialog ref="UserPwdDialogRef" />
3334
</template>
3435
<script setup lang="ts">
35-
import { ref } from 'vue'
36+
import { ref, onMounted } from 'vue'
3637
import useStore from '@/stores'
3738
import { useRouter } from 'vue-router'
3839
import ResetPassword from './ResetPassword.vue'
3940
import AboutDialog from './AboutDialog.vue'
41+
import UserPwdDialog from '@/views/user-manage/component/UserPwdDialog.vue'
4042
const { user } = useStore()
4143
const router = useRouter()
4244
45+
const UserPwdDialogRef = ref()
4346
const AboutDialogRef = ref()
4447
const resetPasswordRef = ref<InstanceType<typeof ResetPassword>>()
4548
@@ -56,6 +59,12 @@ const logout = () => {
5659
router.push({ name: 'login' })
5760
})
5861
}
62+
63+
onMounted(() => {
64+
if (user.userInfo?.is_edit_password) {
65+
UserPwdDialogRef.value.open(user.userInfo)
66+
}
67+
})
5968
</script>
6069
<style lang="scss" scoped>
6170
.avatar-dropdown {

0 commit comments

Comments
 (0)