mirror of
https://github.com/tickstep/aliyunpan.git
synced 2025-02-02 21:27:15 +08:00
fix switch user error
This commit is contained in:
parent
4727b9696d
commit
54dd4e766b
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user