mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-03 00:02:43 +02:00
#1525 Triggere mailer for admin created accounts
This commit is contained in:
1 parent
986447335d
commit
21e13cb51e
11 files changed
+213
-191
No files matched your search
@@ -788,6 +788,7 @@ users.activated = Activated
|
|||||||
users.admin = Admin
|
users.admin = Admin
|
||||||
users.repos = Repos
|
users.repos = Repos
|
||||||
users.created = Created
|
users.created = Created
|
||||||
|
users.send_register_notify = Send Registration Notification To User
|
||||||
users.new_success = New account '%s' has been created successfully.
|
users.new_success = New account '%s' has been created successfully.
|
||||||
users.edit = Edit
|
users.edit = Edit
|
||||||
users.auth_source = Authentication Source
|
users.auth_source = Authentication Source
|
||||||
|
|||||||
@@ -11,11 +11,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type AdminCrateUserForm struct {
|
type AdminCrateUserForm struct {
|
||||||
LoginType string `binding:"Required"`
|
LoginType string `binding:"Required"`
|
||||||
LoginName string
|
LoginName string
|
||||||
UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"`
|
UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"`
|
||||||
Email string `binding:"Required;Email;MaxSize(254)"`
|
Email string `binding:"Required;Email;MaxSize(254)"`
|
||||||
Password string `binding:"MaxSize(255)"`
|
Password string `binding:"MaxSize(255)"`
|
||||||
|
SendNotify bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *AdminCrateUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
|
func (f *AdminCrateUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
|
||||||
|
|||||||
@@ -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\x7a\xcb\x8f\xe3\xc6\x76\xfe\x9e\x7f\x45\x59\xfe\xf9\xe7\x99\x40\x52\xbf\x3c\x0f\xb7\xdd\xc9\xa8\x25\x4a\xcd\x3b\x7a\x99\x94\xa6\x3d\x1e\x34\xd8\x6c\xb2\x24\xd1\x4d\x91\x1a\x16\xd9\x3d\x32\xb2\xb8\x46\x16\x01\xb2\x4d\x90\x6c\x82\x20\x59\x04\x01\x6e\x1e\xc8\x45\x36\xf7\x26\xc8\xca\xc8\x7e\xe6\x7f\xb8\xf0\x4d\xfe\x8b\x7c\xe7\x14\x29\x51\x3d\xed\x41\x2e\x90\xc0\x46\x8b\xac\xc7\xa9\xaa\xaf\xce\xf9\xce\x57\xc5\xf9\x58\x0c\xcd\x17\xa6\x2d\xf8\xcf\x60\xd4\xb1\xba\x2f\xc5\xe4\xcc\x72\x44\xd7\xea\x9b\xc6\xc7\x62\xdc\x37\x5b\x8e\x29\x06\xad\xe7\xa6\x68\x9f\xb5\x86\x3d\xd3\x11\xa3\xa1\x68\x8f\x6c\xdb\x74\xc6\xa3\x61\xc7\x1a\xf6\x44\x7b\xea\x4c\x46\x03\x14\x0e\xbb\x56\x4f\xf7\x34\xbe\x10\xad\xd5\x4a\xc4\xde\x52\x8a\x6c\xe1\x65\x42\x2d\x92\x5b\x25\x92\x58\xc8\x1b\x99\xae\xc5\xca\x9b\xa3\x22\xcc\x22\x69\xb4\xc6\x63\x77\xd8\x1a\x98\xe2\x44\xf4\x92\xb9\x3a\xc6\x5f\xd1\x0b\x33\xe1\xc8\xf4\x26\xf4\x25\x2c\xb5\x17\x5e\x8c\xe6\x28\x0b\x67\x62\x9d\xe4\x22\xcd\x63\x11\x25\xbe\x17\x45\x6b\xc3\x9e\x0e\xdd\xa9\x83\xd9\x9f\x88\x79\x98\xa1\xb5\x19\x66\x0b\x99\x8a\x5a\x20\x6f\x6a\x75\x51\x5b\xa5\x49\x50\x13\x09\x0a\x32\xa9\x32\x94\x04\x72\xe6\xe5\x11\x6c\x29\xdd\x86\x2d\x60\xe9\x34\x01\xbc\x1b\xc6\xab\x54\xae\x12\x15\x66\x49\xba\xbe\x30\xec\xd1\x68\x22\x4e\x0c\xa7\x6d\x5b\xe3\x89\x3b\x79\x39\xa6\x66\x57\x9e\x5a\xa0\x5d\x1e\x5e\x60\xbc\x61\xbe\xbc\xc2\x78\xc9\x4c\x6c\xfa\x85\x52\xe9\x55\x7b\xa9\xe4\x95\xcb\x40\x84\x31\x56\x2f\x85\x7c\xb3\x8a\x12\x94\x12\x00\x86\xf9\xf5\xb8\x3f\xb2\x4d\x77\xdc\xea\x01\x47\x77\x38\x1d\xc0\xf8\xe1\xfe\x8e\xd1\x50\xa9\xfc\xa7\xcd\xb1\x19\xcb\x71\xa6\x77\x8c\x1c\xec\xf3\xfc\x9a\x5e\xb0\x0c\xe3\xdd\x59\xe6\x4a\xa6\x1f\xb6\x47\x70\xee\x9a\x7b\xb4\x3b\xa7\x38\xc9\xb0\x33\x1f\x36\x32\x1c\x4d\xac\xb6\xf9\x9e\x19\xe3\xd5\xd2\x4b\xaf\x83\xe4\x96\x67\x65\xc6\xde\x55\x24\xc5\xc2\x4b\x03\x11\x85\xe8\x7a\x95\x4a\xef\x1a\x20\x65\x32\x56\x61\x12\x1b\xe6\xb0\x75\xda\x37\xdd\xb3\x96\xdd\x71\xfb\xd6\xd0\x74\x4f\x6d\xb3\xf5\x1c\xa6\x66\x5e\xa4\x24\xac\x61\x31\x70\xa8\x0b\x63\x6c\x8f\x26\xa3\xf6\xa8\x8f\xaa\x45\x96\xad\x8c\xce\x68\xd0\xb2\x86\x78\x63\x3f\x59\x24\x2a\xe3\xad\x74\xa7\x36\x35\xf9\xe4\x41\xd9\xfe\xa1\x3a\xde\xdb\xfb\xe4\x81\x6e\x8e\x97\x4f\x1e\x9c\x4d\x26\x63\x77\x3c\xb2\x27\x0f\xd5\x9e\xc1\x2f\xad\x4e\x07\xee\x65\x6c\x2a\x60\xe0\x68\x7f\x9f\x20\xe9\x84\x8a\x17\xe0\x38\x67\x62\x26\xbd\x2c\x07\x16\xb7\x0b\x19\x13\x42\xc2\xbb\xf1\xc2\x88\xaa\x8d\x8e\xe5\xf0\x32\xa8\x59\x39\x75\x3c\x97\xc6\x0e\x0f\x2b\xa6\xda\x9d\x21\xc5\x48\x4c\x60\x16\xce\xbb\x4c\x02\x69\x8c\xba\x5d\x06\xa0\xf0\x54\x6d\xa4\x34\x6c\x8f\xa6\x13\xec\x59\x7f\xd4\xdb\x54\x7d\x21\x7a\x32\x96\xa9\x97\x61\x77\x32\xb9\x52\xc7\x28\xf9\x7f\xc2\x0f\xb0\x3b\xd9\x62\x2f\x4b\xf6\xe6\x08\xb6\x3d\x3f\x57\x59\xb2\xdc\x23\xc8\x14\x37\x68\x72\xb9\xf0\x65\x9a\x89\x86\xef\x9d\x64\x69\x2e\x45\x23\xc8\x61\x08\xfb\x71\xf2\xf4\xc9\xe3\xfd\xc5\xfe\x72\x5f\x89\x06\x61\x7a\xb2\x5c\xd3\x4f\x53\xbe\xf1\x96\xab\x48\x36\xfd\x64\x69\x7c\x01\x3b\xa3\x54\xcc\xd2\x64\x29\x3c\xd1\x5c\xcd\xde\x88\x59\x18\xb1\xe7\x27\x69\x06\x2f\xe1\x1a\xc4\xa8\x38\x0f\xe3\x80\x58\x81\x06\x0b\x67\xa1\xaf\xe7\x4a\xd1\xf1\x20\x48\x60\x85\x40\x9c\x25\xe9\x5c\x66\x22\x4b\x8a\xfe\xdc\x71\x95\x86\x37\xd4\xf8\x5a\xae\x1f\xea\x75\x25\x2b\x38\x8c\x8a\xc4\xea\xda\x57\x07\x87\xa2\x01\xf0\xc8\x2a\x8f\xde\x48\xf2\xac\x78\x93\x4b\xd1\x88\x13\x74\x53\xff\xb3\x5e\x68\x59\x76\xa2\x0a\x45\x0f\x81\x54\x46\xdb\xb4\x27\x2e\x11\x1d\xe0\xae\x42\xb8\x57\x0e\x63\x3c\x37\x5f\xde\xdb\xa0\xb0\x88\xe1\xa7\xab\x15\xa2\x29\xc2\x5e\x47\x14\x53\x99\x04\x82\xb4\x28\x2f\x0e\x80\x02\xe0\xf6\x35\x6e\xb4\x5f\x68\x5e\xa1\x2d\x86\x00\xa5\xe4\x6a\x00\x8b\x58\x93\x8a\xe5\x1b\xe9\xe7\x00\xd8\x70\x26\x2d\xc4\x9e\xcb\xfe\x3e\x6e\x4d\xe0\x73\x9a\x8e\x23\x82\x18\xbb\x58\x0c\xda\xfb\xc6\x1a\x0b\x95\xaf\x08\xd6\x32\xd0\xb8\x6c\xeb\x42\x7d\x4c\x26\x8c\xe7\x9a\xae\xb1\x15\xd8\x92\xb8\x11\x25\xf3\x39\xb6\x91\x79\xa4\x2e\x7c\x2f\x16\x57\x52\xd4\x16\xc9\x52\x6a\x9e\x2d\x28\xae\x66\xf4\x5b\x9c\x1f\x88\x03\x08\x07\x6a\x81\x88\x0d\xbc\xcc\x03\x81\xca\x8b\x0a\x57\x2f\xd7\xea\x75\xc4\x6c\x0d\x6f\x9a\xa7\x52\x69\x4b\x28\x0c\x33\x79\x84\x8a\x30\xfb\x54\x11\xf5\xa7\xc2\x5f\x24\x94\x15\x3a\xa7\x25\x19\x73\x5f\xe3\x6c\xe4\x50\x28\x1d\x1c\x3e\x69\xee\xe3\xbf\x83\xe3\xa3\xa3\xfd\xc7\x46\x91\x57\xc8\xa5\x8d\x22\x49\xa4\x49\x92\x19\xe3\x96\xe3\x9c\x77\x18\x97\x2e\x0d\x54\x19\x36\x8e\xd6\x75\x21\xcb\x1c\xa2\x83\x92\x66\x96\xca\xd7\x79\x98\x16\x4b\x04\xe5\x84\xb3\x75\x63\x96\x47\x51\x0d\x91\xdc\xdf\xe4\x0f\xdd\xbe\x34\x5b\xce\x9f\xf7\xb4\x96\x85\xc1\x55\xcd\xd0\x1b\x22\x08\x05\x0e\xb5\x66\x70\x05\x50\x0a\x9e\x26\x3e\xf3\xf3\x34\xcc\x90\x79\xac\x21\xf6\xb1\xdf\x47\x50\xb7\x9f\x57\xb6\xe4\xa3\x8f\x74\x1e\xd6\x69\x7a\x32\x12\xcf\x4d\x73\x2c\x5e\x8e\xa6\xb6\xe0\x15\x76\x5a\x93\x96\x70\x5a\x5d\xf3\xa3\x8f\x0c\xc7\x6c\xdb\xe6\xc4\x85\x2f\xc2\xc0\x47\x1f\x3f\xeb\x76\xcc\x73\x1b\xff\xff\xff\xdf\x7b\x40\x1e\x91\x67\x09\x6d\x26\xbc\x3e\x95\x4b\xc9\xe4\x1e\x78\x08\x0d\xd0\x88\x35\x74\x6d\x73\x60\x0e\x4e\xc1\x2a\Line truncated
|
var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x7a\xcb\x8f\xe3\xc6\x76\xfe\x9e\x7f\x45\x59\xfe\xf9\xe7\x71\x20\xa9\x5f\x9e\x87\xdb\xee\xc4\x6a\x89\x52\xf3\x8e\x5e\x26\xa5\x69\x8f\x07\x0d\x36\x9b\x2c\x49\x74\x53\xa4\x86\x45\x76\x8f\x8c\x2c\xae\x91\x45\x80\x6c\x13\x24\x9b\x20\x48\x16\x41\x80\x9b\x07\x72\x91\xcd\xbd\x09\xb2\x32\xb2\x9f\xf9\x1f\x2e\x7c\x93\xff\x22\xdf\x39\x45\x4a\x54\x4f\xbb\x91\x0b\x24\xb0\xd1\x22\xeb\x71\xaa\xea\xab\x73\xce\xf7\x55\x71\x3e\x14\x43\xf3\x85\x69\x0b\xfe\x33\x18\x75\xac\xee\x4b\x31\x39\xb3\x1c\xd1\xb5\xfa\xa6\xf1\xa1\x18\xf7\xcd\x96\x63\x8a\x41\xeb\xb9\x29\xda\x67\xad\x61\xcf\x74\xc4\x68\x28\xda\x23\xdb\x36\x9d\xf1\x68\xd8\xb1\x86\x3d\xd1\x9e\x3a\x93\xd1\x00\x85\xc3\xae\xd5\xd3\x3d\x8d\xcf\x45\x6b\xb5\x12\xb1\xb7\x94\x22\x5b\x78\x99\x50\x8b\xe4\x56\x89\x24\x16\xf2\x46\xa6\x6b\xb1\xf2\xe6\xa8\x08\xb3\x48\x1a\xad\xf1\xd8\x1d\xb6\x06\xa6\x38\x11\xbd\x64\xae\x8e\xf1\x57\xf4\xc2\x4c\x38\x32\xbd\x09\x7d\x09\x4b\xed\x85\x17\xa3\x39\xca\xc2\x99\x58\x27\xb9\x48\xf3\x58\x44\x89\xef\x45\xd1\xda\xb0\xa7\x43\x77\xea\x60\xf6\x27\x62\x1e\x66\x68\x6d\x86\xd9\x42\xa6\xa2\x16\xc8\x9b\x5a\x5d\xd4\x56\x69\x12\xd4\x44\x82\x82\x4c\xaa\x0c\x25\x81\x9c\x79\x79\x04\x5b\x4a\xb7\x61\x0b\x58\x3a\x4d\x00\xef\x86\xf1\x2a\x95\xab\x44\x85\x59\x92\xae\x2f\x0c\x7b\x34\x9a\x88\x13\xc3\x69\xdb\xd6\x78\xe2\x4e\x5e\x8e\xa9\xd9\x95\xa7\x16\x68\x97\x87\x17\x18\x6f\x98\x2f\xaf\x30\x5e\x32\x13\x9b\x7e\xa1\x54\x7a\xd5\x5e\x2a\x79\xe5\x32\x10\x61\x8c\xd5\x4b\x21\xdf\xac\xa2\x04\xa5\x04\x80\x61\x7e\x3d\xee\x8f\x6c\xd3\x1d\xb7\x7a\xc0\xd1\x1d\x4e\x07\x30\x7e\xb8\xbf\x63\x34\x54\x2a\xff\x69\x73\x6c\xc6\x72\x9c\xe9\x1d\x23\x07\xfb\x3c\xbf\xa6\x17\x2c\xc3\x78\x77\x96\xb9\x92\xe9\xc3\xf6\x08\xce\x5d\x73\x8f\xf7\xdf\x5f\xe8\x83\x26\x6c\x73\x3c\x7a\xd0\x44\x9c\x64\xd8\xdc\x87\x8d\x0c\x47\x13\xab\x6d\x3e\x68\x26\x49\xe7\x5e\x1c\x7e\xe7\x65\x21\x5c\xeb\x21\x5b\x23\xbb\xf7\x9e\x21\xe3\xd5\xd2\x4b\xaf\x83\xe4\x96\x11\x32\x63\xef\x2a\x92\x62\xe1\xa5\x81\x88\x42\xf4\xbb\x4a\xa5\x77\x8d\x0d\xcb\x64\xac\x60\xde\x30\x87\xad\xd3\xbe\xe9\x9e\xb5\xec\x8e\xdb\xb7\x86\xa6\x7b\x6a\x9b\xad\xe7\x30\x35\xf3\x22\x25\x61\x0d\xc0\xc2\xb9\x2f\x8c\xb1\x3d\x9a\x8c\xda\xa3\x3e\xaa\x16\x59\xb6\x32\x3a\xa3\x41\xcb\x1a\xe2\x8d\x7d\x76\x91\xa8\x8c\xdd\xca\x9d\xda\xd4\xe4\xa3\x47\x65\xfb\x4f\xd4\xf1\xde\xde\x47\x8f\x74\x73\xbc\x7c\xf4\xe8\x6c\x32\x19\xbb\xe3\x91\x3d\xf9\x44\xed\x19\xfc\xd2\xea\x74\xe0\xea\xc6\xa6\x02\x06\x8e\xf6\xf7\x09\x94\x4e\xa8\x78\x01\x8e\x73\x26\x66\xd2\xcb\x72\x00\x71\xbb\x90\x31\x41\x2d\xbc\x1b\x2f\x8c\xa8\xda\xe8\x58\x0e\x2f\x83\x9a\x95\x53\xc7\x73\x69\xec\xf0\xb0\x62\xaa\xdd\x19\x52\xbc\xc6\x84\x64\x11\x48\xcb\x24\x00\x98\xdd\x2e\x03\x50\x44\x8d\x36\x52\x1a\xb6\x47\xd3\x09\xfc\xa7\x3f\xea\x6d\xaa\x3e\x17\x3d\x19\xcb\xd4\xcb\xb0\x35\x99\x5c\xa9\x63\x94\xfc\x3f\xe1\x07\xd8\x9a\x6c\xb1\x97\x25\x7b\x73\x04\xfe\x9e\x9f\xab\x2c\x59\xee\x11\x64\x8a\x1b\x34\xb9\x5c\xf8\x32\xcd\x44\xc3\xf7\x4e\xb2\x34\x97\xa2\x11\xe4\x29\x6f\xf7\xc9\xb3\xa7\x4f\xf6\x17\xfb\xcb\x7d\x25\x1a\x84\xe9\xc9\x72\x4d\x3f\x4d\xf9\xc6\x5b\xae\x22\xd9\xf4\x93\xa5\xf1\x39\xec\x8c\x52\x31\x4b\x93\xa5\xf0\x44\x73\x35\x7b\x23\x66\x61\xc4\x51\x98\xa4\x19\x5c\x84\x6b\x90\x2f\xc4\x79\x18\x07\x94\xa1\x68\xb0\x70\x16\xfa\x7a\xae\x14\xa9\x8f\x82\x04\x56\x08\xc4\x19\xbc\x4d\x66\x22\x4b\x8a\xfe\xdc\x71\x95\x86\x37\xd4\xf8\x5a\xae\x3f\xd1\xeb\x4a\x56\x70\x18\x15\x89\xd5\xb5\xaf\x0e\x0e\x45\x03\xe0\x91\x55\x1e\xbd\x91\xe4\x59\xf1\x26\x97\xa2\x11\x27\xe8\xa6\xfe\x67\xbd\xd0\xb2\xec\x44\x15\x8a\x1e\x02\xa9\x8c\xb6\x69\x4f\x5c\x4a\xba\x80\xbb\x0a\xe1\x5e\x39\x8c\xf1\xdc\x7c\x79\x6f\x83\xc2\x22\x86\x9f\xae\x56\x88\xa7\x08\x7b\x1d\x51\x54\x65\x12\x08\xd2\xa2\xbc\x38\x00\x0a\x80\xdb\xd7\xb8\xd1\x7e\xa1\x79\x25\x85\x32\x04\x28\x25\x57\x03\x58\x94\xc1\xa9\x58\xbe\x91\x7e\x0e\x80\x0d\x67\xd2\x42\x10\xbb\xec\xef\xe3\xd6\x04\x3e\xa7\xa9\x21\x22\x88\x29\x68\xf5\xa0\xbd\x6f\xac\xb1\x50\xf9\x8a\x60\x2d\x03\x8d\xcb\xb6\x2e\xd4\xc7\x64\xc2\x78\xae\xa9\x03\x5b\x81\x2d\x89\x1b\x51\x32\x9f\x63\x1b\x39\xa7\xd5\x85\xef\xc5\xe2\x4a\x8a\xda\x22\x59\x4a\x9d\xf3\x8b\x74\x5b\x33\xfa\x2d\xe6\x2a\xca\x01\x84\x03\xb5\x40\xc4\x06\x5e\xe6\x21\x99\xcb\x8b\x0a\x6f\x2c\xd7\xea\x75\xc4\xcc\x01\x6f\x9a\xa7\x52\x69\x4b\x28\x0c\x33\x79\x84\x8a\x30\xfb\x58\x11\x0d\xa5\xc2\x5f\x24\xc4\x50\x9d\xd3\x92\x18\xb8\xaf\x71\x36\x72\x28\x94\x0e\x0e\x9f\x36\xf7\xf1\xdf\xc1\xf1\xd1\xd1\xfe\x13\xa3\xe0\x38\x72\x69\xa3\x20\xac\x34\x49\x32\x63\xdc\x72\x9c\xf3\x0e\xe3\xd2\xa5\x81\x2a\xc3\xc6\xd1\xba\x2e\x64\xc9\x67\x3a\x28\x69\x66\xa9\x7c\x9d\x87\x69\xb1\x44\xa4\x9c\x70\xb6\x6e\xcc\xf2\x28\xaa\x21\x92\xfb\x1b\x2e\xd3\xed\x4b\xb3\xe5\xfc\x79\x4f\x6b\x59\x18\x5c\xd5\x0c\xbd\x21\x82\x50\xe0\x50\x6b\x06\x57\x00\xa5\xe0\x0c\xca\x67\x7e\x9e\x86\x19\x58\xd0\x1a\x62\x1f\xfb\x7d\x04\x75\xfb\x79\x65\x4b\x3e\xf8\x40\x6b\x02\x2d\x19\x26\x23\xf1\xdc\x34\xc7\xe2\xe5\x68\x6a\x0b\x5e\x61\xa7\x35\x69\x09\xa7\xd5\x35\x3f\xf8\xc0\x70\xcc\xb6\x6d\x4e\x5c\xf8\x22\x0c\x7c\xf0\xe1\x97\xdd\x8e\x79\x6e\xe3\xff\xff\xff\x7b\x8f\xc8\x23\xf2\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: 9006, mode: os.FileMode(420), modTime: time.Unix(1443200023, 0)}
|
info := bindataFileInfo{name: "conf/app.ini", size: 9146, mode: os.FileMode(420), modTime: time.Unix(1443222333, 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\xbc\x7d\xfd\x72\xdc\xc6\xae\xe7\xff\x7c\x0a\xc6\xb7\xbc\x4e\xaa\xe4\x49\x25\xd9\xaf\x4a\xc5\xc9\xca\x56\xfc\x71\xaf\x65\xe9\x5a\xca\x39\x7b\xd6\xe5\x62\xa8\x21\x35\xc3\xeb\x19\x72\x42\x72\x2c\xeb\xdc\xba\x55\xfb\x1a\xfb\x7a\xfb\x24\x0b\xfc\x00\xf4\x17\x39\x92\x7d\xce\xa9\xfd\x47\xe2\x74\xa3\xbf\xd0\x68\x34\x80\x46\xa3\xcb\xdd\xae\xa8\xea\x61\x99\x3f\xc9\x8f\xf3\x5d\xd9\xb4\x9b\x7a\x18\xf2\xa1\xde\x5c\x3f\x5e\x77\xc3\x58\x57\xf9\x8b\x66\xa4\xdf\xfd\xc7\x66\x59\x67\xd9\xba\xdb\xd6\x04\xfa\x92\xfe\x65\x55\x39\xac\xaf\xba\xb2\xaf\x28\xe1\xc4\xbe\xb3\xfa\xd3\x6e\xd3\xf5\x0c\xf4\xab\x7c\x65\xeb\x7a\xb3\xe3\x32\xf4\x2f\x1b\x9a\x55\x5b\x34\x2d\xfd\xbc\xa0\xaf\xfc\x55\x2b\x29\xdd\x7e\xb4\xa4\xb3\xfd\x28\x69\xfb\x9d\x25\xfd\xb6\xcb\xfa\x7a\xd5\x50\x6f\x7a\x4a\x7a\xab\x9f\xd9\x4d\x7d\x35\x34\x23\xb7\xf4\x67\xf9\xca\x3e\xd6\xfd\xd0\x74\x5c\xfb\x9f\xe4\x2b\xdb\x95\x2b\x06\x38\xa7\x7f\xd9\x58\x6f\x77\x9b\x12\x05\x2e\xf5\x33\xdb\x94\xed\x6a\x2f\x30\xaf\xf5\x33\x5b\xf6\x35\x65\x15\x6d\x7d\x43\xa9\xcf\xf0\x63\xb1\x58\x64\x7b\x42\x42\xb1\xeb\xbb\xeb\x66\x53\x17\x65\x5b\x15\x5b\x19\xe6\x6f\x94\x9e\x6b\x7a\x4e\xe9\x39\xa7\x63\x08\x75\x45\x43\x2d\xca\x41\xc7\x41\xb8\xa4\x91\x97\x43\x86\xaa\xda\x72\x6b\xa5\xf9\x33\xab\xb7\x65\xb3\x61\xac\x3d\xe6\x0f\xea\xf8\x30\xdc\x74\xc0\xed\xb9\x7e\x12\x12\x8a\xf1\x76\x57\x03\x07\x8f\x2f\xe9\x2b\x5b\x96\xbb\x71\xb9\x2e\xb9\x9f\xf2\x95\x11\xd0\xae\x23\x64\x74\xfd\x2d\xe0\xec\x47\xd6\xf5\xab\xb2\x6d\xfe\x5a\x8e\x82\xa0\xb3\xe0\x67\xb6\x6d\xfa\xbe\x63\xdc\x9e\xe2\x23\xa3\xa1\x17\x5c\x0f\xa5\xbc\x21\x2c\x04\xb5\x70\xce\xb6\x59\xf5\x82\x46\xce\x3c\xc5\x2f\xae\x85\xf3\xae\xbb\xfe\x83\x66\x3c\xe7\xcf\xa4\x28\x75\x42\x73\xe3\xf6\xcb\x96\x10\xaf\xb9\xa7\xf8\x11\x01\x0c\x59\x59\x6d\x09\x95\xbb\xb2\xad\x19\x47\xc7\xfc\x8b\xf0\x42\xbf\xb2\x72\xb9\xec\xf6\xed\x58\x0c\xf5\x38\x36\xed\x8a\x91\x7d\x2c\x49\xf9\x85\x26\x65\x41\x9e\x4b\xbb\xed\xf6\x6e\x3a\x29\xfd\x2f\xf4\x33\x3f\x97\x9f\x92\x17\x14\x42\xa6\x2b\xc9\x23\x19\x8a\xeb\xba\xae\x64\x2c\x43\xfe\x9c\xbe\xb3\xdd\x7e\xb3\x21\xac\xfd\xb1\xaf\x87\x91\x0b\x9d\xd3\x6f\x1a\xbf\xfc\xce\x9a\x61\xa0\x0f\x4a\x7e\x85\x8f\x8c\xa6\xae\x5d\x62\x30\xcf\xf0\x91\x65\xef\x86\xba\xec\x97\xeb\xf7\x99\xfc\x47\x5f\xf9\x83\x69\xef\xd0\xa4\x32\x21\x29\x11\x49\x0b\xd6\x40\xb6\xec\x2a\xfe\xf1\x8c\xfe\x51\xd5\x4d\x3b\x8c\xe5\x66\xf3\x3e\xd3\x0f\x06\x93\x2f\x99\x80\xb1\x19\x81\x05\x4d\xcc\x2f\xc6\x7a\x37\xf0\x0c\xe6\xcf\x9b\x7e\x18\x1f\x8f\x0d\x11\xeb\xdb\x7d\x9b\x55\xdd\xf2\x03\x2d\x03\x5e\xd2\x68\xf9\xd5\x75\x4e\xc8\x7a\x44\x0b\xa1\xdf\xb7\x2d\xa1\x27\x7f\xd1\x11\xca\xa8\x99\x86\xda\x3f\x01\xf4\x51\xbe\xdb\xd4\xe5\x40\x20\x75\x59\xe5\x3f\x95\xf9\x58\xf6\xab\x7a\x7c\xf2\xa0\xb8\xa2\xe5\xf7\xe1\x41\xbe\xee\xeb\xeb\x27\x0f\x1e\x0e\x0f\x7e\x7e\xb1\xa7\x62\x9b\xa6\xad\x87\x9f\xbe\x2d\x7f\xce\x97\x25\xe5\x10\x1a\x6f\xf3\xab\xfa\x9a\x57\x1b\xb5\x95\x13\x95\xb7\x2b\x5e\x69\xb7\xe3\x9a\x1b\x24\x4a\xa0\x8f\x21\xe7\xa5\xfe\x55\xc6\x13\x40\xac\xa0\xa8\xae\x8c\xad\xa1\x43\x48\xee\x69\x02\x4e\x6f\x2f\xfe\xf5\xf5\x51\x7e\x4e\xbc\x6d\xd5\xd7\xf8\xa6\x3f\x54\xe2\x87\x9c\x46\x7b\xd9\x9c\x3c\x5d\x64\x54\xd6\x10\x72\x52\x8e\xe5\x15\xf7\xdd\xcd\x3e\x67\xca\x22\x74\x79\x58\x8a\xcc\x2d\xc1\x19\x87\x31\x9a\x96\xb9\x85\x4c\x75\xe8\xf2\x77\x75\xbc\x61\x1e\x40\xe9\x0e\xb3\xe7\x82\x33\xaa\x2a\x7f\xf5\xe6\xcd\xd9\xc9\xd3\xbc\x6e\x57\x84\x99\xfc\xa6\x19\xd7\xf9\x7e\xbc\xfe\xef\xc5\xaa\x6e\xeb\xbe\xdc\x14\xcb\x86\x91\xd2\x13\xc1\xe6\x84\x25\x19\xe2\x22\x1b\x86\x0d\xb1\x28\x50\xc1\xc5\xc5\xeb\xfc\x94\x29\x61\x57\x8e\x6b\x74\x64\x5c\x67\xc3\x1f\x1b\x46\x94\x6b\xf0\x72\x5d\xe7\x58\x0c\x00\xea\xae\x53\xbc\xe4\x95\xf6\x75\x91\xd5\x7d\x5f\x10\x07\x1d\x6f\x19\xcd\x5a\xe7\x21\x68\xa9\x8e\xa8\xbd\xed\x46\x9a\xc6\x1c\xe5\xa4\x8a\xa6\xfd\x58\x6e\x9a\x8a\x90\xed\x11\x12\x97\x45\x62\xd5\xd1\xbc\x71\x69\xa2\xcc\xee\x06\x43\x2d\x97\xb4\x01\x0c\xf9\x83\xc5\x03\x70\xdc\x07\x8f\x1f\x2c\xb2\xb6\x2b\x84\x4b\x30\x6f\xae\x9a\xa1\xbc\x22\x3e\x2d\xfb\x46\x6f\x5c\xef\x2f\x4c\x3f\xd2\x15\x85\xc8\x23\x08\xc6\x2d\xef\x45\xd8\x02\x98\xb8\x4a\x62\xd8\x60\x36\xca\x66\xc2\xb1\x1b\x4f\x72\xf3\x2b\x6c\xc9\x25\x4c\xc6\x9c\xd9\x84\x19\x75\x1d\xef\x76\x9b\x66\x29\x4d\xbf\x90\x3c\x4f\x68\xbc\x33\x2b\x52\x42\x38\x10\x8a\xe5\x05\xe4\x42\xbd\x66\xb6\x95\x47\x7c\x1e\xe5\xd7\x35\xad\x9c\xf5\x7e\x25\xbb\xd3\xa6\xdb\x57\x5f\x81\xa1\xd8\xcc\x79\x7e\x92\xbf\xed\xa8\xc3\xa0\x0e\x07\xe0\x9b\x38\x26\xc6\xc0\xc2\x40\x5f\x6f\xbb\x91\x11\xa7\xc5\x1a\x9a\x9e\x9b\x86\x32\x69\xa4\x43\xf9\x91\xd8\xe2\xd8\xc9\x92\xac\x68\xc9\x2d\xb9\x62\xe2\x60\x7b\xda\xd1\x65\x59\x10\x1f\x91\xa5\x61\x69\x31\x0d\x02\x6a\xbb\xa7\xd5\xb4\xa6\xca\x18\xf1\x2c\x91\x50\x95\x73\xfd\xc4\x90\xa8\x1e\xac\x72\x5a\xb9\x1d\x6d\x9e\x3c\xd1\x27\xf8\xd0\xdf\x61\xfd\xd4\xab\xf2\xfa\x9a\x7a\x35\xd0\xaa\x78\x99\x2f\x37\x1d\x2d\xa9\xdf\xde\xbe\x1e\x78\xc1\xac\x8b\x5d\xd7\x43\x12\xa1\xac\x73\xfa\x74\x69\x01\xa2\x19\xa2\xdd\x6f\xaf\xe8\xd7\xcd\xba\x21\x46\x0d\xb4\x73\x09\x96\x92\x28\x95\x9a\xd8\x0f\x34\x85\x47\x39\x2d\x61\x1Line truncated
|
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xfd\x72\xdc\xc6\xae\xe7\xff\x7c\x0a\xc6\xb7\xbc\x4e\xaa\xe4\x49\x25\xd9\xaf\x4a\xc5\xc9\xca\x56\xfc\x71\xaf\x65\xe9\x5a\xca\x39\x7b\xd6\xe5\x62\xa8\x21\x35\xc3\xeb\x19\x72\x42\x72\x2c\xeb\xdc\xba\x55\xfb\x1a\xfb\x7a\xfb\x24\x0b\xfc\x00\xf4\x17\x39\x92\x7d\xce\xa9\xfd\x47\xe2\x74\xa3\xbf\xd0\x68\x34\x80\x46\xa3\xcb\xdd\xae\xa8\xea\x61\x99\x3f\xc9\x8f\xf3\x5d\xd9\xb4\x9b\x7a\x18\xf2\xa1\xde\x5c\x3f\x5e\x77\xc3\x58\x57\xf9\x8b\x66\xa4\xdf\xfd\xc7\x66\x59\x67\xd9\xba\xdb\xd6\x04\xfa\x92\xfe\x65\x55\x39\xac\xaf\xba\xb2\xaf\x28\xe1\xc4\xbe\xb3\xfa\xd3\x6e\xd3\xf5\x0c\xf4\xab\x7c\x65\xeb\x7a\xb3\xe3\x32\xf4\x2f\x1b\x9a\x55\x5b\x34\x2d\xfd\xbc\xa0\xaf\xfc\x55\x2b\x29\xdd\x7e\xb4\xa4\xb3\xfd\x28\x69\xfb\x9d\x25\xfd\xb6\xcb\xfa\x7a\xd5\x50\x6f\x7a\x4a\x7a\xab\x9f\xd9\x4d\x7d\x35\x34\x23\xb7\xf4\x67\xf9\xca\x3e\xd6\xfd\xd0\x74\x5c\xfb\x9f\xe4\x2b\xdb\x95\x2b\x06\x38\xa7\x7f\xd9\x58\x6f\x77\x9b\x12\x05\x2e\xf5\x33\xdb\x94\xed\x6a\x2f\x30\xaf\xf5\x33\x5b\xf6\x35\x65\x15\x6d\x7d\x43\xa9\xcf\xf0\x63\xb1\x58\x64\x7b\x42\x42\xb1\xeb\xbb\xeb\x66\x53\x17\x65\x5b\x15\x5b\x19\xe6\x6f\x94\x9e\x6b\x7a\x4e\xe9\x39\xa7\x63\x08\x75\x45\x43\x2d\xca\x41\xc7\x41\xb8\xa4\x91\x97\x43\x86\xaa\xda\x72\x6b\xa5\xf9\x33\xab\xb7\x65\xb3\x61\xac\x3d\xe6\x0f\xea\xf8\x30\xdc\x74\xc0\xed\xb9\x7e\x12\x12\x8a\xf1\x76\x57\x03\x07\x8f\x2f\xe9\x2b\x5b\x96\xbb\x71\xb9\x2e\xb9\x9f\xf2\x95\x11\xd0\xae\x23\x64\x74\xfd\x2d\xe0\xec\x47\xd6\xf5\xab\xb2\x6d\xfe\x5a\x8e\x82\xa0\xb3\xe0\x67\xb6\x6d\xfa\xbe\x63\xdc\x9e\xe2\x23\xa3\xa1\x17\x5c\x0f\xa5\xbc\x21\x2c\x04\xb5\x70\xce\xb6\x59\xf5\x82\x46\xce\x3c\xc5\x2f\xae\x85\xf3\xae\xbb\xfe\x83\x66\x3c\xe7\xcf\xa4\x28\x75\x42\x73\xe3\xf6\xcb\x96\x10\xaf\xb9\xa7\xf8\x11\x01\x0c\x59\x59\x6d\x09\x95\xbb\xb2\xad\x19\x47\xc7\xfc\x8b\xf0\x42\xbf\xb2\x72\xb9\xec\xf6\xed\x58\x0c\xf5\x38\x36\xed\x8a\x91\x7d\x2c\x49\xf9\x85\x26\x65\x41\x9e\x4b\xbb\xed\xf6\x6e\x3a\x29\xfd\x2f\xf4\x33\x3f\x97\x9f\x92\x17\x14\x42\xa6\x2b\xc9\x23\x19\x8a\xeb\xba\xae\x64\x2c\x43\xfe\x9c\xbe\xb3\xdd\x7e\xb3\x21\xac\xfd\xb1\xaf\x87\x91\x0b\x9d\xd3\x6f\x1a\xbf\xfc\xce\x9a\x61\xa0\x0f\x4a\x7e\x85\x8f\x8c\xa6\xae\x5d\x62\x30\xcf\xf0\x91\x65\xef\x86\xba\xec\x97\xeb\xf7\x99\xfc\x47\x5f\xf9\x83\x69\xef\xd0\xa4\x32\x21\x29\x11\x49\x0b\xd6\x40\xb6\xec\x2a\xfe\xf1\x8c\xfe\x51\xd5\x4d\x3b\x8c\xe5\x66\xf3\x3e\xd3\x0f\x06\x93\x2f\x99\x80\xb1\x19\x81\x05\x4d\xcc\x2f\xc6\x7a\x37\xf0\x0c\xe6\xcf\x9b\x7e\x18\x1f\x8f\x0d\x11\xeb\xdb\x7d\x9b\x55\xdd\xf2\x03\x2d\x03\x5e\xd2\x68\xf9\xd5\x75\x4e\xc8\x7a\x44\x0b\xa1\xdf\xb7\x2d\xa1\x27\x7f\xd1\x11\xca\xa8\x99\x86\xda\x3f\x01\xf4\x51\xbe\xdb\xd4\xe5\x40\x20\x75\x59\xe5\x3f\x95\xf9\x58\xf6\xab\x7a\x7c\xf2\xa0\xb8\xa2\xe5\xf7\xe1\x41\xbe\xee\xeb\xeb\x27\x0f\x1e\x0e\x0f\x7e\x7e\xb1\xa7\x62\x9b\xa6\xad\x87\x9f\xbe\x2d\x7f\xce\x97\x25\xe5\x10\x1a\x6f\xf3\xab\xfa\x9a\x57\x1b\xb5\x95\x13\x95\xb7\x2b\x5e\x69\xb7\xe3\x9a\x1b\x24\x4a\xa0\x8f\x21\xe7\xa5\xfe\x55\xc6\x13\x40\xac\xa0\xa8\xae\x8c\xad\xa1\x43\x48\xee\x69\x02\x4e\x6f\x2f\xfe\xf5\xf5\x51\x7e\x4e\xbc\x6d\xd5\xd7\xf8\xa6\x3f\x54\xe2\x87\x9c\x46\x7b\xd9\x9c\x3c\x5d\x64\x54\xd6\x10\x72\x52\x8e\xe5\x15\xf7\xdd\xcd\x3e\x67\xca\x22\x74\x79\x58\x8a\xcc\x2d\xc1\x19\x87\x31\x9a\x96\xb9\x85\x4c\x75\xe8\xf2\x77\x75\xbc\x61\x1e\x40\xe9\x0e\xb3\xe7\x82\x33\xaa\x2a\x7f\xf5\xe6\xcd\xd9\xc9\xd3\xbc\x6e\x57\x84\x99\xfc\xa6\x19\xd7\xf9\x7e\xbc\xfe\xef\xc5\xaa\x6e\xeb\xbe\xdc\x14\xcb\x86\x91\xd2\x13\xc1\xe6\x84\x25\x19\xe2\x22\x1b\x86\x0d\xb1\x28\x50\xc1\xc5\xc5\xeb\xfc\x94\x29\x61\x57\x8e\x6b\x74\x64\x5c\x67\xc3\x1f\x1b\x46\x94\x6b\xf0\x72\x5d\xe7\x58\x0c\x00\xea\xae\x53\xbc\xe4\x95\xf6\x75\x91\xd5\x7d\x5f\x10\x07\x1d\x6f\x19\xcd\x5a\xe7\x21\x68\xa9\x8e\xa8\xbd\xed\x46\x9a\xc6\x1c\xe5\xa4\x8a\xa6\xfd\x58\x6e\x9a\x8a\x90\xed\x11\x12\x97\x45\x62\xd5\xd1\xbc\x71\x69\xa2\xcc\xee\x06\x43\x2d\x97\xb4\x01\x0c\xf9\x83\xc5\x03\x70\xdc\x07\x8f\x1f\x2c\xb2\xb6\x2b\x84\x4b\x30\x6f\xae\x9a\xa1\xbc\x22\x3e\x2d\xfb\x46\x6f\x5c\xef\x2f\x4c\x3f\xd2\x15\x85\xc8\x23\x08\xc6\x2d\xef\x45\xd8\x02\x98\xb8\x4a\x62\xd8\x60\x36\xca\x66\xc2\xb1\x1b\x4f\x72\xf3\x2b\x6c\xc9\x25\x4c\xc6\x9c\xd9\x84\x19\x75\x1d\xef\x76\x9b\x66\x29\x4d\xbf\x90\x3c\x4f\x68\xbc\x33\x2b\x52\x42\x38\x10\x8a\xe5\x05\xe4\x42\xbd\x66\xb6\x95\x47\x7c\x1e\xe5\xd7\x35\xad\x9c\xf5\x7e\x25\xbb\xd3\xa6\xdb\x57\x5f\x81\xa1\xd8\xcc\x79\x7e\x92\xbf\xed\xa8\xc3\xa0\x0e\x07\xe0\x9b\x38\x26\xc6\xc0\xc2\x40\x5f\x6f\xbb\x91\x11\xa7\xc5\x1a\x9a\x9e\x9b\x86\x32\x69\xa4\x43\xf9\x91\xd8\xe2\xd8\xc9\x92\xac\x68\xc9\x2d\xb9\x62\xe2\x60\x7b\xda\xd1\x65\x59\x10\x1f\x91\xa5\x61\x69\x31\x0d\x02\x6a\xbb\xa7\xd5\xb4\xa6\xca\x18\xf1\x2c\x91\x50\x95\x73\xfd\xc4\x90\xa8\x1e\xac\x72\x5a\xb9\x1d\x6d\x9e\x3c\xd1\x27\xf8\xd0\xdf\x61\xfd\xd4\xab\xf2\xfa\x9a\x7a\x35\xd0\xaa\x78\x99\x2f\x37\x1d\x2d\xa9\xdf\xde\xbe\x1e\x78\xc1\xac\x8b\x5d\xd7\x43\x12\xa1\xac\x73\xfa\x74\x69\x01\xa2\x19\xa2\xdd\x6f\xaf\xe8\xd7\xcd\xba\x21\x46\x0d\xb4\x73\x09\x96\x92\x28\x95\x9a\xd8\x0f\x34\x85\x47\x39\x2d\x61\x1Line 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: 43840, mode: os.FileMode(420), modTime: time.Unix(1442531624, 0)}
|
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 43908, mode: os.FileMode(420), modTime: time.Unix(1443223910, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-4
@@ -17,10 +17,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
AUTH_ACTIVATE base.TplName = "mail/auth/activate"
|
AUTH_ACTIVATE base.TplName = "mail/auth/activate"
|
||||||
AUTH_ACTIVATE_EMAIL base.TplName = "mail/auth/activate_email"
|
AUTH_ACTIVATE_EMAIL base.TplName = "mail/auth/activate_email"
|
||||||
AUTH_RESET_PASSWORD base.TplName = "mail/auth/reset_passwd"
|
AUTH_REGISTER_NOTIFY base.TplName = "mail/auth/register_notify"
|
||||||
AUTH_REGISTER_SUCCESS base.TplName = "mail/auth/register_success"
|
AUTH_RESET_PASSWORD base.TplName = "mail/auth/reset_passwd"
|
||||||
|
|
||||||
NOTIFY_COLLABORATOR base.TplName = "mail/notify/collaborator"
|
NOTIFY_COLLABORATOR base.TplName = "mail/notify/collaborator"
|
||||||
NOTIFY_MENTION base.TplName = "mail/notify/mention"
|
NOTIFY_MENTION base.TplName = "mail/notify/mention"
|
||||||
@@ -64,6 +64,20 @@ func SendResetPasswordMail(c *macaron.Context, u *models.User) {
|
|||||||
SendUserMail(c, u, AUTH_RESET_PASSWORD, u.GenerateActivateCode(), c.Tr("mail.reset_password"), "reset password")
|
SendUserMail(c, u, AUTH_RESET_PASSWORD, u.GenerateActivateCode(), c.Tr("mail.reset_password"), "reset password")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SendRegisterNotifyMail triggers a notify e-mail by admin created a account.
|
||||||
|
func SendRegisterNotifyMail(c *macaron.Context, u *models.User) {
|
||||||
|
body, err := c.HTMLString(string(AUTH_REGISTER_NOTIFY), ComposeTplData(u))
|
||||||
|
if err != nil {
|
||||||
|
log.Error(4, "HTMLString: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
msg := NewMessage([]string{u.Email}, c.Tr("mail.register_notify"), body)
|
||||||
|
msg.Info = fmt.Sprintf("UID: %d, registration notify", u.Id)
|
||||||
|
|
||||||
|
SendAsync(msg)
|
||||||
|
}
|
||||||
|
|
||||||
// SendActivateAccountMail sends confirmation e-mail.
|
// SendActivateAccountMail sends confirmation e-mail.
|
||||||
func SendActivateEmailMail(c *macaron.Context, u *models.User, email *models.EmailAddress) {
|
func SendActivateEmailMail(c *macaron.Context, u *models.User, email *models.EmailAddress) {
|
||||||
data := ComposeTplData(u)
|
data := ComposeTplData(u)
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import (
|
|||||||
"github.com/gogits/gogs/modules/auth"
|
"github.com/gogits/gogs/modules/auth"
|
||||||
"github.com/gogits/gogs/modules/base"
|
"github.com/gogits/gogs/modules/base"
|
||||||
"github.com/gogits/gogs/modules/log"
|
"github.com/gogits/gogs/modules/log"
|
||||||
|
"github.com/gogits/gogs/modules/mailer"
|
||||||
"github.com/gogits/gogs/modules/middleware"
|
"github.com/gogits/gogs/modules/middleware"
|
||||||
"github.com/gogits/gogs/modules/setting"
|
"github.com/gogits/gogs/modules/setting"
|
||||||
)
|
)
|
||||||
@@ -60,6 +61,8 @@ func NewUser(ctx *middleware.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx.Data["Sources"] = sources
|
ctx.Data["Sources"] = sources
|
||||||
|
|
||||||
|
ctx.Data["CanSendEmail"] = setting.MailService != nil
|
||||||
ctx.HTML(200, USER_NEW)
|
ctx.HTML(200, USER_NEW)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,6 +78,8 @@ func NewUserPost(ctx *middleware.Context, form auth.AdminCrateUserForm) {
|
|||||||
}
|
}
|
||||||
ctx.Data["Sources"] = sources
|
ctx.Data["Sources"] = sources
|
||||||
|
|
||||||
|
ctx.Data["CanSendEmail"] = setting.MailService != nil
|
||||||
|
|
||||||
if ctx.HasError() {
|
if ctx.HasError() {
|
||||||
ctx.HTML(200, USER_NEW)
|
ctx.HTML(200, USER_NEW)
|
||||||
return
|
return
|
||||||
@@ -118,6 +123,11 @@ func NewUserPost(ctx *middleware.Context, form auth.AdminCrateUserForm) {
|
|||||||
}
|
}
|
||||||
log.Trace("Account created by admin(%s): %s", ctx.User.Name, u.Name)
|
log.Trace("Account created by admin(%s): %s", ctx.User.Name, u.Name)
|
||||||
|
|
||||||
|
// Send e-mail notification.
|
||||||
|
if form.SendNotify && setting.MailService != nil {
|
||||||
|
mailer.SendRegisterNotifyMail(ctx.Context, u)
|
||||||
|
}
|
||||||
|
|
||||||
ctx.Flash.Success(ctx.Tr("admin.users.new_success", u.Name))
|
ctx.Flash.Success(ctx.Tr("admin.users.new_success", u.Name))
|
||||||
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + com.ToStr(u.Id))
|
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + com.ToStr(u.Id))
|
||||||
}
|
}
|
||||||
|
|||||||
+32
-33
@@ -20,43 +20,42 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{range .Notices}}
|
{{range .Notices}}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{.Id}}</td>
|
<td>{{.Id}}</td>
|
||||||
<td>{{$.i18n.Tr .TrStr}}</td>
|
<td>{{$.i18n.Tr .TrStr}}</td>
|
||||||
<td><span>{{.Description}}</span></td>
|
<td><span>{{.Description}}</span></td>
|
||||||
<td>{{.Created}}</td>
|
<td>{{.Created}}</td>
|
||||||
<td><a href="{{AppSubUrl}}/admin/notices/{{.Id}}/delete"><i class="fa fa-trash-o text-red"></i></a></td>
|
<td><a href="{{AppSubUrl}}/admin/notices/{{.Id}}/delete"><i class="fa fa-trash-o text-red"></i></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{{end}}
|
{{end}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
|
||||||
|
|
||||||
{{with .Page}}
|
|
||||||
{{if gt .TotalPages 1}}
|
|
||||||
<div class="center page buttons">
|
|
||||||
<div class="ui borderless pagination menu">
|
|
||||||
<a class="{{if .IsFirst}}disabled{{end}} item" href="{{$.Link}}"><i class="angle double left icon"></i> {{$.i18n.Tr "admin.first_page"}}</a>
|
|
||||||
<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}"{{end}}>
|
|
||||||
<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
|
|
||||||
</a>
|
|
||||||
{{range .Pages}}
|
|
||||||
{{if eq .Num -1}}
|
|
||||||
<a class="disabled item">...</a>
|
|
||||||
{{else}}
|
|
||||||
<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?page={{.Num}}"{{end}}>{{.Num}}</a>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}"{{end}}>
|
|
||||||
{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
|
|
||||||
</a>
|
|
||||||
<a class="{{if .IsLast}}disabled{{end}} item" href="{{$.Link}}?page={{.TotalPages}}">{{$.i18n.Tr "admin.last_page"}} <i class="angle double right icon"></i></a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
|
{{with .Page}}
|
||||||
|
{{if gt .TotalPages 1}}
|
||||||
|
<div class="center page buttons">
|
||||||
|
<div class="ui borderless pagination menu">
|
||||||
|
<a class="{{if .IsFirst}}disabled{{end}} item" href="{{$.Link}}"><i class="angle double left icon"></i> {{$.i18n.Tr "admin.first_page"}}</a>
|
||||||
|
<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}"{{end}}>
|
||||||
|
<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
|
||||||
|
</a>
|
||||||
|
{{range .Pages}}
|
||||||
|
{{if eq .Num -1}}
|
||||||
|
<a class="disabled item">...</a>
|
||||||
|
{{else}}
|
||||||
|
<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?page={{.Num}}"{{end}}>{{.Num}}</a>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}"{{end}}>
|
||||||
|
{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
|
||||||
|
</a>
|
||||||
|
<a class="{{if .IsLast}}disabled{{end}} item" href="{{$.Link}}?page={{.TotalPages}}">{{$.i18n.Tr "admin.last_page"}} <i class="angle double right icon"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,65 +2,62 @@
|
|||||||
<div class="admin user">
|
<div class="admin user">
|
||||||
<div class="ui container">
|
<div class="ui container">
|
||||||
<div class="ui grid">
|
<div class="ui grid">
|
||||||
{{template "admin/navbar" .}}
|
{{template "admin/navbar" .}}
|
||||||
<div class="twelve wide column content">
|
<div class="twelve wide column content">
|
||||||
{{template "base/alert" .}}
|
{{template "base/alert" .}}
|
||||||
<h4 class="ui top attached header">
|
<h4 class="ui top attached header">
|
||||||
{{.i18n.Tr "admin.orgs.org_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
|
{{.i18n.Tr "admin.orgs.org_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
|
||||||
</h4>
|
</h4>
|
||||||
<div class="ui attached table segment">
|
<div class="ui attached table segment">
|
||||||
<table class="ui very basic striped table">
|
<table class="ui very basic striped table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>ID</th>
|
<th>ID</th>
|
||||||
<th>{{.i18n.Tr "admin.orgs.name"}}</th>
|
<th>{{.i18n.Tr "admin.orgs.name"}}</th>
|
||||||
<th>{{.i18n.Tr "email"}}</th>
|
<th>{{.i18n.Tr "admin.orgs.teams"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.orgs.teams"}}</th>
|
<th>{{.i18n.Tr "admin.orgs.members"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.orgs.members"}}</th>
|
<th>{{.i18n.Tr "admin.users.repos"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.users.repos"}}</th>
|
<th>{{.i18n.Tr "admin.users.created"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.users.created"}}</th>
|
</tr>
|
||||||
</tr>
|
</thead>
|
||||||
</thead>
|
<tbody>
|
||||||
<tbody>
|
{{range .Orgs}}
|
||||||
{{range .Orgs}}
|
<tr>
|
||||||
<tr>
|
<td>{{.Id}}</td>
|
||||||
<td>{{.Id}}</td>
|
<td><a href="{{AppSubUrl}}/org/{{.Name}}">{{.Name}}</a></td>
|
||||||
<td><a href="{{AppSubUrl}}/org/{{.Name}}">{{.Name}}</a></td>
|
<td>{{.NumTeams}}</td>
|
||||||
<td>{{.Email}}</td>
|
<td>{{.NumMembers}}</td>
|
||||||
<td>{{.NumTeams}}</td>
|
<td>{{.NumRepos}}</td>
|
||||||
<td>{{.NumMembers}}</td>
|
<td><span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span></td>
|
||||||
<td>{{.NumRepos}}</td>
|
</tr>
|
||||||
<td><span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span></td>
|
{{end}}
|
||||||
</tr>
|
</tbody>
|
||||||
{{end}}
|
</table>
|
||||||
</tbody>
|
</div>
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{with .Page}}
|
|
||||||
{{if gt .TotalPages 1}}
|
|
||||||
<div class="center page buttons">
|
|
||||||
<div class="ui borderless pagination menu">
|
|
||||||
<a class="{{if .IsFirst}}disabled{{end}} item" href="{{$.Link}}"><i class="angle double left icon"></i> {{$.i18n.Tr "admin.first_page"}}</a>
|
|
||||||
<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}"{{end}}>
|
|
||||||
<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
|
|
||||||
</a>
|
|
||||||
{{range .Pages}}
|
|
||||||
{{if eq .Num -1}}
|
|
||||||
<a class="disabled item">...</a>
|
|
||||||
{{else}}
|
|
||||||
<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?page={{.Num}}"{{end}}>{{.Num}}</a>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}"{{end}}>
|
|
||||||
{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
|
|
||||||
</a>
|
|
||||||
<a class="{{if .IsLast}}disabled{{end}} item" href="{{$.Link}}?page={{.TotalPages}}">{{$.i18n.Tr "admin.last_page"}} <i class="angle double right icon"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
|
{{with .Page}}
|
||||||
|
{{if gt .TotalPages 1}}
|
||||||
|
<div class="center page buttons">
|
||||||
|
<div class="ui borderless pagination menu">
|
||||||
|
<a class="{{if .IsFirst}}disabled{{end}} item" href="{{$.Link}}"><i class="angle double left icon"></i> {{$.i18n.Tr "admin.first_page"}}</a>
|
||||||
|
<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}"{{end}}>
|
||||||
|
<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
|
||||||
|
</a>
|
||||||
|
{{range .Pages}}
|
||||||
|
{{if eq .Num -1}}
|
||||||
|
<a class="disabled item">...</a>
|
||||||
|
{{else}}
|
||||||
|
<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?page={{.Num}}"{{end}}>{{.Num}}</a>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}"{{end}}>
|
||||||
|
{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
|
||||||
|
</a>
|
||||||
|
<a class="{{if .IsLast}}disabled{{end}} item" href="{{$.Link}}?page={{.TotalPages}}">{{$.i18n.Tr "admin.last_page"}} <i class="angle double right icon"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,70 +1,69 @@
|
|||||||
{{template "base/head" .}}
|
{{template "base/head" .}}
|
||||||
<div class="admin user">
|
<div class="admin user">
|
||||||
<div class="ui container">
|
<div class="ui container">
|
||||||
<div class="ui grid">
|
<div class="ui grid">
|
||||||
{{template "admin/navbar" .}}
|
{{template "admin/navbar" .}}
|
||||||
<div class="twelve wide column content">
|
<div class="twelve wide column content">
|
||||||
{{template "base/alert" .}}
|
{{template "base/alert" .}}
|
||||||
<h4 class="ui top attached header">
|
<h4 class="ui top attached header">
|
||||||
{{.i18n.Tr "admin.repos.repo_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
|
{{.i18n.Tr "admin.repos.repo_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
|
||||||
</h4>
|
</h4>
|
||||||
<div class="ui attached table segment">
|
<div class="ui attached table segment">
|
||||||
<table class="ui very basic striped table">
|
<table class="ui very basic striped table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>ID</th>
|
<th>ID</th>
|
||||||
<th>{{.i18n.Tr "admin.repos.owner"}}</th>
|
<th>{{.i18n.Tr "admin.repos.owner"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.repos.name"}}</th>
|
<th>{{.i18n.Tr "admin.repos.name"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.repos.private"}}</th>
|
<th>{{.i18n.Tr "admin.repos.private"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.repos.watches"}}</th>
|
<th>{{.i18n.Tr "admin.repos.watches"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.repos.stars"}}</th>
|
<th>{{.i18n.Tr "admin.repos.stars"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.repos.issues"}}</th>
|
<th>{{.i18n.Tr "admin.repos.issues"}}</th>
|
||||||
<th>{{.i18n.Tr "admin.users.created"}}</th>
|
<th>{{.i18n.Tr "admin.users.created"}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{range .Repos}}
|
{{range .Repos}}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{.ID}}</td>
|
<td>{{.ID}}</td>
|
||||||
<td><a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a></td>
|
<td><a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a></td>
|
||||||
<td><a href="{{AppSubUrl}}/{{.Owner.Name}}/{{.Name}}">{{.Name}}</a></td>
|
<td><a href="{{AppSubUrl}}/{{.Owner.Name}}/{{.Name}}">{{.Name}}</a></td>
|
||||||
<td><i class="fa fa{{if .IsPrivate}}-check{{end}}-square-o"></i></td>
|
<td><i class="fa fa{{if .IsPrivate}}-check{{end}}-square-o"></i></td>
|
||||||
<td>{{.NumWatches}}</td>
|
<td>{{.NumWatches}}</td>
|
||||||
<td>{{.NumStars}}</td>
|
<td>{{.NumStars}}</td>
|
||||||
<td>{{.NumIssues}}</td>
|
<td>{{.NumIssues}}</td>
|
||||||
<td><span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span></td>
|
<td><span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
{{end}}
|
{{end}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{with .Page}}
|
||||||
|
{{if gt .TotalPages 1}}
|
||||||
|
<div class="center page buttons">
|
||||||
|
<div class="ui borderless pagination menu">
|
||||||
|
<a class="{{if .IsFirst}}disabled{{end}} item" href="{{$.Link}}"><i class="angle double left icon"></i> {{$.i18n.Tr "admin.first_page"}}</a>
|
||||||
|
<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}"{{end}}>
|
||||||
|
<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
|
||||||
|
</a>
|
||||||
|
{{range .Pages}}
|
||||||
|
{{if eq .Num -1}}
|
||||||
|
<a class="disabled item">...</a>
|
||||||
|
{{else}}
|
||||||
|
<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?page={{.Num}}"{{end}}>{{.Num}}</a>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}"{{end}}>
|
||||||
|
{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
|
||||||
|
</a>
|
||||||
|
<a class="{{if .IsLast}}disabled{{end}} item" href="{{$.Link}}?page={{.TotalPages}}">{{$.i18n.Tr "admin.last_page"}} <i class="angle double right icon"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{with .Page}}
|
|
||||||
{{if gt .TotalPages 1}}
|
|
||||||
<div class="center page buttons">
|
|
||||||
<div class="ui borderless pagination menu">
|
|
||||||
<a class="{{if .IsFirst}}disabled{{end}} item" href="{{$.Link}}"><i class="angle double left icon"></i> {{$.i18n.Tr "admin.first_page"}}</a>
|
|
||||||
<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}"{{end}}>
|
|
||||||
<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
|
|
||||||
</a>
|
|
||||||
{{range .Pages}}
|
|
||||||
{{if eq .Num -1}}
|
|
||||||
<a class="disabled item">...</a>
|
|
||||||
{{else}}
|
|
||||||
<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?page={{.Num}}"{{end}}>{{.Num}}</a>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}"{{end}}>
|
|
||||||
{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
|
|
||||||
</a>
|
|
||||||
<a class="{{if .IsLast}}disabled{{end}} item" href="{{$.Link}}?page={{.TotalPages}}">{{$.i18n.Tr "admin.last_page"}} <i class="angle double right icon"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{template "base/footer" .}}
|
{{template "base/footer" .}}
|
||||||
@@ -44,6 +44,16 @@
|
|||||||
<input id="password" name="password" type="password" value="{{.password}}" {{if eq .login_type "0-0"}}required{{end}}>
|
<input id="password" name="password" type="password" value="{{.password}}" {{if eq .login_type "0-0"}}required{{end}}>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Send register notify e-mail -->
|
||||||
|
{{if .CanSendEmail}}
|
||||||
|
<div class="inline field">
|
||||||
|
<div class="ui checkbox">
|
||||||
|
<label><strong>{{.i18n.Tr "admin.users.send_register_notify"}}</strong></label>
|
||||||
|
<input name="send_notify" type="checkbox" {{if .send_notify}}checked{{end}}>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<button class="ui green button">{{.i18n.Tr "admin.users.new_account"}}</button>
|
<button class="ui green button">{{.i18n.Tr "admin.users.new_account"}}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<title>{{.User.Name}}, welcome to {{.AppName}}</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<p>Hi <b>{{.User.Name}}</b>, this is your registration confirmation email for {{.AppName}}!</p>
|
||||||
|
<p>You can now login via username: {{.User.Name}}.</p>
|
||||||
|
<p>© 2015 <a target="_blank" href="http://gogs.io">Gogs: Go Git Service</a></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<title>{{.User.Name}}, welcome to {{.AppName}}</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="mail register success">
|
|
||||||
<div class="ui segment">
|
|
||||||
<div class="ui header">
|
|
||||||
<img class="ui image" src="{{.AppUrl}}/img/favicon.png">
|
|
||||||
{{.AppName}}
|
|
||||||
</div>
|
|
||||||
<div class="ui divider"></div>
|
|
||||||
<p>Hi <b>{{.User.Name}}</b>, this is your registration email for {{.AppName}}!</p>
|
|
||||||
<p>Please click the following link to verify your e-mail address within <b>{{.ActiveCodeLives}} hours</b>:</p>
|
|
||||||
<p><a href="{{.AppUrl}}user/activate?code={{.Code}}">{{.AppUrl}}user/activate?code={{.Code}}</a></p>
|
|
||||||
<p>Not working? Try copying and pasting it to your browser.</p>
|
|
||||||
</div>
|
|
||||||
<p class="copyright text grey">© 2015 <a target="_blank" href="http://gogs.io">Gogs: Go Git Service</a></p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Reference in new issue
Block a user