mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-02 15:10:43 +02:00
1 parent
e5ed5904c6
commit
83e747bfda
15 files changed
+183
-156
No files matched your search
@@ -5,7 +5,7 @@ Gogs - Go Git Service [
|

|
||||||
|
|
||||||
##### Current version: 0.6.11 Beta
|
##### Current version: 0.6.12 Beta
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
+2
-2
@@ -99,8 +99,8 @@ ENABLE_REVERSE_PROXY_AUTHENTICATION = false
|
|||||||
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false
|
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false
|
||||||
; Do not check minimum key size with corresponding type
|
; Do not check minimum key size with corresponding type
|
||||||
DISABLE_MINIMUM_KEY_SIZE_CHECK = false
|
DISABLE_MINIMUM_KEY_SIZE_CHECK = false
|
||||||
; Disable captcha validation for registration
|
; Enable captcha validation for registration
|
||||||
DISABLE_CAPTCHA = false
|
ENABLE_CAPTCHA = true
|
||||||
|
|
||||||
[webhook]
|
[webhook]
|
||||||
; Hook task queue length
|
; Hook task queue length
|
||||||
|
|||||||
@@ -785,6 +785,7 @@ users.edit = Edit
|
|||||||
users.auth_source = Authentication Source
|
users.auth_source = Authentication Source
|
||||||
users.local = Local
|
users.local = Local
|
||||||
users.auth_login_name = Authentication Login Name
|
users.auth_login_name = Authentication Login Name
|
||||||
|
users.password_helper = Leave it empty to remain unchanged.
|
||||||
users.update_profile_success = Account profile has been updated successfully.
|
users.update_profile_success = Account profile has been updated successfully.
|
||||||
users.edit_account = Edit Account
|
users.edit_account = Edit Account
|
||||||
users.is_activated = This account is activated
|
users.is_activated = This account is activated
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import (
|
|||||||
"github.com/gogits/gogs/modules/setting"
|
"github.com/gogits/gogs/modules/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
const APP_VER = "0.6.11.0913 Beta"
|
const APP_VER = "0.6.12.0913 Beta"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||||
|
|||||||
+16
-4
@@ -10,17 +10,29 @@ import (
|
|||||||
"github.com/macaron-contrib/binding"
|
"github.com/macaron-contrib/binding"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type AdminCrateUserForm struct {
|
||||||
|
LoginType string `binding:"Required"`
|
||||||
|
LoginName string
|
||||||
|
UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"`
|
||||||
|
Email string `binding:"Required;Email;MaxSize(254)"`
|
||||||
|
Password string `binding:"MaxSize(255)"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *AdminCrateUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
|
||||||
|
return validate(errs, ctx.Data, f, ctx.Locale)
|
||||||
|
}
|
||||||
|
|
||||||
type AdminEditUserForm struct {
|
type AdminEditUserForm struct {
|
||||||
FullName string `form:"fullname" binding:"MaxSize(100)"`
|
LoginType string `binding:"Required"`
|
||||||
|
LoginName string
|
||||||
|
FullName string `binding:"MaxSize(100)"`
|
||||||
Email string `binding:"Required;Email;MaxSize(254)"`
|
Email string `binding:"Required;Email;MaxSize(254)"`
|
||||||
Password string `binding:"OmitEmpty;MinSize(6);MaxSize(255)"`
|
Password string `binding:"MaxSize(255)"`
|
||||||
Website string `binding:"MaxSize(50)"`
|
Website string `binding:"MaxSize(50)"`
|
||||||
Location string `binding:"MaxSize(50)"`
|
Location string `binding:"MaxSize(50)"`
|
||||||
Avatar string `binding:"Required;Email;MaxSize(50)"`
|
|
||||||
Active bool
|
Active bool
|
||||||
Admin bool
|
Admin bool
|
||||||
AllowGitHook bool
|
AllowGitHook bool
|
||||||
LoginType int
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *AdminEditUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
|
func (f *AdminEditUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
|
||||||
|
|||||||
@@ -78,18 +78,6 @@ func (f *SignInForm) Validate(ctx *macaron.Context, errs binding.Errors) binding
|
|||||||
return validate(errs, ctx.Data, f, ctx.Locale)
|
return validate(errs, ctx.Data, f, ctx.Locale)
|
||||||
}
|
}
|
||||||
|
|
||||||
type AdminCrateUserForm struct {
|
|
||||||
UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"`
|
|
||||||
Email string `binding:"Required;Email;MaxSize(254)"`
|
|
||||||
Password string `binding:"MaxSize(255)"`
|
|
||||||
LoginType string
|
|
||||||
LoginName string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *AdminCrateUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
|
|
||||||
return validate(errs, ctx.Data, f, ctx.Locale)
|
|
||||||
}
|
|
||||||
|
|
||||||
// __________________________________________.___ _______ ________ _________
|
// __________________________________________.___ _______ ________ _________
|
||||||
// / _____/\_ _____/\__ ___/\__ ___/| |\ \ / _____/ / _____/
|
// / _____/\_ _____/\__ ___/\__ ___/| |\ \ / _____/ / _____/
|
||||||
// \_____ \ | __)_ | | | | | |/ | \/ \ ___ \_____ \
|
// \_____ \ | __)_ | | | | | |/ | \/ \ ___ \_____ \
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ func (fi bindataFileInfo) Sys() interface{} {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x5a\x5b\x8f\xe3\x46\x76\x7e\xe7\xaf\x28\xcb\x71\x3c\x0e\x24\xf5\xcd\x73\x71\xdb\x9d\x58\x2d\x51\xdd\xda\xd1\xcd\xa4\x34\xe3\xf1\x60\xc0\x61\x93\x25\x89\x6e\x8a\xd4\xb0\xc8\xee\x91\x91\x87\x35\xf2\x10\x20\x8f\xc9\x22\x79\x09\x82\xe4\x21\x08\xb0\xb9\x20\x8b\xbc\xec\x6e\x90\x27\x23\xef\x33\xff\xc1\xf0\x6e\xfe\x45\xbe\x73\xaa\x28\x51\x3d\xed\x59\xef\x26\x8b\x19\xb4\xa8\x62\xd5\xa9\x3a\x5f\x9d\xcb\x77\xaa\xf4\xae\x18\xda\x8f\x6c\x47\xf0\x9f\xc1\xa8\xd3\xeb\x3e\x11\x93\xf3\x9e\x2b\xba\xbd\xbe\x6d\xbd\x2b\xc6\x7d\xbb\xe5\xda\x62\xd0\x7a\x68\x8b\xf6\x79\x6b\x78\x66\xbb\x62\x34\x14\xed\x91\xe3\xd8\xee\x78\x34\xec\xf4\x86\x67\xa2\x3d\x75\x27\xa3\x01\x1a\x87\xdd\xde\x99\x1e\x69\x7d\x2c\x5a\xab\x95\x48\xfc\xa5\x14\xf9\xc2\xcf\x85\x5a\xa4\xd7\x4a\xa4\x89\x90\x57\x32\x5b\x8b\x95\x3f\xc7\x8b\x28\x8f\xa5\xd5\x1a\x8f\xbd\x61\x6b\x60\x8b\x13\x71\x96\xce\xd5\x31\xfe\x8a\xb3\x28\x17\xae\xcc\xae\xa2\x40\x42\x52\x7b\xe1\x27\xe8\x8e\xb6\x68\x26\xd6\x69\x21\xb2\x22\x11\x71\x1a\xf8\x71\xbc\xb6\x9c\xe9\xd0\x9b\xba\x58\xfd\x89\x98\x47\x39\x7a\xdb\x51\xbe\x90\x99\xa8\x85\xf2\xaa\x56\x17\xb5\x55\x96\x86\x35\x91\xa2\x21\x97\x2a\x47\x4b\x28\x67\x7e\x11\x43\x96\xd2\x7d\x58\x02\x54\xa7\x05\xe0\xbb\x65\x3d\xcd\xe4\x2a\x55\x51\x9e\x66\xeb\x67\x96\x33\x1a\x4d\xc4\x89\xe5\xb6\x9d\xde\x78\xe2\x4d\x9e\x8c\xa9\xdb\x85\xaf\x16\xe8\x57\x44\xcf\x30\xdf\xb0\x58\x5e\x60\xbe\x74\x26\x36\xe3\x22\xa9\xb4\xd6\x7e\x26\x59\x73\x19\x8a\x28\x81\xf6\x52\xc8\x97\xab\x38\x45\x2b\x01\x60\xd9\x9f\x8f\xfb\x23\xc7\xf6\xc6\xad\x33\xe0\xe8\x0d\xa7\x03\x08\x3f\xdc\xdf\x11\x1a\x29\x55\x7c\xbf\x38\x16\xd3\x73\xdd\xe9\x0d\x21\x07\xfb\xbc\xbe\xa6\x1f\x2e\xa3\xc4\xac\x52\xcb\x2b\x94\xcc\xde\x2e\x8e\xd0\xdc\x95\x76\x97\xa4\x2d\xfd\xec\x32\x4c\xaf\x59\x9a\x9d\xf8\x17\xb1\x14\x0b\x3f\x0b\x45\x1c\x61\xe0\x45\x26\xfd\x4b\x28\x97\xcb\x44\x45\x69\x62\xd9\xc3\xd6\x69\xdf\xf6\xce\x5b\x4e\xc7\xeb\xf7\x86\xb6\x77\xea\xd8\xad\x87\x10\x35\xf3\x63\x25\x21\x0d\xab\x80\x21\x3c\xb3\xc6\xce\x68\x32\x6a\x8f\xfa\x78\xb5\xc8\xf3\x95\xd5\x19\x0d\x5a\xbd\x21\xbe\xf1\xfe\x2e\x52\x95\xf3\x16\x78\x53\x87\xba\xbc\x77\xa7\xec\xff\x81\x3a\xde\xdb\x7b\xef\x8e\xee\x8e\x2f\xef\xdd\x39\x9f\x4c\xc6\xde\x78\xe4\x4c\x3e\x50\x7b\x16\x7f\x69\x75\x3a\x30\x0b\x6b\xf3\x02\x02\x8e\xf6\xf7\x09\xde\x4e\xa4\x58\x01\xd7\x3d\x17\x33\xe9\xe7\x05\x90\xb8\x5e\xc8\x44\x24\x29\x60\xb9\xf2\xa3\x98\x5e\x5b\x9d\x9e\xcb\x6a\x50\xb7\x72\xe9\x78\x2e\x85\x1d\x1e\x56\x44\xb5\x3b\x43\xb2\xed\x84\xa0\x34\x46\xb7\x4c\x43\x69\x8d\xba\x5d\x06\xc0\x58\x98\x16\x52\x0a\x76\x46\xd3\x09\xc0\xee\x8f\xce\x36\xaf\x3e\x16\x67\x32\x91\x99\x9f\x63\x6f\x72\xb9\x52\xc7\x68\xf9\x03\x11\x84\xd8\x9b\x7c\xb1\x97\xa7\x7b\x73\x38\xc9\x5e\x50\xa8\x3c\x5d\xee\x11\x64\x8a\x3b\x34\xb9\x5d\x04\x32\xcb\x45\x23\xf0\x4f\xf2\xac\x90\xa2\x11\x16\x10\x84\xfd\x38\x79\x70\xff\xde\xfe\x62\x7f\xb9\xaf\x44\x83\x30\x3d\x59\xae\xe9\xa3\x29\x5f\xfa\xcb\x55\x2c\x9b\x41\xba\xb4\x3e\x86\x9c\x51\x26\x66\x59\xba\x14\xbe\x68\xae\x66\x2f\xc5\x2c\x8a\xd9\x62\xd3\x2c\x87\x8d\xf0\x1b\xf8\x96\x78\x1c\x25\x21\x79\x33\x4d\x16\xcd\xa2\x40\xaf\x95\xac\xfa\x4e\x98\x42\x0a\x81\x38\x4b\xb3\xb9\xcc\x45\x9e\x9a\xf1\x3c\x70\x95\x45\x57\xd4\xf9\x52\xae\x3f\xd0\x7a\xa5\x2b\x18\x8c\x8a\xc5\xea\x32\x50\x07\x87\xa2\x01\xf0\x48\x2a\xcf\xde\x48\x8b\xdc\x7c\x93\x4b\xd1\x48\x52\x0c\x53\x3f\x6c\x14\x7a\x96\x83\xe8\x85\xa2\x87\x50\x2a\xab\x6d\x3b\x13\x8f\x02\x14\xe0\xae\x42\xb8\x57\x4e\x63\x3d\xb4\x9f\xdc\xda\xc1\x48\xc4\xf4\xd3\xd5\x0a\x9e\x14\x63\xaf\x63\xf2\xa7\x5c\x02\x41\x52\xca\x4f\x42\xa0\x00\xb8\x03\x8d\x1b\xed\x17\xba\x57\xc2\x0d\x43\x80\x56\x32\x35\x80\x45\xd1\x8e\x9a\xe5\x4b\x19\x14\x00\xd8\x72\x27\xad\x49\xaf\xed\xb1\xbd\x8f\x5b\x13\xd8\x9c\x0e\xa3\x31\x41\x8c\x5d\x34\x93\x9e\x7d\xd1\x1b\x0b\x55\xac\x08\xd6\xd2\xd1\xb8\x6d\x6b\x42\x7d\x2c\x26\x4a\xe6\x3a\xcc\x62\x2b\xb0\x25\x49\x23\x4e\xe7\x73\x6c\x23\x07\x80\xba\x08\xfc\x44\x5c\x48\x51\x5b\xa4\x4b\xa9\xe3\xa3\x09\x4d\x35\xab\xdf\xe2\xb8\x4e\x31\x80\x70\xa0\x1e\xf0\xd8\xd0\xcf\x7d\x04\x3e\xf9\xac\x12\x63\x97\x6b\xf5\x22\xe6\x28\x0b\x6b\x9a\x67\x52\x69\x49\x68\x8c\x72\x79\x84\x17\x51\xfe\xbe\xa2\x90\x9d\x89\x60\x91\x52\x34\xef\x9c\x96\x41\x94\xc7\x5a\xe7\x23\x97\x5c\xe9\xe0\xf0\x7e\x73\x1f\xff\x0e\x8e\x8f\x8e\xf6\xef\x59\x26\x1f\x90\x49\x5b\x26\xb8\x67\x69\x9a\x5b\xe3\x96\xeb\x3e\xee\x30\x2e\x5d\x9a\xa8\x32\x6d\x12\xaf\xeb\x42\x96\xb1\x5f\x3b\x25\xad\x2c\x93\x2f\x8a\x28\x33\x2a\x22\xe4\x44\xb3\x75\x63\x56\xc4\x71\x0d\x9e\xdc\xdf\xc4\x7d\xdd\xbf\x14\x5b\xae\x9f\xf7\xb4\x96\x47\xe1\x45\xcd\xd2\x1b\x22\x08\x05\x76\xb5\x66\x78\x01\x50\x4c\x7c\xa5\x78\x16\x14\x59\x94\x23\x63\xf4\x86\xd8\xc7\x7e\x1f\x4e\xdd\x7e\x58\xd9\x92\x77\xde\xd1\xf9\x53\xa7\xd7\xc9\x48\x3c\xb4\xed\xb1\x78\x32\x9a\x3a\x82\x35\xec\xb4\x26\x2d\xe1\xb6\xba\xf6\x3b\xef\x58\xae\xdd\x76\xec\x89\x07\x5b\x84\x80\x77\xde\xfd\xb4\xdb\xb1\x1f\x3b\xf8\xff\x87\x7f\x74\x87\x2c\xa2\xc8\x53\xda\x4c\x58\x7d\x26\x97\x92\x13\x45\xe8\xc3\x35\x10\x46\x7a\x43\xcf\xb1\x07\xf6\xe0\x14\x51\xa5\xd3\x7a\xe2\x62\xfc\x7d\xab\x3d\x1a\x3d\Line truncated
|
var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x5a\x5b\x8f\xe3\x46\x76\x7e\xe7\xaf\x28\xcb\x71\x3c\x0e\x24\xf5\xcd\x73\x71\xdb\x9d\x58\x2d\x51\xdd\xda\xd1\xcd\xa4\x34\xe3\xf1\x60\xc0\x61\x93\x25\x89\x6e\x8a\xd4\xb0\xc8\xee\x91\x91\x87\x35\xf2\x10\x20\x8f\xc9\x22\x79\x09\x82\xe4\x21\x08\xb0\xb9\x20\x8b\xbc\xec\x6e\x90\x27\x23\xef\x33\xff\xc1\xf0\x6e\xfe\x45\xbe\x73\xaa\x28\x51\x3d\xed\x59\xef\x26\x8b\x19\xb4\xa8\x62\xd5\xa9\x3a\x5f\x9d\xcb\x77\xaa\xf4\xae\x18\xda\x8f\x6c\x47\xf0\x9f\xc1\xa8\xd3\xeb\x3e\x11\x93\xf3\x9e\x2b\xba\xbd\xbe\x6d\xbd\x2b\xc6\x7d\xbb\xe5\xda\x62\xd0\x7a\x68\x8b\xf6\x79\x6b\x78\x66\xbb\x62\x34\x14\xed\x91\xe3\xd8\xee\x78\x34\xec\xf4\x86\x67\xa2\x3d\x75\x27\xa3\x01\x1a\x87\xdd\xde\x99\x1e\x69\x7d\x2c\x5a\xab\x95\x48\xfc\xa5\x14\xf9\xc2\xcf\x85\x5a\xa4\xd7\x4a\xa4\x89\x90\x57\x32\x5b\x8b\x95\x3f\xc7\x8b\x28\x8f\xa5\xd5\x1a\x8f\xbd\x61\x6b\x60\x8b\x13\x71\x96\xce\xd5\x31\xfe\x8a\xb3\x28\x17\xae\xcc\xae\xa2\x40\x42\x52\x7b\xe1\x27\xe8\x8e\xb6\x68\x26\xd6\x69\x21\xb2\x22\x11\x71\x1a\xf8\x71\xbc\xb6\x9c\xe9\xd0\x9b\xba\x58\xfd\x89\x98\x47\x39\x7a\xdb\x51\xbe\x90\x99\xa8\x85\xf2\xaa\x56\x17\xb5\x55\x96\x86\x35\x91\xa2\x21\x97\x2a\x47\x4b\x28\x67\x7e\x11\x43\x96\xd2\x7d\x58\x02\x54\xa7\x05\xe0\xbb\x65\x3d\xcd\xe4\x2a\x55\x51\x9e\x66\xeb\x67\x96\x33\x1a\x4d\xc4\x89\xe5\xb6\x9d\xde\x78\xe2\x4d\x9e\x8c\xa9\xdb\x85\xaf\x16\xe8\x57\x44\xcf\x30\xdf\xb0\x58\x5e\x60\xbe\x74\x26\x36\xe3\x22\xa9\xb4\xd6\x7e\x26\x59\x73\x19\x8a\x28\x81\xf6\x52\xc8\x97\xab\x38\x45\x2b\x01\x60\xd9\x9f\x8f\xfb\x23\xc7\xf6\xc6\xad\x33\xe0\xe8\x0d\xa7\x03\x08\x3f\xdc\xdf\x11\x1a\x29\x55\x7c\xbf\x38\x16\xd3\x73\xdd\xe9\x0d\x21\x07\xfb\xbc\xbe\xa6\x1f\x2e\xa3\xc4\xac\x52\xcb\x2b\x94\xcc\xde\x2e\x8e\xd0\xdc\x95\x76\x97\xa4\x2d\xfd\xec\x32\x4c\xaf\x59\x9a\x9d\xf8\x17\xb1\x14\x0b\x3f\x0b\x45\x1c\x61\xe0\x45\x26\xfd\x4b\x28\x97\xcb\x44\x45\x69\x62\xd9\xc3\xd6\x69\xdf\xf6\xce\x5b\x4e\xc7\xeb\xf7\x86\xb6\x77\xea\xd8\xad\x87\x10\x35\xf3\x63\x25\x21\x0d\xab\x80\x21\x3c\xb3\xc6\xce\x68\x32\x6a\x8f\xfa\x78\xb5\xc8\xf3\x95\xd5\x19\x0d\x5a\xbd\x21\xbe\xf1\xfe\x2e\x52\x95\xf3\x16\x78\x53\x87\xba\xbc\x77\xa7\xec\xff\x81\x3a\xde\xdb\x7b\xef\x8e\xee\x8e\x2f\xef\xdd\x39\x9f\x4c\xc6\xde\x78\xe4\x4c\x3e\x50\x7b\x16\x7f\x69\x75\x3a\x30\x0b\x6b\xf3\x02\x02\x8e\xf6\xf7\x09\xde\x4e\xa4\x58\x01\xd7\x3d\x17\x33\xe9\xe7\x05\x90\xb8\x5e\xc8\x44\x24\x29\x60\xb9\xf2\xa3\x98\x5e\x5b\x9d\x9e\xcb\x6a\x50\xb7\x72\xe9\x78\x2e\x85\x1d\x1e\x56\x44\xb5\x3b\x43\xb2\xed\x84\xa0\x34\x46\xb7\x4c\x43\x69\x8d\xba\x5d\x06\xc0\x58\x98\x16\x52\x0a\x76\x46\xd3\x09\xc0\xee\x8f\xce\x36\xaf\x3e\x16\x67\x32\x91\x99\x9f\x63\x6f\x72\xb9\x52\xc7\x68\xf9\x03\x11\x84\xd8\x9b\x7c\xb1\x97\xa7\x7b\x73\x38\xc9\x5e\x50\xa8\x3c\x5d\xee\x11\x64\x8a\x3b\x34\xb9\x5d\x04\x32\xcb\x45\x23\xf0\x4f\xf2\xac\x90\xa2\x11\x16\x10\x84\xfd\x38\x79\x70\xff\xde\xfe\x62\x7f\xb9\xaf\x44\x83\x30\x3d\x59\xae\xe9\xa3\x29\x5f\xfa\xcb\x55\x2c\x9b\x41\xba\xb4\x3e\x86\x9c\x51\x26\x66\x59\xba\x14\xbe\x68\xae\x66\x2f\xc5\x2c\x8a\xd9\x62\xd3\x2c\x87\x8d\xf0\x1b\xf8\x96\x78\x1c\x25\x21\x79\x33\x4d\x16\xcd\xa2\x40\xaf\x95\xac\xfa\x4e\x98\x42\x0a\x81\x38\x4b\xb3\xb9\xcc\x45\x9e\x9a\xf1\x3c\x70\x95\x45\x57\xd4\xf9\x52\xae\x3f\xd0\x7a\xa5\x2b\x18\x8c\x8a\xc5\xea\x32\x50\x07\x87\xa2\x01\xf0\x48\x2a\xcf\xde\x48\x8b\xdc\x7c\x93\x4b\xd1\x48\x52\x0c\x53\x3f\x6c\x14\x7a\x96\x83\xe8\x85\xa2\x87\x50\x2a\xab\x6d\x3b\x13\x8f\x02\x14\xe0\xae\x42\xb8\x57\x4e\x63\x3d\xb4\x9f\xdc\xda\xc1\x48\xc4\xf4\xd3\xd5\x0a\x9e\x14\x63\xaf\x63\xf2\xa7\x5c\x02\x41\x52\xca\x4f\x42\xa0\x00\xb8\x03\x8d\x1b\xed\x17\xba\x57\xc2\x0d\x43\x80\x56\x32\x35\x80\x45\xd1\x8e\x9a\xe5\x4b\x19\x14\x00\xd8\x72\x27\xad\x49\xaf\xed\xb1\xbd\x8f\x5b\x13\xd8\x9c\x0e\xa3\x31\x41\x8c\x5d\x34\x93\x9e\x7d\xd1\x1b\x0b\x55\xac\x08\xd6\xd2\xd1\xb8\x6d\x6b\x42\x7d\x2c\x26\x4a\xe6\x3a\xcc\x62\x2b\xb0\x25\x49\x23\x4e\xe7\x73\x6c\x23\x07\x80\xba\x08\xfc\x44\x5c\x48\x51\x5b\xa4\x4b\xa9\xe3\xa3\x09\x4d\x35\xab\xdf\xe2\xb8\x4e\x31\x80\x70\xa0\x1e\xf0\xd8\xd0\xcf\x7d\x04\x3e\xf9\xac\x12\x63\x97\x6b\xf5\x22\xe6\x28\x0b\x6b\x9a\x67\x52\x69\x49\x68\x8c\x72\x79\x84\x17\x51\xfe\xbe\xa2\x90\x9d\x89\x60\x91\x52\x34\xef\x9c\x96\x41\x94\xc7\x5a\xe7\x23\x97\x5c\xe9\xe0\xf0\x7e\x73\x1f\xff\x0e\x8e\x8f\x8e\xf6\xef\x59\x26\x1f\x90\x49\x5b\x26\xb8\x67\x69\x9a\x5b\xe3\x96\xeb\x3e\xee\x30\x2e\x5d\x9a\xa8\x32\x6d\x12\xaf\xeb\x42\x96\xb1\x5f\x3b\x25\xad\x2c\x93\x2f\x8a\x28\x33\x2a\x22\xe4\x44\xb3\x75\x63\x56\xc4\x71\x0d\x9e\xdc\xdf\xc4\x7d\xdd\xbf\x14\x5b\xae\x9f\xf7\xb4\x96\x47\xe1\x45\xcd\xd2\x1b\x22\x08\x05\x76\xb5\x66\x78\x01\x50\x4c\x7c\xa5\x78\x16\x14\x59\x94\x23\x63\xf4\x86\xd8\xc7\x7e\x1f\x4e\xdd\x7e\x58\xd9\x92\x77\xde\xd1\xf9\x53\xa7\xd7\xc9\x48\x3c\xb4\xed\xb1\x78\x32\x9a\x3a\x82\x35\xec\xb4\x26\x2d\xe1\xb6\xba\xf6\x3b\xef\x58\xae\xdd\x76\xec\x89\x07\x5b\x84\x80\x77\xde\xfd\xb4\xdb\xb1\x1f\x3b\xf8\xff\x87\x7f\x74\x87\x2c\xa2\xc8\x53\xda\x4c\x58\x7d\x26\x97\x92\x13\x45\xe8\xc3\x35\x10\x46\x7a\x43\xcf\xb1\x07\xf6\xe0\x14\x51\xa5\xd3\x7a\xe2\x62\xfc\x7d\xab\x3d\x1a\x3d\Line truncated
|
||||||
|
|
||||||
func confAppIniBytes() ([]byte, error) {
|
func confAppIniBytes() ([]byte, error) {
|
||||||
return bindataRead(
|
return bindataRead(
|
||||||
@@ -299,7 +299,7 @@ func confAppIni() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "conf/app.ini", size: 9885, mode: os.FileMode(420), modTime: time.Unix(1442150798, 0)}
|
info := bindataFileInfo{name: "conf/app.ini", size: 9882, mode: os.FileMode(420), modTime: time.Unix(1442156680, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@@ -4364,7 +4364,7 @@ func confLocaleLocale_deDeIni() (*asset, error) {
|
|||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\xbd\xeb\x72\xdc\x48\xae\x27\xfe\x9d\x4f\xc1\xf6\x09\xff\xdd\x8e\x90\xcb\xd1\xdd\xff\xbd\x44\x87\xed\x5e\x59\x6a\x5f\xe6\x58\x96\xc6\x92\x67\x76\xd6\xe1\x60\xb3\x8a\x54\x15\xc7\x55\x64\x35\xc9\x72\x59\x73\xe2\x44\xec\x6b\xec\xeb\xed\x93\x2c\xf0\x03\x90\x17\x92\x25\xd9\x3d\x27\x76\xbf\x48\xac\x4c\xe4\x0d\x89\x44\x02\x48\x24\x32\xdf\x6e\xb3\xa2\xec\x16\xe9\xd3\xf4\x38\xdd\xe6\x55\xbd\x2e\xbb\x2e\xed\xca\xf5\xf5\xa3\x55\xd3\xf5\x65\x91\xbe\xac\x7a\xfa\xdd\x7e\xae\x16\x65\x92\xac\x9a\x4d\x49\xa0\xaf\xe8\x5f\x52\xe4\xdd\x6a\xde\xe4\x6d\x41\x09\xa7\xf6\x9d\x94\x5f\xb6\xeb\xa6\x65\xa0\x5f\xe5\x2b\x59\x95\xeb\x2d\x97\xa1\x7f\x49\x57\x2d\xeb\xac\xaa\xe9\xe7\x25\x7d\xa5\xaf\xeb\xa4\x6b\x16\x55\xbe\xce\x82\x0c\x24\x58\xfe\xcf\xe9\x8f\x75\x91\x5e\xf6\xe5\x36\x7d\xd2\x6d\xf2\xf5\xfa\x59\xde\xa1\x48\x5f\xa6\xf9\x62\xd1\xec\xea\xfe\xc9\x63\xc9\x90\xca\x9b\x5d\x6f\xb5\x9f\xef\x7a\x49\xdb\x6d\x2d\xe9\xfd\x36\x69\xcb\x65\x45\x03\x6b\x29\xe9\x9d\x7e\x26\xfb\x72\xde\x55\x3d\x77\xfa\xaf\xf2\x95\x7c\x2e\xdb\xae\x6a\xb8\x3f\x7f\x91\xaf\x64\x9b\x2f\x19\xe0\x82\xfe\x25\x7d\xb9\xd9\xae\x73\x14\xb8\xd2\xcf\x64\x9d\xd7\xcb\x9d\xc0\xbc\xd1\xcf\x64\xd1\x96\x94\x95\xd5\xe5\x9e\x52\x4f\xf0\x63\x36\x9b\x25\x3b\xc2\x67\xb6\x6d\x9b\xeb\x6a\x5d\x66\x79\x5d\x64\x1b\xc1\xd8\x7b\x4a\x4f\x35\x3d\xa5\xf4\x94\xd3\x31\x84\xb2\x20\xe4\x64\x79\xa7\xe3\xa0\x69\x21\x5c\xe5\x5d\x82\xaa\xea\x7c\x63\xa5\xf9\x33\x29\x37\x79\xb5\xe6\x09\x78\xc4\x1f\xd4\xf1\xae\xdb\x37\x98\xa6\x0b\xfd\x24\x24\x64\xfd\xcd\xb6\x04\x0e\x1e\x5d\xd1\x57\xb2\xc8\xb7\xfd\x62\x95\x73\x3f\xe5\x2b\x21\xa0\x6d\x43\xc8\x68\xda\x1b\xc0\xd9\x8f\xa4\x69\x97\x79\x5d\xfd\x23\xef\x05\x41\xe7\xc1\xcf\x64\x53\xb5\x6d\xc3\xb8\x3d\xc3\x47\x42\x43\xcf\xb8\x1e\x4a\x79\x4b\x58\x08\x6a\xe1\x9c\x4d\xb5\x6c\x05\x8d\x9c\x79\x86\x5f\x5c\x0b\xe7\x5d\x37\xed\x27\xcd\x78\xc1\x9f\x83\xa2\xd4\x09\xcd\x8d\xdb\xcf\x6b\x42\xbc\xe6\x9e\xe1\x47\x04\xd0\x25\x79\xb1\x21\x54\x6e\xf3\xba\x64\x1c\x1d\xf3\x2f\xc2\x0b\xfd\x4a\x94\x9e\xb2\xae\xec\xfb\xaa\x5e\x32\xb2\x8f\x25\x29\xbd\xd4\xa4\x24\xc8\x73\x69\x37\xcd\xce\x4d\x27\xa5\xff\x8d\x7e\xa6\x17\xf2\x53\xf2\x82\x42\xc8\x74\x25\x79\x24\x5d\x76\x5d\x96\x85\x8c\xa5\x4b\x5f\xd0\x77\xb2\xdd\xad\xd7\x84\xb5\xdf\x77\x65\xd7\x73\xa1\x0b\xfa\x4d\xe3\x97\xdf\x49\xd5\x75\xf4\x41\xc9\xaf\xf1\x91\xd0\xd4\xd5\x0b\x0c\xe6\x04\x1f\x49\xf2\xa1\x2b\xf3\x76\xb1\xfa\x98\xc8\x7f\xf4\x95\x3f\x98\xf6\x0e\x4d\x2a\x13\x92\x12\x91\xb4\x60\x0d\x24\x8b\xa6\xe0\x1f\x27\xf4\x8f\xaa\xae\xea\xae\xa7\xd5\xf6\x31\xd1\x0f\x06\x93\x2f\x99\x80\xbe\xea\x81\x05\x4d\xc4\xd2\xed\x78\x06\xd3\x17\x55\xdb\xf5\x8f\xfa\x8a\x88\xf5\xdd\xae\x4e\x78\x7c\xb4\xd2\xb2\x62\x6e\x0c\xe8\x65\x43\x28\x42\x72\x4b\xe3\x3b\xbb\xb9\xfc\xf3\x9b\xa3\xf4\x82\xb8\xd0\xb2\x2d\xf1\x4d\x7f\xa8\xc4\x4f\x29\x55\x76\x55\x9d\x3e\x9f\x25\x54\xd6\xda\x3b\xcd\xfb\x7c\x9e\x77\xa5\x47\x2e\x67\x0a\x8d\xbb\x3c\x50\x3a\xf3\x35\xf0\xb0\xae\x8f\x46\x3d\xb5\x4e\xa8\x0e\x5d\x5d\xae\x8e\xb7\xbc\xc4\x28\x9d\xd9\x1a\x0a\x5f\xac\x4b\x4e\xa7\xaa\xd2\xd7\x6f\xdf\x9e\x9f\x3e\x4f\xcb\x7a\x59\xd5\x65\xba\xaf\xfa\x55\xba\xeb\xaf\xff\x6b\xb6\x2c\xeb\xb2\x25\x2e\xb7\xa8\x52\x5a\x59\x2d\xd1\x43\x4a\xe4\x2d\x43\x9c\x25\x5d\xb7\x26\x0e\x00\x24\x5f\x5e\xbe\x49\xcf\x18\xd1\xdb\xbc\x5f\xa1\x23\xfd\x2a\xe9\x7e\x5f\x33\xa2\x5c\x83\x57\xab\x32\x05\xad\x01\xa8\xb9\x1e\xe2\x25\x2d\xb4\xaf\xb3\xa4\x6c\xdb\x8c\x18\x54\x7f\xc3\x68\xd6\x3a\x0f\x41\x4b\x75\x44\x4c\x75\xd3\xa7\xf3\x32\x45\x39\xa9\xa2\xaa\x3f\xe7\xeb\xaa\x20\x64\x7b\x84\xc4\x65\x91\x58\x34\x34\x6f\x5c\x9a\x26\xbe\xd9\x63\xa8\xf9\x82\xf8\x6b\x97\xde\x9b\xdd\x03\x43\xbb\xf7\xe8\xde\x2c\xa9\x9b\x4c\x16\x21\xb3\xbe\xa2\xea\xf2\x39\xb1\x41\x61\xcb\xad\x31\x15\x5a\x27\xd6\x15\x85\x48\x23\x08\xc6\x2d\xb3\x7a\x70\x58\x9a\x6e\xaa\x3d\x45\xa5\xb6\x2b\x84\x63\xb7\x25\xef\xe6\x57\x56\xbd\x4b\x18\x8d\x39\xb1\x09\x33\xea\x3a\xde\x6e\xd7\xd5\x42\x9a\x7e\x29\x79\x9e\xd0\x78\x0f\x55\xa4\x84\x70\x20\x14\xcb\x0b\xc8\x85\x7a\xcd\x5c\x21\x8d\xd8\x28\xca\xaf\x4a\xda\x06\x56\xbb\xa5\x30\xff\x75\xb3\x2b\xbe\xc3\x7a\xb5\x99\xf3\xcb\x35\x7d\xd7\x50\x87\x41\x1d\x0e\xc0\x37\x71\x4c\xeb\x8e\xb7\xed\xb6\xdc\x34\x3d\x23\x4e\x8b\x55\x34\x3d\xfb\x8a\x32\x69\xa4\x5d\xfe\x99\xb8\x4e\xdf\xa4\xfd\xaa\xea\x08\xc7\x6d\xb9\xe0\x8a\x89\x41\xec\x68\xc3\x94\x65\x41\xcb\x54\x96\x86\xa5\xc5\x34\x08\xa8\xcd\x8e\x56\xd3\x8a\x2a\x63\xc4\xb3\xec\x40\x55\x4e\xf5\x13\x43\xa2\x7a\xb0\xca\x69\xe5\x36\xb4\x37\xf1\x44\x9f\xe2\x43\x7f\x87\xf5\x53\xaf\xf2\xeb\x6b\xea\x55\x47\xab\xe2\x55\xba\x58\x37\xb4\xa4\xde\xbf\x7b\xd3\xf1\x82\x59\x65\xdb\xa6\xc5\x46\x4f\x59\x17\xf4\xe9\xd2\x02\x44\x33\x44\xbd\xdb\xcc\xe9\xd7\x7e\x55\x11\x1f\x04\xda\xb9\x04\xcb\x33\x94\x4a\x4d\xec\x3a\x9a\xc2\xa3\x94\x96\x30\x8d\x80\x50\x06\x02\xe0\x31\x18\xd5\x31\xf8\x35\xd1\xd8\xae\xa5\xe5\xb4\xea\xfb\xad\xb5\xfc\xea\xea\xea\x42\x9a\x76\xa9\xb7\xb5\x9d\x07\x94\x81\x39\x58\xb3\xe8\x51\xa7\x4d\x3d\x03\x91\xec\xda\xf5\x80\x7e\x68\xac\x96\x73\x00\x2f\xdc\x85\xc7\xfc\xe7\xd2\xa3\x07\x78\xee\x48\x3e\xdb\x83\x9a\x08\xc7\x2Line truncated
|
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\xbd\xeb\x72\xdc\x48\xae\x27\xfe\x9d\x4f\xc1\xf6\x09\xff\xdd\x8e\x90\xcb\xd1\xdd\xff\xbd\x44\x87\xed\x5e\x59\x6a\x5f\xe6\x58\x96\xc6\x92\x67\x76\xd6\xe1\x60\xb3\x8a\x54\x15\xc7\x55\x64\x35\xc9\x72\x59\x73\xe2\x44\xec\x6b\xec\xeb\xed\x93\x2c\xf0\x03\x90\x17\x92\x25\xd9\x3d\x27\x76\xbf\x48\xac\x4c\xe4\x0d\x89\x44\x02\x48\x24\x32\xdf\x6e\xb3\xa2\xec\x16\xe9\xd3\xf4\x38\xdd\xe6\x55\xbd\x2e\xbb\x2e\xed\xca\xf5\xf5\xa3\x55\xd3\xf5\x65\x91\xbe\xac\x7a\xfa\xdd\x7e\xae\x16\x65\x92\xac\x9a\x4d\x49\xa0\xaf\xe8\x5f\x52\xe4\xdd\x6a\xde\xe4\x6d\x41\x09\xa7\xf6\x9d\x94\x5f\xb6\xeb\xa6\x65\xa0\x5f\xe5\x2b\x59\x95\xeb\x2d\x97\xa1\x7f\x49\x57\x2d\xeb\xac\xaa\xe9\xe7\x25\x7d\xa5\xaf\xeb\xa4\x6b\x16\x55\xbe\xce\x82\x0c\x24\x58\xfe\xcf\xe9\x8f\x75\x91\x5e\xf6\xe5\x36\x7d\xd2\x6d\xf2\xf5\xfa\x59\xde\xa1\x48\x5f\xa6\xf9\x62\xd1\xec\xea\xfe\xc9\x63\xc9\x90\xca\x9b\x5d\x6f\xb5\x9f\xef\x7a\x49\xdb\x6d\x2d\xe9\xfd\x36\x69\xcb\x65\x45\x03\x6b\x29\xe9\x9d\x7e\x26\xfb\x72\xde\x55\x3d\x77\xfa\xaf\xf2\x95\x7c\x2e\xdb\xae\x6a\xb8\x3f\x7f\x91\xaf\x64\x9b\x2f\x19\xe0\x82\xfe\x25\x7d\xb9\xd9\xae\x73\x14\xb8\xd2\xcf\x64\x9d\xd7\xcb\x9d\xc0\xbc\xd1\xcf\x64\xd1\x96\x94\x95\xd5\xe5\x9e\x52\x4f\xf0\x63\x36\x9b\x25\x3b\xc2\x67\xb6\x6d\x9b\xeb\x6a\x5d\x66\x79\x5d\x64\x1b\xc1\xd8\x7b\x4a\x4f\x35\x3d\xa5\xf4\x94\xd3\x31\x84\xb2\x20\xe4\x64\x79\xa7\xe3\xa0\x69\x21\x5c\xe5\x5d\x82\xaa\xea\x7c\x63\xa5\xf9\x33\x29\x37\x79\xb5\xe6\x09\x78\xc4\x1f\xd4\xf1\xae\xdb\x37\x98\xa6\x0b\xfd\x24\x24\x64\xfd\xcd\xb6\x04\x0e\x1e\x5d\xd1\x57\xb2\xc8\xb7\xfd\x62\x95\x73\x3f\xe5\x2b\x21\xa0\x6d\x43\xc8\x68\xda\x1b\xc0\xd9\x8f\xa4\x69\x97\x79\x5d\xfd\x23\xef\x05\x41\xe7\xc1\xcf\x64\x53\xb5\x6d\xc3\xb8\x3d\xc3\x47\x42\x43\xcf\xb8\x1e\x4a\x79\x4b\x58\x08\x6a\xe1\x9c\x4d\xb5\x6c\x05\x8d\x9c\x79\x86\x5f\x5c\x0b\xe7\x5d\x37\xed\x27\xcd\x78\xc1\x9f\x83\xa2\xd4\x09\xcd\x8d\xdb\xcf\x6b\x42\xbc\xe6\x9e\xe1\x47\x04\xd0\x25\x79\xb1\x21\x54\x6e\xf3\xba\x64\x1c\x1d\xf3\x2f\xc2\x0b\xfd\x4a\x94\x9e\xb2\xae\xec\xfb\xaa\x5e\x32\xb2\x8f\x25\x29\xbd\xd4\xa4\x24\xc8\x73\x69\x37\xcd\xce\x4d\x27\xa5\xff\x8d\x7e\xa6\x17\xf2\x53\xf2\x82\x42\xc8\x74\x25\x79\x24\x5d\x76\x5d\x96\x85\x8c\xa5\x4b\x5f\xd0\x77\xb2\xdd\xad\xd7\x84\xb5\xdf\x77\x65\xd7\x73\xa1\x0b\xfa\x4d\xe3\x97\xdf\x49\xd5\x75\xf4\x41\xc9\xaf\xf1\x91\xd0\xd4\xd5\x0b\x0c\xe6\x04\x1f\x49\xf2\xa1\x2b\xf3\x76\xb1\xfa\x98\xc8\x7f\xf4\x95\x3f\x98\xf6\x0e\x4d\x2a\x13\x92\x12\x91\xb4\x60\x0d\x24\x8b\xa6\xe0\x1f\x27\xf4\x8f\xaa\xae\xea\xae\xa7\xd5\xf6\x31\xd1\x0f\x06\x93\x2f\x99\x80\xbe\xea\x81\x05\x4d\xc4\xd2\xed\x78\x06\xd3\x17\x55\xdb\xf5\x8f\xfa\x8a\x88\xf5\xdd\xae\x4e\x78\x7c\xb4\xd2\xb2\x62\x6e\x0c\xe8\x65\x43\x28\x42\x72\x4b\xe3\x3b\xbb\xb9\xfc\xf3\x9b\xa3\xf4\x82\xb8\xd0\xb2\x2d\xf1\x4d\x7f\xa8\xc4\x4f\x29\x55\x76\x55\x9d\x3e\x9f\x25\x54\xd6\xda\x3b\xcd\xfb\x7c\x9e\x77\xa5\x47\x2e\x67\x0a\x8d\xbb\x3c\x50\x3a\xf3\x35\xf0\xb0\xae\x8f\x46\x3d\xb5\x4e\xa8\x0e\x5d\x5d\xae\x8e\xb7\xbc\xc4\x28\x9d\xd9\x1a\x0a\x5f\xac\x4b\x4e\xa7\xaa\xd2\xd7\x6f\xdf\x9e\x9f\x3e\x4f\xcb\x7a\x59\xd5\x65\xba\xaf\xfa\x55\xba\xeb\xaf\xff\x6b\xb6\x2c\xeb\xb2\x25\x2e\xb7\xa8\x52\x5a\x59\x2d\xd1\x43\x4a\xe4\x2d\x43\x9c\x25\x5d\xb7\x26\x0e\x00\x24\x5f\x5e\xbe\x49\xcf\x18\xd1\xdb\xbc\x5f\xa1\x23\xfd\x2a\xe9\x7e\x5f\x33\xa2\x5c\x83\x57\xab\x32\x05\xad\x01\xa8\xb9\x1e\xe2\x25\x2d\xb4\xaf\xb3\xa4\x6c\xdb\x8c\x18\x54\x7f\xc3\x68\xd6\x3a\x0f\x41\x4b\x75\x44\x4c\x75\xd3\xa7\xf3\x32\x45\x39\xa9\xa2\xaa\x3f\xe7\xeb\xaa\x20\x64\x7b\x84\xc4\x65\x91\x58\x34\x34\x6f\x5c\x9a\x26\xbe\xd9\x63\xa8\xf9\x82\xf8\x6b\x97\xde\x9b\xdd\x03\x43\xbb\xf7\xe8\xde\x2c\xa9\x9b\x4c\x16\x21\xb3\xbe\xa2\xea\xf2\x39\xb1\x41\x61\xcb\xad\x31\x15\x5a\x27\xd6\x15\x85\x48\x23\x08\xc6\x2d\xb3\x7a\x70\x58\x9a\x6e\xaa\x3d\x45\xa5\xb6\x2b\x84\x63\xb7\x25\xef\xe6\x57\x56\xbd\x4b\x18\x8d\x39\xb1\x09\x33\xea\x3a\xde\x6e\xd7\xd5\x42\x9a\x7e\x29\x79\x9e\xd0\x78\x0f\x55\xa4\x84\x70\x20\x14\xcb\x0b\xc8\x85\x7a\xcd\x5c\x21\x8d\xd8\x28\xca\xaf\x4a\xda\x06\x56\xbb\xa5\x30\xff\x75\xb3\x2b\xbe\xc3\x7a\xb5\x99\xf3\xcb\x35\x7d\xd7\x50\x87\x41\x1d\x0e\xc0\x37\x71\x4c\xeb\x8e\xb7\xed\xb6\xdc\x34\x3d\x23\x4e\x8b\x55\x34\x3d\xfb\x8a\x32\x69\xa4\x5d\xfe\x99\xb8\x4e\xdf\xa4\xfd\xaa\xea\x08\xc7\x6d\xb9\xe0\x8a\x89\x41\xec\x68\xc3\x94\x65\x41\xcb\x54\x96\x86\xa5\xc5\x34\x08\xa8\xcd\x8e\x56\xd3\x8a\x2a\x63\xc4\xb3\xec\x40\x55\x4e\xf5\x13\x43\xa2\x7a\xb0\xca\x69\xe5\x36\xb4\x37\xf1\x44\x9f\xe2\x43\x7f\x87\xf5\x53\xaf\xf2\xeb\x6b\xea\x55\x47\xab\xe2\x55\xba\x58\x37\xb4\xa4\xde\xbf\x7b\xd3\xf1\x82\x59\x65\xdb\xa6\xc5\x46\x4f\x59\x17\xf4\xe9\xd2\x02\x44\x33\x44\xbd\xdb\xcc\xe9\xd7\x7e\x55\x11\x1f\x04\xda\xb9\x04\xcb\x33\x94\x4a\x4d\xec\x3a\x9a\xc2\xa3\x94\x96\x30\x8d\x80\x50\x06\x02\xe0\x31\x18\xd5\x31\xf8\x35\xd1\xd8\xae\xa5\xe5\xb4\xea\xfb\xad\xb5\xfc\xea\xea\xea\x42\x9a\x76\xa9\xb7\xb5\x9d\x07\x94\x81\x39\x58\xb3\xe8\x51\xa7\x4d\x3d\x03\x91\xec\xda\xf5\x80\x7e\x68\xac\x96\x73\x00\x2f\xdc\x85\xc7\xfc\xe7\xd2\xa3\x07\x78\xee\x48\x3e\xdb\x83\x9a\x08\xc7\x2Line truncated
|
||||||
|
|
||||||
func confLocaleLocale_enUsIniBytes() ([]byte, error) {
|
func confLocaleLocale_enUsIniBytes() ([]byte, error) {
|
||||||
return bindataRead(
|
return bindataRead(
|
||||||
@@ -4379,7 +4379,7 @@ func confLocaleLocale_enUsIni() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 43237, mode: os.FileMode(420), modTime: time.Unix(1442150578, 0)}
|
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 43297, mode: os.FileMode(420), modTime: time.Unix(1442154588, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -421,7 +421,7 @@ var Service struct {
|
|||||||
EnableReverseProxyAuth bool
|
EnableReverseProxyAuth bool
|
||||||
EnableReverseProxyAutoRegister bool
|
EnableReverseProxyAutoRegister bool
|
||||||
DisableMinimumKeySizeCheck bool
|
DisableMinimumKeySizeCheck bool
|
||||||
DisableCaptcha bool
|
EnableCaptcha bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func newService() {
|
func newService() {
|
||||||
@@ -435,7 +435,7 @@ func newService() {
|
|||||||
Service.EnableReverseProxyAuth = sec.Key("ENABLE_REVERSE_PROXY_AUTHENTICATION").MustBool()
|
Service.EnableReverseProxyAuth = sec.Key("ENABLE_REVERSE_PROXY_AUTHENTICATION").MustBool()
|
||||||
Service.EnableReverseProxyAutoRegister = sec.Key("ENABLE_REVERSE_PROXY_AUTO_REGISTRATION").MustBool()
|
Service.EnableReverseProxyAutoRegister = sec.Key("ENABLE_REVERSE_PROXY_AUTO_REGISTRATION").MustBool()
|
||||||
Service.DisableMinimumKeySizeCheck = sec.Key("DISABLE_MINIMUM_KEY_SIZE_CHECK").MustBool()
|
Service.DisableMinimumKeySizeCheck = sec.Key("DISABLE_MINIMUM_KEY_SIZE_CHECK").MustBool()
|
||||||
Service.DisableCaptcha = sec.Key("DISABLE_CAPTCHA").MustBool()
|
Service.EnableCaptcha = sec.Key("ENABLE_CAPTCHA").MustBool()
|
||||||
}
|
}
|
||||||
|
|
||||||
var logLevels = map[string]string{
|
var logLevels = map[string]string{
|
||||||
|
|||||||
+9
-3
@@ -458,20 +458,26 @@ function initAdmin() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// New user
|
// New user
|
||||||
if ($('.admin.new.user').length > 0) {
|
if ($('.admin.new.user').length > 0 ||
|
||||||
|
$('.admin.edit.user').length > 0) {
|
||||||
$('#login_type').change(function () {
|
$('#login_type').change(function () {
|
||||||
if ($(this).val().substring(0, 1) == '0') {
|
if ($(this).val().substring(0, 1) == '0') {
|
||||||
$('#login_name').removeAttr('required');
|
$('#login_name').removeAttr('required');
|
||||||
$('#password').attr('required', 'required');
|
|
||||||
$('.non-local').hide();
|
$('.non-local').hide();
|
||||||
$('.local').show();
|
$('.local').show();
|
||||||
$('#user_name').focus();
|
$('#user_name').focus();
|
||||||
|
|
||||||
|
if($(this).data('password')=="required"){
|
||||||
|
$('#password').attr('required', 'required');
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$('#login_name').attr('required', 'required');
|
$('#login_name').attr('required', 'required');
|
||||||
$('#password').removeAttr('required');
|
|
||||||
$('.non-local').show();
|
$('.non-local').show();
|
||||||
$('.local').hide();
|
$('.local').hide();
|
||||||
$('#login_name').focus();
|
$('#login_name').focus();
|
||||||
|
|
||||||
|
$('#password').removeAttr('required');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
+45
-32
@@ -122,30 +122,44 @@ func NewUserPost(ctx *middleware.Context, form auth.AdminCrateUserForm) {
|
|||||||
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + com.ToStr(u.Id))
|
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + com.ToStr(u.Id))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func prepareUserInfo(ctx *middleware.Context) *models.User {
|
||||||
|
u, err := models.GetUserByID(ctx.ParamsInt64(":userid"))
|
||||||
|
if err != nil {
|
||||||
|
ctx.Handle(500, "GetUserByID", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
ctx.Data["User"] = u
|
||||||
|
|
||||||
|
if u.LoginSource > 0 {
|
||||||
|
ctx.Data["LoginSource"], err = models.GetLoginSourceByID(u.LoginSource)
|
||||||
|
if err != nil {
|
||||||
|
ctx.Handle(500, "GetLoginSourceByID", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ctx.Data["LoginSource"] = &models.LoginSource{}
|
||||||
|
}
|
||||||
|
|
||||||
|
sources, err := models.LoginSources()
|
||||||
|
if err != nil {
|
||||||
|
ctx.Handle(500, "LoginSources", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
ctx.Data["Sources"] = sources
|
||||||
|
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
func EditUser(ctx *middleware.Context) {
|
func EditUser(ctx *middleware.Context) {
|
||||||
ctx.Data["Title"] = ctx.Tr("admin.users.edit_account")
|
ctx.Data["Title"] = ctx.Tr("admin.users.edit_account")
|
||||||
ctx.Data["PageIsAdmin"] = true
|
ctx.Data["PageIsAdmin"] = true
|
||||||
ctx.Data["PageIsAdminUsers"] = true
|
ctx.Data["PageIsAdminUsers"] = true
|
||||||
|
|
||||||
uid := com.StrTo(ctx.Params(":userid")).MustInt64()
|
prepareUserInfo(ctx)
|
||||||
if uid == 0 {
|
if ctx.Written() {
|
||||||
ctx.Handle(404, "EditUser", nil)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
u, err := models.GetUserByID(uid)
|
|
||||||
if err != nil {
|
|
||||||
ctx.Handle(500, "GetUserByID", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ctx.Data["User"] = u
|
|
||||||
|
|
||||||
sources, err := models.LoginSources()
|
|
||||||
if err != nil {
|
|
||||||
ctx.Handle(500, "LoginSources", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ctx.Data["LoginSources"] = sources
|
|
||||||
ctx.HTML(200, USER_EDIT)
|
ctx.HTML(200, USER_EDIT)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,25 +168,28 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
|
|||||||
ctx.Data["PageIsAdmin"] = true
|
ctx.Data["PageIsAdmin"] = true
|
||||||
ctx.Data["PageIsAdminUsers"] = true
|
ctx.Data["PageIsAdminUsers"] = true
|
||||||
|
|
||||||
uid := com.StrTo(ctx.Params(":userid")).MustInt64()
|
u := prepareUserInfo(ctx)
|
||||||
if uid == 0 {
|
if ctx.Written() {
|
||||||
ctx.Handle(404, "EditUser", nil)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
u, err := models.GetUserByID(uid)
|
|
||||||
if err != nil {
|
|
||||||
ctx.Handle(500, "GetUserById", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ctx.Data["User"] = u
|
|
||||||
|
|
||||||
if ctx.HasError() {
|
if ctx.HasError() {
|
||||||
ctx.HTML(200, USER_EDIT)
|
ctx.HTML(200, USER_EDIT)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: need password length check
|
fields := strings.Split(form.LoginType, "-")
|
||||||
|
if len(fields) == 2 {
|
||||||
|
loginType := models.LoginType(com.StrTo(fields[0]).MustInt())
|
||||||
|
loginSource := com.StrTo(fields[1]).MustInt64()
|
||||||
|
|
||||||
|
if u.LoginSource != loginSource {
|
||||||
|
u.LoginSource = loginSource
|
||||||
|
u.LoginType = loginType
|
||||||
|
u.LoginName = form.LoginName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if len(form.Password) > 0 {
|
if len(form.Password) > 0 {
|
||||||
u.Passwd = form.Password
|
u.Passwd = form.Password
|
||||||
u.Salt = models.GetUserSalt()
|
u.Salt = models.GetUserSalt()
|
||||||
@@ -183,11 +200,6 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
|
|||||||
u.Email = form.Email
|
u.Email = form.Email
|
||||||
u.Website = form.Website
|
u.Website = form.Website
|
||||||
u.Location = form.Location
|
u.Location = form.Location
|
||||||
if len(form.Avatar) == 0 {
|
|
||||||
form.Avatar = form.Email
|
|
||||||
}
|
|
||||||
u.Avatar = base.EncodeMd5(form.Avatar)
|
|
||||||
u.AvatarEmail = form.Avatar
|
|
||||||
u.IsActive = form.Active
|
u.IsActive = form.Active
|
||||||
u.IsAdmin = form.Admin
|
u.IsAdmin = form.Admin
|
||||||
u.AllowGitHook = form.AllowGitHook
|
u.AllowGitHook = form.AllowGitHook
|
||||||
@@ -202,6 +214,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Trace("Account profile updated by admin(%s): %s", ctx.User.Name, u.Name)
|
log.Trace("Account profile updated by admin(%s): %s", ctx.User.Name, u.Name)
|
||||||
|
|
||||||
ctx.Flash.Success(ctx.Tr("admin.users.update_profile_success"))
|
ctx.Flash.Success(ctx.Tr("admin.users.update_profile_success"))
|
||||||
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + ctx.Params(":userid"))
|
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + ctx.Params(":userid"))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ func oauthSignUp(ctx *middleware.Context, sid int64) {
|
|||||||
func SignUp(ctx *middleware.Context) {
|
func SignUp(ctx *middleware.Context) {
|
||||||
ctx.Data["Title"] = ctx.Tr("sign_up")
|
ctx.Data["Title"] = ctx.Tr("sign_up")
|
||||||
|
|
||||||
ctx.Data["DisableCaptcha"] = setting.Service.DisableCaptcha
|
ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha
|
||||||
|
|
||||||
if setting.Service.DisableRegistration {
|
if setting.Service.DisableRegistration {
|
||||||
ctx.Data["DisableRegistration"] = true
|
ctx.Data["DisableRegistration"] = true
|
||||||
@@ -170,7 +170,7 @@ func SignUp(ctx *middleware.Context) {
|
|||||||
func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.RegisterForm) {
|
func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.RegisterForm) {
|
||||||
ctx.Data["Title"] = ctx.Tr("sign_up")
|
ctx.Data["Title"] = ctx.Tr("sign_up")
|
||||||
|
|
||||||
ctx.Data["DisableCaptcha"] = setting.Service.DisableCaptcha
|
ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha
|
||||||
|
|
||||||
if setting.Service.DisableRegistration {
|
if setting.Service.DisableRegistration {
|
||||||
ctx.Error(403)
|
ctx.Error(403)
|
||||||
@@ -188,7 +188,7 @@ func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.Registe
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !setting.Service.DisableCaptcha && !cpt.VerifyReq(ctx.Req) {
|
if setting.Service.EnableCaptcha && !cpt.VerifyReq(ctx.Req) {
|
||||||
ctx.Data["Err_Captcha"] = true
|
ctx.Data["Err_Captcha"] = true
|
||||||
ctx.RenderWithErr(ctx.Tr("form.captcha_incorrect"), SIGNUP, &form)
|
ctx.RenderWithErr(ctx.Tr("form.captcha_incorrect"), SIGNUP, &form)
|
||||||
return
|
return
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
0.6.11.0913 Beta
|
0.6.12.0913 Beta
|
||||||
@@ -1,93 +1,100 @@
|
|||||||
{{template "ng/base/head" .}}
|
{{template "base/head" .}}
|
||||||
{{template "ng/base/header" .}}
|
<div class="admin edit user">
|
||||||
<div id="admin-wrapper">
|
<div class="ui container">
|
||||||
<div id="setting-wrapper" class="main-wrapper">
|
<div class="ui grid">
|
||||||
<div id="admin-setting" class="container clear">
|
{{template "admin/navbar" .}}
|
||||||
{{template "admin/nav" .}}
|
<div class="twelve wide column content">
|
||||||
<div class="grid-4-5 left">
|
{{template "base/alert" .}}
|
||||||
<div class="setting-content">
|
<h4 class="ui top attached header">
|
||||||
{{template "ng/base/alert" .}}
|
{{.i18n.Tr "admin.users.edit_account"}}
|
||||||
<div id="setting-content">
|
</h4>
|
||||||
<div class="panel panel-radius">
|
<div class="ui attached segment">
|
||||||
<div class="panel-header">
|
<form class="ui form" action="{{.Link}}" method="post">
|
||||||
<strong>{{.i18n.Tr "admin.users.edit_account"}}</strong>
|
{{.CsrfTokenHtml}}
|
||||||
</div>
|
<div class="inline field {{if .Err_UserName}}error{{end}}">
|
||||||
<form class="form form-align panel-body" id="user-profile-form" action="{{AppSubUrl}}/admin/users/{{.User.Id}}" method="post" data-delete-url="{{AppSubUrl}}/admin/users/{{.User.Id}}/delete">
|
<label for="user_name">{{.i18n.Tr "username"}}</label>
|
||||||
{{.CsrfTokenHtml}}
|
<span>{{.User.Name}}</span>
|
||||||
<div class="field">
|
</div>
|
||||||
<label class="req">{{.i18n.Tr "admin.users.auth_source"}}</label>
|
<!-- Types and name -->
|
||||||
<select id="login-type" name="logintype">
|
<div class="inline required field {{if .Err_LoginType}}error{{end}}">
|
||||||
<option value="0-0">{{.i18n.Tr "admin.users.local"}}</option>
|
<label>{{.i18n.Tr "admin.users.auth_source"}}</label>
|
||||||
{{$tp := .User.LoginSource}}
|
<div class="ui selection type dropdown">
|
||||||
{{range $key, $val := .LoginSources}}
|
<input type="hidden" id="login_type" name="login_type" value="{{.LoginSource.Type}}-{{.LoginSource.ID}}" required>
|
||||||
<option value="{{$val.Type}}-{{$val.ID}}"{{if eq $val.ID $tp}} selected{{end}}>{{$val.Name}}</option>
|
<div class="text">{{.i18n.Tr "admin.users.local"}}</div>
|
||||||
{{end}}
|
<i class="dropdown icon"></i>
|
||||||
</select>
|
<div class="menu">
|
||||||
</div>
|
<div class="item" data-value="0-0">{{.i18n.Tr "admin.users.local"}}</div>
|
||||||
<div class="field">
|
{{range .Sources}}
|
||||||
<label for="loginname">{{.i18n.Tr "admin.users.auth_login_name"}}</label>
|
<div class="item" data-value="{{.Type}}-{{.ID}}">{{.Name}}</div>
|
||||||
<input class="ipt ipt-large ipt-radius {{if .Err_LoginName}}ipt-error{{end}}" id="loginname" name="loginname" value="{{.User.LoginName}}" />
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
</div>
|
||||||
<label>{{.i18n.Tr "username"}}</label>
|
</div>
|
||||||
<label class="text-left">{{.User.Name}}</label>
|
<div class="required non-local field {{if .Err_LoginName}}error{{end}} {{if eq .User.LoginSource 0}}hide{{end}}">
|
||||||
</div>
|
<label for="login_name">{{.i18n.Tr "admin.users.auth_login_name"}}</label>
|
||||||
<div class="field">
|
<input id="login_name" name="login_name" value="{{.User.LoginName}}" autofocus>
|
||||||
<label for="full-name">{{.i18n.Tr "settings.full_name"}}</label>
|
</div>
|
||||||
<input class="ipt ipt-large ipt-radius {{if .Err_FullName}}ipt-error{{end}}" id="full-name" name="fullname" type="text" value="{{.User.FullName}}" />
|
<div class="field {{if .Err_FullName}}error{{end}}">
|
||||||
</div>
|
<label for="full_name">{{.i18n.Tr "settings.full_name"}}</label>
|
||||||
<div class="field">
|
<input id="full_name" name="full_name" value="{{.User.FullName}}">
|
||||||
<label class="req" for="email">{{.i18n.Tr "email"}}</label>
|
</div>
|
||||||
<input class="ipt ipt-large ipt-radius {{if .Err_Email}}ipt-error{{end}}" id="email" name="email" type="email" value="{{.User.Email}}" required/>
|
<div class="required field {{if .Err_Email}}error{{end}}">
|
||||||
</div>
|
<label for="email">{{.i18n.Tr "email"}}</label>
|
||||||
<div class="field pwd">
|
<input id="email" name="email" type="email" value="{{.User.Email}}" autofocus required>
|
||||||
<label for="password">{{.i18n.Tr "password"}}</label>
|
</div>
|
||||||
<input class="ipt ipt-large ipt-radius {{if .Err_Password}}ipt-error{{end}}" id="password" name="password" type="password" />
|
<input class="fake" type="password">
|
||||||
</div>
|
<div class="local field {{if .Err_Password}}error{{end}} {{if not (eq .User.LoginSource 0)}}hide{{end}}">
|
||||||
<div class="field">
|
<label for="password">{{.i18n.Tr "password"}}</label>
|
||||||
<label for="website">{{.i18n.Tr "settings.website"}}</label>
|
<input id="password" name="password" type="password">
|
||||||
<input class="ipt ipt-large ipt-radius {{if .Err_Website}}ipt-error{{end}}" id="website" name="website" type="url" value="{{.User.Website}}" />
|
<p class="help">{{.i18n.Tr "admin.users.password_helper"}}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field {{if .Err_Website}}error{{end}}">
|
||||||
<label for="location">{{.i18n.Tr "settings.location"}}</label>
|
<label for="website">{{.i18n.Tr "settings.website"}}</label>
|
||||||
<input class="ipt ipt-large ipt-radius {{if .Err_Location}}ipt-error{{end}}" id="location" name="location" type="text" value="{{.User.Location}}" />
|
<input id="website" name="website" type="url" value="{{.User.Website}}" placeholder="e.g. http://mydomain.com or https://mydomain.com">
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field {{if .Err_Location}}error{{end}}">
|
||||||
<label for="gravatar-email">Gravatar {{.i18n.Tr "email"}}</label>
|
<label for="location">{{.i18n.Tr "settings.location"}}</label>
|
||||||
<input class="ipt ipt-large ipt-radius {{if .Err_Avatar}}ipt-error{{end}}" id="gravatar-email" name="avatar" type="text" value="{{.User.AvatarEmail}}" />
|
<input id="location" name="location" value="{{.User.Location}}">
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
|
||||||
<label></label>
|
<div class="inline field">
|
||||||
<input type="checkbox" name="active" {{if .User.IsActive}}checked{{end}}>
|
<div class="ui checkbox">
|
||||||
<strong>{{.i18n.Tr "admin.users.is_activated"}}</strong>
|
<label><strong>{{.i18n.Tr "admin.users.is_activated"}}</strong></label>
|
||||||
<br>
|
<input name="active" type="checkbox" {{if .User.IsActive}}checked{{end}}>
|
||||||
<label></label>
|
</div>
|
||||||
<input type="checkbox" name="admin" {{if .User.IsAdmin}}checked{{end}}>
|
</div>
|
||||||
<strong>{{.i18n.Tr "admin.users.is_admin"}}</strong>
|
<div class="inline field">
|
||||||
<br>
|
<div class="ui checkbox">
|
||||||
<label></label>
|
<label><strong>{{.i18n.Tr "admin.users.is_admin"}}</strong></label>
|
||||||
<input type="checkbox" name="allow_git_hook" {{if .User.AllowGitHook}}checked{{end}}>
|
<input name="admin" type="checkbox" {{if .User.IsAdmin}}checked{{end}}>
|
||||||
<strong>{{.i18n.Tr "admin.users.allow_git_hook"}}</strong>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="inline field">
|
||||||
<label></label>
|
<div class="ui checkbox">
|
||||||
<button class="btn btn-green btn-large btn-radius">{{.i18n.Tr "admin.users.update_profile"}}</button>
|
<label><strong>{{.i18n.Tr "admin.users.allow_git_hook"}}</strong></label>
|
||||||
|
<input name="allow_git_hook" type="checkbox" {{if or .User.IsAdmin .User.AllowGitHook}}checked{{end}}>
|
||||||
<button class="btn btn-large btn-red btn-radius" id="delete-account-btn" href="#delete-account-modal">{{.i18n.Tr "admin.users.delete_account"}}</button>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="white-popup-block mfp-hide" id="delete-account-modal">
|
|
||||||
<h1 class="text-red">{{.i18n.Tr "settings.delete_account_title"}}</h1>
|
<div class="field">
|
||||||
<p>{{.i18n.Tr "settings.delete_account_desc"}}</p>
|
<button class="ui green button">{{.i18n.Tr "admin.users.update_profile"}}</button>
|
||||||
<br>
|
<div class="ui red button delete-button" data-url="{{$.Link}}/delete" data-id="{{.User.Id}}">{{.i18n.Tr "admin.users.delete_account"}}</div>
|
||||||
<button class="btn btn-red btn-large btn-radius" id="delete-account-submit">{{.i18n.Tr "settings.continue"}}</button>
|
</div>
|
||||||
<button class="btn btn-large btn-radius popup-modal-dismiss">{{.i18n.Tr "settings.cancel"}}</button>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{template "ng/base/footer" .}}
|
|
||||||
|
<div class="ui small basic delete modal">
|
||||||
|
<div class="ui icon header">
|
||||||
|
<i class="trash icon"></i>
|
||||||
|
{{.i18n.Tr "settings.delete_account_title"}}
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<p>{{.i18n.Tr "settings.delete_account_desc"}}</p>
|
||||||
|
</div>
|
||||||
|
{{template "base/delete_modal_actions" .}}
|
||||||
|
</div>
|
||||||
|
{{template "base/footer" .}}
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<div class="inline required field {{if .Err_LoginType}}error{{end}}">
|
<div class="inline required field {{if .Err_LoginType}}error{{end}}">
|
||||||
<label>{{.i18n.Tr "admin.users.auth_source"}}</label>
|
<label>{{.i18n.Tr "admin.users.auth_source"}}</label>
|
||||||
<div class="ui selection type dropdown">
|
<div class="ui selection type dropdown">
|
||||||
<input type="hidden" id="login_type" name="login_type" value="{{.login_type}}" required>
|
<input type="hidden" id="login_type" name="login_type" value="{{.login_type}}" data-password="required" required>
|
||||||
<div class="text">{{.i18n.Tr "admin.users.local"}}</div>
|
<div class="text">{{.i18n.Tr "admin.users.local"}}</div>
|
||||||
<i class="dropdown icon"></i>
|
<i class="dropdown icon"></i>
|
||||||
<div class="menu">
|
<div class="menu">
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
<label for="retype">{{.i18n.Tr "re_type"}}</label>
|
<label for="retype">{{.i18n.Tr "re_type"}}</label>
|
||||||
<input id="retype" name="retype" type="password" value="{{.retype}}" required>
|
<input id="retype" name="retype" type="password" value="{{.retype}}" required>
|
||||||
</div>
|
</div>
|
||||||
{{if not .DisableCaptcha}}
|
{{if .EnableCaptcha}}
|
||||||
<div class="inline field">
|
<div class="inline field">
|
||||||
<label></label>
|
<label></label>
|
||||||
{{.Captcha.CreateHtml}}
|
{{.Captcha.CreateHtml}}
|
||||||
|
|||||||
Reference in new issue
Block a user