Unknown hace 11 años
padre
commit
bcafba47e8
Se han modificado 1 ficheros con 8 adiciones y 5 borrados
  1. 8 5
      models/publickey.go

+ 8 - 5
models/publickey.go

@@ -6,6 +6,7 @@ package models
 
 
 import (
 import (
 	"bufio"
 	"bufio"
+	"errors"
 	"fmt"
 	"fmt"
 	"io"
 	"io"
 	"os"
 	"os"
@@ -88,6 +89,12 @@ func AddPublicKey(key *PublicKey) error {
 
 
 // DeletePublicKey deletes SSH key information both in database and authorized_keys file.
 // DeletePublicKey deletes SSH key information both in database and authorized_keys file.
 func DeletePublicKey(key *PublicKey) (err error) {
 func DeletePublicKey(key *PublicKey) (err error) {
+	has, err := orm.Id(key.Id).Get(key)
+	if err != nil {
+		return err
+	} else if !has {
+		return errors.New("Public key does not exist")
+	}
 	if _, err = orm.Delete(key); err != nil {
 	if _, err = orm.Delete(key); err != nil {
 		return err
 		return err
 	}
 	}
@@ -128,12 +135,8 @@ func DeletePublicKey(key *PublicKey) (err error) {
 
 
 		// Found the line and copy rest of file.
 		// Found the line and copy rest of file.
 		if strings.Contains(line, key.Content) {
 		if strings.Contains(line, key.Content) {
-			if _, err = io.Copy(fw, fr); err != nil {
-				return err
-			}
-			break
+			continue
 		}
 		}
-
 		// Still finding the line, copy the line that currently read.
 		// Still finding the line, copy the line that currently read.
 		if _, err = fw.WriteString(line + "\n"); err != nil {
 		if _, err = fw.WriteString(line + "\n"); err != nil {
 			return err
 			return err