]> source.dussan.org Git - gitea.git/commitdiff
Add admin delete user
authorUnknown <joe2010xtmf@163.com>
Sat, 22 Mar 2014 10:20:00 +0000 (06:20 -0400)
committerUnknown <joe2010xtmf@163.com>
Sat, 22 Mar 2014 10:20:00 +0000 (06:20 -0400)
gogs.go
models/action.go
routers/admin/user.go
templates/admin/users/edit.tmpl
web.go

diff --git a/gogs.go b/gogs.go
index 41df79280a192cbad8cd35ed9986d35de0a8277e..8ec4fd42f1da18dcf84b0a3e34ad6421f9b302e5 100644 (file)
--- a/gogs.go
+++ b/gogs.go
@@ -20,7 +20,7 @@ import (
 // Test that go1.2 tag above is included in builds. main.go refers to this definition.
 const go12tag = true
 
-const APP_VER = "0.1.5.0321"
+const APP_VER = "0.1.5.0322"
 
 func init() {
        base.AppVer = APP_VER
index 89751b9779139989f0f4459864a00610c43a8646..12122ae240fb7f41cfff0fb9ad24d8602dab3d5d 100644 (file)
@@ -7,6 +7,8 @@ package models
 import (
        "encoding/json"
        "time"
+
+       "github.com/gogits/gogs/modules/log"
 )
 
 // Operation types of user action.
@@ -89,6 +91,8 @@ func CommitRepoAction(userId int64, userName string,
        if err = UpdateRepository(repo); err != nil {
                return err
        }
+
+       log.Trace("action.CommitRepoAction: %d/%s", userId, repo.LowerName)
        return nil
 }
 
@@ -102,6 +106,8 @@ func NewRepoAction(user *User, repo *Repository) error {
                RepoId:      repo.Id,
                RepoName:    repo.Name,
        })
+
+       log.Trace("action.NewRepoAction: %s/%s", user.LowerName, repo.LowerName)
        return err
 }
 
index d6f852321860f48417c872520d363676288aa3cb..fa27d116648dcf6d596894c7c88eb3b68bd475f4 100644 (file)
@@ -107,3 +107,38 @@ func EditUser(ctx *middleware.Context, params martini.Params, form auth.AdminEdi
        log.Trace("%s User profile updated by admin(%s): %s", ctx.Req.RequestURI,
                ctx.User.LowerName, ctx.User.LowerName)
 }
+
+func DeleteUser(ctx *middleware.Context, params martini.Params) {
+       ctx.Data["Title"] = "Edit Account"
+       ctx.Data["PageIsUsers"] = true
+
+       uid, err := base.StrTo(params["userid"]).Int()
+       if err != nil {
+               ctx.Handle(200, "admin.user.EditUser", err)
+               return
+       }
+
+       u, err := models.GetUserById(int64(uid))
+       if err != nil {
+               ctx.Handle(200, "admin.user.EditUser", err)
+               return
+       }
+
+       if err = models.DeleteUser(u); err != nil {
+               ctx.Data["HasError"] = true
+               switch err {
+               case models.ErrUserOwnRepos:
+                       ctx.Data["ErrorMsg"] = "This account still has ownership of repository, owner has to delete or transfer them first."
+                       ctx.Data["User"] = u
+                       ctx.HTML(200, "admin/users/edit")
+               default:
+                       ctx.Handle(200, "admin.user.DeleteUser", err)
+               }
+               return
+       }
+
+       log.Trace("%s User deleted by admin(%s): %s", ctx.Req.RequestURI,
+               ctx.User.LowerName, ctx.User.LowerName)
+
+       ctx.Redirect("/admin/users", 302)
+}
index 415bcedc92a2fbe4cefd5bdd28ac18c37e1ef00f..2a9882423a8f2839602c0156f30ccd22ebbb0f09 100644 (file)
@@ -71,7 +71,7 @@
                                        <div class="form-group">
                                            <div class="col-md-offset-3 col-md-6">
                                                <button type="submit" class="btn btn-lg btn-primary btn-block">Update account profile</button>
-                                               <!-- <a type="button" href="/admin/users/{{.User.Id}}/delete" class="btn btn-lg btn-danger btn-block">Delete this account</a> -->
+                                               <a type="button" href="/admin/users/{{.User.Id}}/delete" class="btn btn-lg btn-danger btn-block">Delete this account</a>
                                            </div>
                                        </div>
                                </form>
diff --git a/web.go b/web.go
index bb316a67246f6e3f892cfecff3a4f8a71ae371f6..595b8f74ed91a18aae0a71091f751c8a9959a1a2 100644 (file)
--- a/web.go
+++ b/web.go
@@ -119,6 +119,7 @@ func runWeb(*cli.Context) {
        m.Get("/admin/users", reqSignIn, adminReq, admin.Users)
        m.Any("/admin/users/new", reqSignIn, adminReq, binding.BindIgnErr(auth.RegisterForm{}), admin.NewUser)
        m.Any("/admin/users/:userid", reqSignIn, adminReq, binding.BindIgnErr(auth.AdminEditUserForm{}), admin.EditUser)
+       m.Any("/admin/users/:userid/delete", reqSignIn, adminReq, admin.DeleteUser)
        m.Get("/admin/repos", reqSignIn, adminReq, admin.Repositories)
        m.Get("/admin/config", reqSignIn, adminReq, admin.Config)