|
@@ -119,6 +119,10 @@ func (u *User) HomeLink() string {
|
|
|
// AvatarLink returns user gravatar link.
|
|
|
func (u *User) AvatarLink() string {
|
|
|
defaultImgUrl := setting.AppSubUrl + "/img/avatar_default.jpg"
|
|
|
+ if u.Id == -1 {
|
|
|
+ return defaultImgUrl
|
|
|
+ }
|
|
|
+
|
|
|
imgPath := path.Join(setting.AvatarUploadPath, com.ToStr(u.Id))
|
|
|
switch {
|
|
|
case u.UseCustomAvatar:
|
|
@@ -321,6 +325,15 @@ func GetUserSalt() string {
|
|
|
return base.GetRandomString(10)
|
|
|
}
|
|
|
|
|
|
+// NewFakeUser creates and returns a fake user for someone has deleted his/her account.
|
|
|
+func NewFakeUser() *User {
|
|
|
+ return &User{
|
|
|
+ Id: -1,
|
|
|
+ Name: "Someone",
|
|
|
+ LowerName: "someone",
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// CreateUser creates record of a new user.
|
|
|
func CreateUser(u *User) (err error) {
|
|
|
if err = IsUsableName(u.Name); err != nil {
|
|
@@ -546,6 +559,7 @@ func DeleteUser(u *User) error {
|
|
|
&Collaboration{UserID: u.Id},
|
|
|
&EmailAddress{Uid: u.Id},
|
|
|
&Watch{UserID: u.Id},
|
|
|
+ &IssueUser{UID: u.Id},
|
|
|
); err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -563,11 +577,16 @@ func DeleteUser(u *User) error {
|
|
|
return err
|
|
|
}
|
|
|
for _, key := range keys {
|
|
|
- if err = DeletePublicKey(key); err != nil {
|
|
|
+ if err = deletePublicKey(sess, key); err != nil {
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // Clear assignee.
|
|
|
+ if _, err = sess.Exec("UPDATE `issue` SET assignee_id=0 WHERE assignee_id=?", u.Id); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
if _, err = sess.Delete(u); err != nil {
|
|
|
return err
|
|
|
}
|