aboutsummaryrefslogtreecommitdiff
path: root/models/user.go
diff options
context:
space:
mode:
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