aboutsummaryrefslogtreecommitdiff
path: root/models/user.go
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-03-16 05:24:13 -0400
committerUnknown <joe2010xtmf@163.com>2014-03-16 05:24:13 -0400
commitab747f279088c9ed6114c4227c71173ebd1e6f00 (patch)
tree941c225f2aed7933e063e8fb25e98ed6f7b78d50 /models/user.go
parent8de9517862acd77c27da015654fc236a6722d188 (diff)
Fix delete SSH key in file
Diffstat (limited to 'models/user.go')
-rw-r--r--models/user.go12
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