1
0
mirror of https://github.com/fumiama/paper-manager.git synced 2026-06-07 00:40:24 +08:00

fix messages

This commit is contained in:
源文雨
2023-03-21 21:42:01 +08:00
parent 7132aab796
commit ddf7182234
5 changed files with 119 additions and 33 deletions

View File

@@ -153,15 +153,12 @@ func (u *UserDatabase) AddUser(user *User, opname string) error {
if err != nil {
return err
}
err = u.notifyUserAdded(opname, user.Name)
if err != nil {
return err
}
nu, err := u.GetUserByName(user.Name)
if err != nil {
return err
}
return u.SendMessage(opname+"创建了账号", opname, *nu.ID)
_ = u.notifyUserAdded(opname, user.Name, *nu.ID)
return u.SendMessage(opname+" 创建了您的账号", opname, *nu.ID)
}
// UpdateUserInfo ...
@@ -185,7 +182,10 @@ func (u *UserDatabase) UpdateUserInfo(id int, opname, nick, avtr, desc string) e
if err != nil {
return err
}
return u.SendMessage(opname+"更新了个人信息", opname, *user.ID)
if opname != user.Name {
return u.SendMessage(opname+" 更新了您的个人信息", opname, *user.ID)
}
return u.SendMessage("更新了个人信息", opname, *user.ID)
}
// UpdateUserRole ...
@@ -197,6 +197,9 @@ func (u *UserDatabase) UpdateUserRole(id int, nr UserRole, opname string) error
if err != nil {
return err
}
if opname == user.Name {
return ErrInvalidName
}
user.Role = nr
u.mu.Lock()
err = u.db.Insert(UserTableUser, &user)
@@ -204,7 +207,8 @@ func (u *UserDatabase) UpdateUserRole(id int, nr UserRole, opname string) error
if err != nil {
return err
}
return u.SendMessage("您的权限被"+opname+"变更为"+user.Role.Nick(), opname, *user.ID)
_ = u.SendMessage("您的权限被 "+opname+" 变更为 "+user.Role.Nick(), opname, *user.ID)
return u.notifyUpdateUserRole(user.Name, opname, nr, *user.ID)
}
// DisableUser ...
@@ -213,16 +217,19 @@ func (u *UserDatabase) DisableUser(id int, opname string) error {
if err != nil {
return err
}
if opname == user.Name {
return ErrInvalidName
}
user.Last = time.Now().Unix()
user.Pswd = ""
_ = u.SendMessage("账户被"+opname+"禁用", opname, *user.ID)
u.mu.Lock()
err = u.db.Insert(UserTableUser, &user)
u.mu.Unlock()
if err != nil {
return err
}
return u.SendMessage(user.Name+"的账户被"+opname+"禁用", opname, *user.ID)
_ = u.SendMessage("的账户被 "+opname+" 禁用", opname, *user.ID)
return u.notifyDisableUser(user.Name, opname, *user.ID)
}
// UpdateUserPassword ...
@@ -236,14 +243,17 @@ func (u *UserDatabase) UpdateUserPassword(id int, opname, npwd string) error {
}
user.Last = time.Now().Unix()
user.Pswd = npwd
_ = u.notifyPasswordChange(user.Name, npwd)
u.mu.Lock()
err = u.db.Insert(UserTableUser, &user)
u.mu.Unlock()
if err != nil {
return err
}
return u.SendMessage(opname+"更新了密码", opname, *user.ID)
_ = u.notifyPasswordChange(user.Name, npwd, opname, *user.ID)
if user.Name != opname {
return u.SendMessage(opname+" 更新了您的密码", opname, *user.ID)
}
return u.SendMessage("更新了密码", opname, *user.ID)
}
// UpdateUserContact ...
@@ -256,14 +266,17 @@ func (u *UserDatabase) UpdateUserContact(id int, opname, ncont string) error {
return err
}
user.Cont = ncont
_ = u.notifyContactChange(user.Name, ncont)
u.mu.Lock()
err = u.db.Insert(UserTableUser, &user)
u.mu.Unlock()
if err != nil {
return err
}
return u.SendMessage(opname+"更新了联系方式", opname, *user.ID)
_ = u.notifyContactChange(user.Name, ncont, *user.ID)
if user.Name != opname {
return u.SendMessage(opname+" 更新了您的联系方式", opname, *user.ID)
}
return u.SendMessage("更新了联系方式", opname, *user.ID)
}
// GetUserByName avoids sql injection by limiting username to 0-9A-Za-z
@@ -413,7 +426,7 @@ func (u *UserDatabase) SendMessage(text, opname string, to int) error {
m := Message{ToID: to, Date: time.Now().Unix(), Text: text, Cont: opname, Pswd: "opname"}
u.mu.Lock()
defer u.mu.Unlock()
return u.db.InsertUnique(UserTableMessage, m)
return u.db.InsertUnique(UserTableMessage, &m)
}
// NotifyRegister will send register notification to all supers
@@ -511,7 +524,7 @@ func (u *UserDatabase) NotifyResetPassword(ip, name, cont string) error {
}
// notifyUserAdded will send notification to all supers
func (u *UserDatabase) notifyUserAdded(opname, name string) error {
func (u *UserDatabase) notifyUserAdded(opname, name string, nuid int) error {
if opname == "" || name == "" {
return ErrEmptyName
}
@@ -523,12 +536,15 @@ func (u *UserDatabase) notifyUserAdded(opname, name string) error {
m := Message{
Date: time.Now().Unix(),
Text: opname + "添加了用户 " + name,
Text: opname + " 添加了用户 " + name,
Cont: opname,
}
u.mu.Lock()
defer u.mu.Unlock()
for _, to := range tos {
if nuid == to {
continue
}
m.ToID = to
err = u.db.InsertUnique(UserTableMessage, &m)
if err != nil {
@@ -539,7 +555,7 @@ func (u *UserDatabase) notifyUserAdded(opname, name string) error {
}
// notifyContactChange will send notification to all supers
func (u *UserDatabase) notifyContactChange(name, cont string) error {
func (u *UserDatabase) notifyContactChange(name, cont string, id int) error {
if name == "" {
return ErrEmptyName
}
@@ -561,6 +577,9 @@ func (u *UserDatabase) notifyContactChange(name, cont string) error {
u.mu.Lock()
defer u.mu.Unlock()
for _, to := range tos {
if id == to {
continue
}
m.ToID = to
err = u.db.InsertUnique(UserTableMessage, &m)
if err != nil {
@@ -571,7 +590,7 @@ func (u *UserDatabase) notifyContactChange(name, cont string) error {
}
// notifyPasswordChange will send notification to all supers
func (u *UserDatabase) notifyPasswordChange(name, npwd string) error {
func (u *UserDatabase) notifyPasswordChange(name, npwd, opname string, id int) error {
if name == "" {
return ErrEmptyName
}
@@ -583,13 +602,80 @@ func (u *UserDatabase) notifyPasswordChange(name, npwd string) error {
m := Message{
Date: time.Now().Unix(),
Text: "用户 " + name + " 更改了密码",
Text: "用户 " + name + " 被 " + opname + " 更改了密码",
Name: name,
Pswd: npwd,
}
u.mu.Lock()
defer u.mu.Unlock()
for _, to := range tos {
if id == to {
continue
}
m.ToID = to
err = u.db.InsertUnique(UserTableMessage, &m)
if err != nil {
return err
}
}
return nil
}
// notifyPasswordChange will send notification to all supers
func (u *UserDatabase) notifyUpdateUserRole(name, opname string, role UserRole, id int) error {
if name == "" || opname == "" {
return ErrEmptyName
}
tos, err := u.GetSuperIDs()
if err != nil {
return err
}
m := Message{
Date: time.Now().Unix(),
Text: name + " 的权限被 " + opname + " 变更为 " + role.Nick(),
Cont: opname,
Pswd: "opname",
}
u.mu.Lock()
defer u.mu.Unlock()
for _, to := range tos {
if id == to {
continue
}
m.ToID = to
err = u.db.InsertUnique(UserTableMessage, &m)
if err != nil {
return err
}
}
return nil
}
// notifyPasswordChange will send notification to all supers
func (u *UserDatabase) notifyDisableUser(name, opname string, id int) error {
if name == "" || opname == "" {
return ErrEmptyName
}
tos, err := u.GetSuperIDs()
if err != nil {
return err
}
m := Message{
Date: time.Now().Unix(),
Text: name + " 的账户被 " + opname + " 禁用",
Cont: opname,
Pswd: "opname",
}
u.mu.Lock()
defer u.mu.Unlock()
for _, to := range tos {
if id == to {
continue
}
m.ToID = to
err = u.db.InsertUnique(UserTableMessage, &m)
if err != nil {

View File

@@ -37,18 +37,17 @@ func getMessageList(token string) ([]messageList, error) {
am := make(map[string]string, 64)
for i, m := range ms {
avtr := ""
if a, ok := am[m.Name]; ok {
n := m.Name
if n == "" {
n = m.Cont
}
if a, ok := am[n]; ok {
avtr = a
} else {
var u global.User
if m.Name != "" {
u, err = global.UserDB.GetUserByName(m.Name)
} else if m.Cont != "" {
u, err = global.UserDB.GetUserByName(m.Cont)
}
u, err := global.UserDB.GetUserByName(n)
if err == nil {
avtr = u.Avtr
am[m.Name] = u.Avtr
am[n] = u.Avtr
}
}
ml[i].ID = *m.ID

View File

@@ -30,7 +30,7 @@ enum Api {
GetUsersList = '/getUsersList',
IsNameExist = '/isNameExist',
SetRole = '/setRole',
SetStatus = '/setStatus',
DisableUser = '/disableUser',
}
/**
@@ -166,7 +166,7 @@ export function doLogout() {
}
export const setRole = (id: number, role: number) =>
defHttp.post({ url: Api.SetRole, params: { id, role } })
defHttp.post({ url: Api.SetRole, params: { id, role } }, { errorMessageMode: 'none' })
export const setStatus = (id: number, stat: boolean) =>
defHttp.post({ url: Api.SetStatus, params: { id, stat } })
export const disableUser = (id: number, stat: boolean) =>
defHttp.post({ url: Api.DisableUser, params: { id, stat } }, { errorMessageMode: 'none' })

View File

@@ -3,7 +3,7 @@ import { FormSchema } from '/@/components/Table'
import { h } from 'vue'
import { Switch } from 'ant-design-vue'
import { useMessage } from '/@/hooks/web/useMessage'
import { setStatus } from '/@/api/sys/user'
import { disableUser } from '/@/api/sys/user'
export const columns: BasicColumn[] = [
{
@@ -37,7 +37,7 @@ export const columns: BasicColumn[] = [
return
}
record.pendingStatus = true
setStatus(record.id, checked)
disableUser(record.id, checked)
.then(() => {
record.stat = checked
createMessage.success(`已成功禁用账户并清空密码, 如需重新启用, 请让用户找回密码`)

View File

@@ -46,6 +46,7 @@
const { createMessage } = useMessage()
getMessageList().then((value) => {
if (value) dynamicInfoItemsRef.value = value
else dynamicInfoItemsRef.value = []
})
async function accept(id: number) {
try {