diff options
author | Unknown <joe2010xtmf@163.com> | 2014-03-16 05:24:13 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-03-16 05:24:13 -0400 |
commit | ab747f279088c9ed6114c4227c71173ebd1e6f00 (patch) | |
tree | 941c225f2aed7933e063e8fb25e98ed6f7b78d50 /models/user.go | |
parent | 8de9517862acd77c27da015654fc236a6722d188 (diff) |
Fix delete SSH key in file
Diffstat (limited to 'models/user.go')
-rw-r--r-- | models/user.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/models/user.go b/models/user.go index a0e4bb80..ffeb7252 100644 --- a/models/user.go +++ b/models/user.go @@ -142,6 +142,7 @@ func UpdateUser(user *User) (err error) { // DeleteUser completely deletes everything of the user. func DeleteUser(user *User) error { + // Check ownership of repository. count, err := GetRepositoryCount(user) if err != nil { return errors.New("modesl.GetRepositories: " + err.Error()) @@ -151,6 +152,17 @@ func DeleteUser(user *User) error { // TODO: check issues, other repos' commits + // Delete SSH keys. + keys := make([]PublicKey, 0, 10) + if err = orm.Find(&keys, &PublicKey{OwnerId: user.Id}); err != nil { + return err + } + for _, key := range keys { + if err = DeletePublicKey(&key); err != nil { + return err + } + } + _, err = orm.Delete(user) // TODO: delete and update follower information. return err |