fix switch user error

This commit is contained in:
tickstep 2024-04-02 09:42:08 +08:00
parent 4727b9696d
commit 54dd4e766b
3 changed files with 18 additions and 7 deletions

View File

@ -46,7 +46,7 @@ func CmdSu() cli.Command {
示例:
aliyunpan su
aliyunpan su <uid or name>
aliyunpan su <uid>
`,
Category: "阿里云盘账号",
Before: ReloadConfigFunc,
@ -94,7 +94,7 @@ func CmdSu() cli.Command {
cli.ShowCommandHelp(c, c.Command.Name)
}
switchedUser, err := config.Config.SwitchUser(uid, inputData)
switchedUser, err := config.Config.SwitchUser(uid)
if err != nil {
fmt.Printf("切换用户失败, %s\n", err)
return nil

View File

@ -225,7 +225,7 @@ func RefreshOpenTokenInNeed(activeUser *config.PanUser) bool {
if activeUser.OpenapiToken != nil && len(activeUser.OpenapiToken.AccessToken) > 0 {
cz := time.FixedZone("CST", 8*3600) // 东8区
expiredTime := time.Unix(activeUser.OpenapiToken.Expired, 0).In(cz)
now := time.Now()
now := time.Now().In(cz)
if (expiredTime.Unix() - now.Unix()) <= (2 * 60) { // 有效期小于2min就刷新
pluginManger := plugins.NewPluginManager(config.GetPluginDir())
plugin, _ := pluginManger.GetPlugin()

View File

@ -424,6 +424,9 @@ func (c *PanConfig) ActiveUser() *PanUser {
u.WorkdirFileEntity = *aliyunpan.NewFileEntityForRootDir()
} else {
u.WorkdirFileEntity = *fe
if u.Workdir == "" {
u.Workdir = "/"
}
}
} else if user.IsResourceDriveActive() {
fe, err1 := u.PanClient().OpenapiPanClient().FileInfoByPath(u.ActiveDriveId, u.ResourceWorkdir)
@ -433,6 +436,9 @@ func (c *PanConfig) ActiveUser() *PanUser {
u.ResourceWorkdirFileEntity = *aliyunpan.NewFileEntityForRootDir()
} else {
u.ResourceWorkdirFileEntity = *fe
if u.ResourceWorkdir == "" {
u.ResourceWorkdir = "/"
}
}
} else if user.IsAlbumDriveActive() {
fe, err1 := u.PanClient().WebapiPanClient().FileInfoByPath(u.ActiveDriveId, u.AlbumWorkdir)
@ -442,6 +448,9 @@ func (c *PanConfig) ActiveUser() *PanUser {
u.AlbumWorkdirFileEntity = *aliyunpan.NewFileEntityForRootDir()
} else {
u.AlbumWorkdirFileEntity = *fe
if u.AlbumWorkdir == "" {
u.AlbumWorkdir = "/"
}
}
}
}
@ -463,7 +472,9 @@ func (c *PanConfig) SetActiveUser(user *PanUser) *PanUser {
u.WebapiToken = user.WebapiToken
u.OpenapiToken = user.OpenapiToken
u.TicketId = user.TicketId
if u.PanClient() != nil && user.PanClient() != nil {
u.UpdateClient(user.PanClient().OpenapiPanClient(), user.PanClient().WebapiPanClient())
}
needToInsert = false
break
}
@ -491,9 +502,9 @@ func (c *PanConfig) NumLogins() int {
}
// SwitchUser 切换登录用户
func (c *PanConfig) SwitchUser(uid, username string) (*PanUser, error) {
func (c *PanConfig) SwitchUser(uid string) (*PanUser, error) {
for _, u := range c.UserList {
if u.UserId == uid || u.AccountName == username {
if u.UserId == uid {
return c.SetActiveUser(u), nil
}
}
@ -509,7 +520,7 @@ func (c *PanConfig) DeleteUser(uid string) (*PanUser, error) {
c.ActiveUID = ""
c.activeUser = nil
if len(c.UserList) > 0 {
c.SwitchUser(c.UserList[0].UserId, "")
c.SwitchUser(c.UserList[0].UserId)
}
return u, nil
}