mirror of
https://github.com/moul/sshportal.git
synced 2025-09-06 12:44:35 +08:00
feat: Allow removal by user for 'userkey rm'
The userkey rm command implies that it can remove a key by user or the id key, but it only works against the data base id of the key. This patch allows the userkey rm command to work with the user name, so that all the keys for the user can be cleared out in one command. Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
This commit is contained in:
parent
762736d622
commit
c1c4c556b4
2 changed files with 13 additions and 1 deletions
|
@ -2132,7 +2132,16 @@ GLOBAL OPTIONS:
|
|||
if err := myself.CheckRoles([]string{"admin"}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := dbmodels.UserKeysByIdentifiers(db, c.Args()).Find(&dbmodels.UserKey{}).Error; err != nil {
|
||||
var user dbmodels.User
|
||||
if err := dbmodels.UsersByIdentifiers(db, c.Args()).First(&user).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
if err := dbmodels.UserKeysByUserID(db, []string{fmt.Sprint(user.ID)}).Find(&dbmodels.UserKey{}).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return dbmodels.UserKeysByUserID(db, []string{fmt.Sprint(user.ID)}).Delete(&dbmodels.UserKey{}).Error
|
||||
}
|
||||
return dbmodels.UserKeysByIdentifiers(db, c.Args()).Delete(&dbmodels.UserKey{}).Error
|
||||
},
|
||||
},
|
||||
|
|
|
@ -371,6 +371,9 @@ func UserKeysPreload(db *gorm.DB) *gorm.DB {
|
|||
func UserKeysByIdentifiers(db *gorm.DB, identifiers []string) *gorm.DB {
|
||||
return db.Where("id IN (?)", identifiers)
|
||||
}
|
||||
func UserKeysByUserID(db *gorm.DB, identifiers []string) *gorm.DB {
|
||||
return db.Where("user_id IN (?)", identifiers)
|
||||
}
|
||||
|
||||
// UserRole helpers
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue