finish new auth e-mails

This commit is contained in:
Unknwon committed 2015-09-17 14:57:24 -04:00
1 parent 923873db85
commit 9d36fc6986
13 files changed
+145 -165

No files matched your search

+3 -2
View File
@@ -161,9 +161,10 @@ reset_password_helper = Click here to reset your password
password_too_short = Password length cannot be less then 6. password_too_short = Password length cannot be less then 6.
[mail] [mail]
register_success = Register success, Welcome
activate_account = Please activate your account activate_account = Please activate your account
activate_email = Verify your e-mail address activate_email = Verify your e-mail address
reset_password = Reset your password
register_success = Register success, Welcome
[modal] [modal]
yes = Yes yes = Yes
@@ -281,7 +282,7 @@ email_deletion_desc = Delete this e-mail address will remove related information
email_deletion_success = E-mail has been deleted successfully! email_deletion_success = E-mail has been deleted successfully!
add_new_email = Add new e-mail address add_new_email = Add new e-mail address
add_email = Add e-mail add_email = Add e-mail
add_email_confirmation_sent = A new confirmation e-mail has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the confirmation process. add_email_confirmation_sent = A new confirmation e-mail has been sent to '%s', please check your inbox within the next %d hours to complete the confirmation process.
add_email_success = Your new E-mail address was successfully added. add_email_success = Your new E-mail address was successfully added.
manage_ssh_keys = Manage SSH Keys manage_ssh_keys = Manage SSH Keys
+17 -17
View File
@@ -299,7 +299,7 @@ func confAppIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/app.ini", size: 9883, mode: os.FileMode(420), modTime: time.Unix(1442459090, 0)} info := bindataFileInfo{name: "conf/app.ini", size: 9883, mode: os.FileMode(420), modTime: time.Unix(1442513956, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4319,7 +4319,7 @@ func confLocaleTranslators() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/TRANSLATORS", size: 762, mode: os.FileMode(420), modTime: time.Unix(1441373556, 0)} info := bindataFileInfo{name: "conf/locale/TRANSLATORS", size: 762, mode: os.FileMode(420), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4339,7 +4339,7 @@ func confLocaleLocale_bgBgIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_bg-BG.ini", size: 65777, mode: os.FileMode(493), modTime: time.Unix(1442001498, 0)} info := bindataFileInfo{name: "conf/locale/locale_bg-BG.ini", size: 65777, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4359,12 +4359,12 @@ func confLocaleLocale_deDeIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_de-DE.ini", size: 46889, mode: os.FileMode(493), modTime: time.Unix(1442448353, 0)} info := bindataFileInfo{name: "conf/locale/locale_de-DE.ini", size: 46889, mode: os.FileMode(493), modTime: time.Unix(1442513956, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
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\xc8\x8e\x27\xfe\x9d\x4f\xc1\xf6\x84\xff\xee\x8e\x90\xcb\xd1\xdd\xff\xbd\x44\x47\xdb\xbd\xb2\xd4\xbe\xcc\x58\x96\xc6\x52\x9f\xb3\x67\x1d\x8e\x6a\x56\x91\xaa\xe2\x71\x15\x59\x4d\xb2\x2c\xeb\x4c\x4c\xc4\xbe\xc6\xbe\xde\x3e\xc9\x02\x3f\x00\x79\x23\x4b\xb2\xcf\x99\xd8\xfd\x22\xb1\x32\x91\x37\x24\x12\x09\x20\x91\xc8\x62\xb7\x9b\x97\x55\xbf\xcc\x9f\xe6\xc7\xf9\xae\xa8\x9b\x4d\xd5\xf7\x79\x5f\x6d\xae\x1f\xaf\xdb\x7e\xa8\xca\xfc\x65\x3d\xd0\xef\xee\x53\xbd\xac\xb2\x6c\xdd\x6e\x2b\x02\x7d\x45\xff\xb2\xb2\xe8\xd7\x8b\xb6\xe8\x4a\x4a\x38\xb5\xef\xac\xfa\xbc\xdb\xb4\x1d\x03\xfd\x2a\x5f\xd9\xba\xda\xec\xb8\x0c\xfd\xcb\xfa\x7a\xd5\xcc\xeb\x86\x7e\x5e\xd2\x57\xfe\xba\xc9\xfa\x76\x59\x17\x9b\x79\x90\x81\x04\xcb\xff\x29\xff\xa1\x29\xf3\xcb\xa1\xda\xe5\x3f\xf7\xdb\x62\xb3\x79\x56\xf4\x28\x32\x54\x79\xb1\x5c\xb6\xfb\x66\xf8\xf9\x89\x64\x48\xe5\xed\x7e\xb0\xda\xcf\xf7\x83\xa4\xed\x77\x96\xf4\xdb\x2e\xeb\xaa\x55\x4d\x03\xeb\x28\xe9\x9d\x7e\x66\x37\xd5\xa2\xaf\x07\xee\xf4\x9f\xe5\x2b\xfb\x54\x75\x7d\xdd\x72\x7f\xfe\x24\x5f\xd9\xae\x58\x31\xc0\x05\xfd\xcb\x86\x6a\xbb\xdb\x14\x28\x70\xa5\x9f\xd9\xa6\x68\x56\x7b\x81\x79\xa3\x9f\xd9\xb2\xab\x28\x6b\xde\x54\x37\x94\x7a\x82\x1f\xb3\xd9\x2c\xdb\x13\x3e\xe7\xbb\xae\xbd\xae\x37\xd5\xbc\x68\xca\xf9\x56\x30\xf6\x1b\xa5\xe7\x9a\x9e\x53\x7a\xce\xe9\x18\x42\x55\x12\x72\xe6\x45\xaf\xe3\xa0\x69\x21\x5c\x15\x7d\x86\xaa\x9a\x62\x6b\xa5\xf9\x33\xab\xb6\x45\xbd\xe1\x09\x78\xcc\x1f\xd4\xf1\xbe\xbf\x69\x31\x4d\x17\xfa\x49\x48\x98\x0f\xb7\xbb\x0a\x38\x78\x7c\x45\x5f\xd9\xb2\xd8\x0d\xcb\x75\xc1\xfd\x94\xaf\x8c\x80\x76\x2d\x21\xa3\xed\x6e\x01\x67\x3f\xb2\xb6\x5b\x15\x4d\xfd\xb7\x62\x10\x04\x9d\x07\x3f\xb3\x6d\xdd\x75\x2d\xe3\xf6\x0c\x1f\x19\x0d\x7d\xce\xf5\x50\xca\x5b\xc2\x42\x50\x0b\xe7\x6c\xeb\x55\x27\x68\xe4\xcc\x33\xfc\xe2\x5a\x38\xef\xba\xed\x3e\x6a\xc6\x0b\xfe\x4c\x8a\x52\x27\x34\x37\x6e\xbf\x68\x08\xf1\x9a\x7b\x86\x1f\x11\x40\x9f\x15\xe5\x96\x50\xb9\x2b\x9a\x8a\x71\x74\xcc\xbf\x08\x2f\xf4\x2b\x53\x7a\x9a\xf7\xd5\x30\xd4\xcd\x8a\x91\x7d\x2c\x49\xf9\xa5\x26\x65\x41\x9e\x4b\xbb\x6d\xf7\x6e\x3a\x29\xfd\x2f\xf4\x33\xbf\x90\x9f\x92\x17\x14\x42\xa6\x2b\xc9\x23\xe9\xe7\xd7\x55\x55\xca\x58\xfa\xfc\x05\x7d\x67\xbb\xfd\x66\x43\x58\xfb\x63\x5f\xf5\x03\x17\xba\xa0\xdf\x34\x7e\xf9\x9d\xd5\x7d\x4f\x1f\x94\xfc\x1a\x1f\x19\x4d\x5d\xb3\xc4\x60\x4e\xf0\x91\x65\xef\xfb\xaa\xe8\x96\xeb\x0f\x99\xfc\x47\x5f\xf9\x83\x69\xef\xd0\xa4\x32\x21\x29\x11\x49\x0b\xd6\x40\xb6\x6c\x4b\xfe\x71\x42\xff\xa8\xea\xba\xe9\x07\x5a\x6d\x1f\x32\xfd\x60\x30\xf9\x92\x09\x18\xea\x01\x58\xd0\x44\x2c\xdd\x9e\x67\x30\x7f\x51\x77\xfd\xf0\x78\xa8\x89\x58\xdf\xed\x9b\x8c\xc7\x47\x2b\x6d\x5e\x2e\x8c\x01\xbd\x6c\x09\x45\x48\xee\x68\x7c\x67\xb7\x97\xff\xfa\xe6\x28\xbf\x20\x2e\xb4\xea\x2a\x7c\xd3\x1f\x2a\xf1\x63\x4e\x95\x5d\xd5\xa7\xcf\x67\x19\x95\xb5\xf6\x4e\x8b\xa1\x58\x14\x7d\xe5\x91\xcb\x99\x42\xe3\x2e\x0f\x94\xce\x7c\x0d\x3c\xac\x1f\xa2\x51\x4f\xad\x13\xaa\x43\x57\x97\xab\xe3\x2d\x2f\x31\x4a\x67\xb6\x86\xc2\x17\x9b\x8a\xd3\xa9\xaa\xfc\xf5\xdb\xb7\xe7\xa7\xcf\xf3\xaa\x59\xd5\x4d\x95\xdf\xd4\xc3\x3a\xdf\x0f\xd7\xff\x75\xbe\xaa\x9a\xaa\x23\x2e\xb7\xac\x73\x5a\x59\x1d\xd1\x43\x4e\xe4\x2d\x43\x9c\x65\x7d\xbf\x21\x0e\x00\x24\x5f\x5e\xbe\xc9\xcf\x18\xd1\xbb\x62\x58\xa3\x23\xc3\x3a\xeb\xff\xd8\x30\xa2\x5c\x83\x57\xeb\x2a\x07\xad\x01\xa8\xbd\x4e\xf1\x92\x97\xda\xd7\x59\x56\x75\xdd\x9c\x18\xd4\x70\xcb\x68\xd6\x3a\x0f\x41\x4b\x75\x44\x4c\x4d\x3b\xe4\x8b\x2a\x47\x39\xa9\xa2\x6e\x3e\x15\x9b\xba\x24\x64\x7b\x84\xc4\x65\x91\x58\xb6\x34\x6f\x5c\x9a\x26\xbe\xbd\xc1\x50\x8b\x25\xf1\xd7\x3e\x7f\x30\x7b\x00\x86\xf6\xe0\xf1\x83\x59\xd6\xb4\x73\x59\x84\xcc\xfa\xca\xba\x2f\x16\xc4\x06\x85\x2d\x77\xc6\x54\x68\x9d\x58\x57\x14\x22\x8f\x20\x18\xb7\xcc\xea\xc1\x61\x69\xba\xa9\xf6\x1c\x95\xda\xae\x10\x8e\xdd\x96\xbc\x9b\x5f\x59\xf5\x2e\x61\x34\xe6\xcc\x26\xcc\xa8\xeb\x78\xb7\xdb\xd4\x4b\x69\xfa\xa5\xe4\x79\x42\xe3\x3d\x54\x91\x12\xc2\x81\x50\x2c\x2f\x20\x17\xea\x35\x73\x85\x3c\x62\xa3\x28\xbf\xae\x68\x1b\x58\xef\x57\xc2\xfc\x37\xed\xbe\xfc\x06\xeb\xd5\x66\xce\x2f\xd7\xfc\x5d\x4b\x1d\x06\x75\x38\x00\xdf\xc4\x31\xad\x3b\xde\xb6\xbb\x6a\xdb\x0e\x8c\x38\x2d\x56\xd3\xf4\xdc\xd4\x94\x49\x23\xed\x8b\x4f\xc4\x75\x86\x36\x1f\xd6\x75\x4f\x38\xee\xaa\x25\x57\x4c\x0c\x62\x4f\x1b\xa6\x2c\x0b\x5a\xa6\xb2\x34\x2c\x2d\xa6\x41\x40\x6d\xf7\xb4\x9a\xd6\x54\x19\x23\x9e\x65\x07\xaa\x72\xaa\x9f\x18\x12\xd5\x83\x55\x4e\x2b\xb7\xa5\xbd\x89\x27\xfa\x14\x1f\xfa\x3b\xac\x9f\x7a\x55\x5c\x5f\x53\xaf\x7a\x5a\x15\xaf\xf2\xe5\xa6\xa5\x25\xf5\xdb\xbb\x37\x3d\x2f\x98\xf5\x7c\xd7\x76\xd8\xe8\x29\xeb\x82\x3e\x5d\x5a\x80\x68\x86\x68\xf6\xdb\x05\xfd\xba\x59\xd7\xc4\x07\x81\x76\x2e\xc1\xf2\x0c\xa5\x52\x13\xfb\x9e\xa6\xf0\x28\xa7\x25\x4c\x23\x20\x94\x81\x00\x78\x0c\x46\x75\x0c\x7e\x4d\x34\xb6\xef\x68\x39\xad\x87\x61\x67\x2d\xbf\xba\xba\xba\x90\xa6\x5d\xea\x5d\x6d\x17\x01\x65\x60\x0e\x36\x2c\x7a\x34\x79\xdb\xcc\x40\x24\xfb\x6e\x93\xd0\x0f\x8d\xd5\x72\x0e\xe0\x85\xbb\xf0\x84\xff\x5c\x7a\xf4\x00\xcf\x3d\xc9\x67\x37\xaLine truncated var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xfd\x72\xdc\x48\x8e\xe7\xff\x7c\x0a\xb6\x37\x7c\xee\x8e\x90\xcb\xd1\xdd\xf7\x15\x1d\x6d\xf7\xc9\x52\xfb\x63\xd7\xb2\xb4\x96\x7a\xe6\xe6\x1c\x8e\x6a\x56\x91\xaa\xe2\xba\x8a\xac\x26\x59\x96\x35\x1b\x1b\x71\xaf\x71\xaf\x77\x4f\x72\xc0\x0f\x40\x7e\x91\x25\xd9\x33\x13\xf7\x8f\xc4\xca\x44\x7e\x21\x91\x48\x00\x89\x44\x16\xbb\xdd\xbc\xac\xfa\x65\xfe\x34\x3f\xce\x77\x45\xdd\x6c\xaa\xbe\xcf\xfb\x6a\x73\xfd\x78\xdd\xf6\x43\x55\xe6\x2f\xeb\x81\x7e\x77\x9f\xea\x65\x95\x65\xeb\x76\x5b\x11\xe8\x2b\xfa\x97\x95\x45\xbf\x5e\xb4\x45\x57\x52\xc2\xa9\x7d\x67\xd5\xe7\xdd\xa6\xed\x18\xe8\x57\xf9\xca\xd6\xd5\x66\xc7\x65\xe8\x5f\xd6\xd7\xab\x66\x5e\x37\xf4\xf3\x92\xbe\xf2\xd7\x4d\xd6\xb7\xcb\xba\xd8\xcc\x83\x0c\x24\x58\xfe\x4f\xf9\x0f\x4d\x99\x5f\x0e\xd5\x2e\xff\xb9\xdf\x16\x9b\xcd\xb3\xa2\x47\x91\xa1\xca\x8b\xe5\xb2\xdd\x37\xc3\xcf\x4f\x24\x43\x2a\x6f\xf7\x83\xd5\x7e\xbe\x1f\x24\x6d\xbf\xb3\xa4\xdf\x76\x59\x57\xad\x6a\x1a\x58\x47\x49\xef\xf4\x33\xbb\xa9\x16\x7d\x3d\x70\xa7\xff\x2c\x5f\xd9\xa7\xaa\xeb\xeb\x96\xfb\xf3\x27\xf9\xca\x76\xc5\x8a\x01\x2e\xe8\x5f\x36\x54\xdb\xdd\xa6\x40\x81\x2b\xfd\xcc\x36\x45\xb3\xda\x0b\xcc\x1b\xfd\xcc\x96\x5d\x45\x59\xf3\xa6\xba\xa1\xd4\x13\xfc\x98\xcd\x66\xd9\x9e\xf0\x39\xdf\x75\xed\x75\xbd\xa9\xe6\x45\x53\xce\xb7\x82\xb1\xdf\x28\x3d\xd7\xf4\x9c\xd2\x73\x4e\xc7\x10\xaa\x92\x90\x33\x2f\x7a\x1d\x07\x4d\x0b\xe1\xaa\xe8\x33\x54\xd5\x14\x5b\x2b\xcd\x9f\x59\xb5\x2d\xea\x0d\x4f\xc0\x63\xfe\xa0\x8e\xf7\xfd\x4d\x8b\x69\xba\xd0\x4f\x42\xc2\x7c\xb8\xdd\x55\xc0\xc1\xe3\x2b\xfa\xca\x96\xc5\x6e\x58\xae\x0b\xee\xa7\x7c\x65\x04\xb4\x6b\x09\x19\x6d\x77\x0b\x38\xfb\x91\xb5\xdd\xaa\x68\xea\xbf\x16\x83\x20\xe8\x3c\xf8\x99\x6d\xeb\xae\x6b\x19\xb7\x67\xf8\xc8\x68\xe8\x73\xae\x87\x52\xde\x12\x16\x82\x5a\x38\x67\x5b\xaf\x3a\x41\x23\x67\x9e\xe1\x17\xd7\xc2\x79\xd7\x6d\xf7\x51\x33\x5e\xf0\x67\x52\x94\x3a\xa1\xb9\x71\xfb\x45\x43\x88\xd7\xdc\x33\xfc\x88\x00\xfa\xac\x28\xb7\x84\xca\x5d\xd1\x54\x8c\xa3\x63\xfe\x45\x78\xa1\x5f\x99\xd2\xd3\xbc\xaf\x86\xa1\x6e\x56\x8c\xec\x63\x49\xca\x2f\x35\x29\x0b\xf2\x5c\xda\x6d\xbb\x77\xd3\x49\xe9\x7f\xa1\x9f\xf9\x85\xfc\x94\xbc\xa0\x10\x32\x5d\x49\x1e\x49\x3f\xbf\xae\xaa\x52\xc6\xd2\xe7\x2f\xe8\x3b\xdb\xed\x37\x1b\xc2\xda\x1f\xfb\xaa\x1f\xb8\xd0\x05\xfd\xa6\xf1\xcb\xef\xac\xee\x7b\xfa\xa0\xe4\xd7\xf8\xc8\x68\xea\x9a\x25\x06\x73\x82\x8f\x2c\x7b\xdf\x57\x45\xb7\x5c\x7f\xc8\xe4\x3f\xfa\xca\x1f\x4c\x7b\x87\x26\x95\x09\x49\x89\x48\x5a\xb0\x06\xb2\x65\x5b\xf2\x8f\x13\xfa\x47\x55\xd7\x4d\x3f\xd0\x6a\xfb\x90\xe9\x07\x83\xc9\x97\x4c\xc0\x50\x0f\xc0\x82\x26\x62\xe9\xf6\x3c\x83\xf9\x8b\xba\xeb\x87\xc7\x43\x4d\xc4\xfa\x6e\xdf\x64\x3c\x3e\x5a\x69\xf3\x72\x61\x0c\xe8\x65\x4b\x28\x42\x72\x47\xe3\x3b\xbb\xbd\xfc\xd7\x37\x47\xf9\x05\x71\xa1\x55\x57\xe1\x9b\xfe\x50\x89\x1f\x73\xaa\xec\xaa\x3e\x7d\x3e\xcb\xa8\xac\xb5\x77\x5a\x0c\xc5\xa2\xe8\x2b\x8f\x5c\xce\x14\x1a\x77\x79\xa0\x74\xe6\x6b\xe0\x61\xfd\x10\x8d\x7a\x6a\x9d\x50\x1d\xba\xba\x5c\x1d\x6f\x79\x89\x51\x3a\xb3\x35\x14\xbe\xd8\x54\x9c\x4e\x55\xe5\xaf\xdf\xbe\x3d\x3f\x7d\x9e\x57\xcd\xaa\x6e\xaa\xfc\xa6\x1e\xd6\xf9\x7e\xb8\xfe\xef\xf3\x55\xd5\x54\x1d\x71\xb9\x65\x9d\xd3\xca\xea\x88\x1e\x72\x22\x6f\x19\xe2\x2c\xeb\xfb\x0d\x71\x00\x20\xf9\xf2\xf2\x4d\x7e\xc6\x88\xde\x15\xc3\x1a\x1d\x19\xd6\x59\xff\xc7\x86\x11\xe5\x1a\xbc\x5a\x57\x39\x68\x0d\x40\xed\x75\x8a\x97\xbc\xd4\xbe\xce\xb2\xaa\xeb\xe6\xc4\xa0\x86\x5b\x46\xb3\xd6\x79\x08\x5a\xaa\x23\x62\x6a\xda\x21\x5f\x54\x39\xca\x49\x15\x75\xf3\xa9\xd8\xd4\x25\x21\xdb\x23\x24\x2e\x8b\xc4\xb2\xa5\x79\xe3\xd2\x34\xf1\xed\x0d\x86\x5a\x2c\x89\xbf\xf6\xf9\x83\xd9\x03\x30\xb4\x07\x8f\x1f\xcc\xb2\xa6\x9d\xcb\x22\x64\xd6\x57\xd6\x7d\xb1\x20\x36\x28\x6c\xb9\x33\xa6\x42\xeb\xc4\xba\xa2\x10\x79\x04\xc1\xb8\x65\x56\x0f\x0e\x4b\xd3\x4d\xb5\xe7\xa8\xd4\x76\x85\x70\xec\xb6\xe4\xdd\xfc\xca\xaa\x77\x09\xa3\x31\x67\x36\x61\x46\x5d\xc7\xbb\xdd\xa6\x5e\x4a\xd3\x2f\x25\xcf\x13\x1a\xef\xa1\x8a\x94\x10\x0e\x84\x62\x79\x01\xb9\x50\xaf\x99\x2b\xe4\x11\x1b\x45\xf9\x75\x45\xdb\xc0\x7a\xbf\x12\xe6\xbf\x69\xf7\xe5\x37\x58\xaf\x36\x73\x7e\xb9\xe6\xef\x5a\xea\x30\xa8\xc3\x01\xf8\x26\x8e\x69\xdd\xf1\xb6\xdd\x55\xdb\x76\x60\xc4\x69\xb1\x9a\xa6\xe7\xa6\xa6\x4c\x1a\x69\x5f\x7c\x22\xae\x33\xb4\xf9\xb0\xae\x7b\xc2\x71\x57\x2d\xb9\x62\x62\x10\x7b\xda\x30\x65\x59\xd0\x32\x95\xa5\x61\x69\x31\x0d\x02\x6a\xbb\xa7\xd5\xb4\xa6\xca\x18\xf1\x2c\x3b\x50\x95\x53\xfd\xc4\x90\xa8\x1e\xac\x72\x5a\xb9\x2d\xed\x4d\x3c\xd1\xa7\xf8\xd0\xdf\x61\xfd\xd4\xab\xe2\xfa\x9a\x7a\xd5\xd3\xaa\x78\x95\x2f\x37\x2d\x2d\xa9\xdf\xde\xbd\xe9\x79\xc1\xac\xe7\xbb\xb6\xc3\x46\x4f\x59\x17\xf4\xe9\xd2\x02\x44\x33\x44\xb3\xdf\x2e\xe8\xd7\xcd\xba\x26\x3e\x08\xb4\x73\x09\x96\x67\x28\x95\x9a\xd8\xf7\x34\x85\x47\x39\x2d\x61\x1a\x01\xa1\x0c\x04\xc0\x63\x30\xaa\x63\xf0\x6b\xa2\xb1\x7d\x47\xcb\x69\x3d\x0c\x3b\x6b\xf9\xd5\xd5\xd5\x85\x34\xed\x52\xef\x6a\xbb\x08\x28\x03\x73\xb0\x61\xd1\xa3\xc9\xdb\x66\x06\x22\xd9\x77\x9b\x84\x7e\x68\xac\x96\x73\x00\x2f\xdc\x85\x27\xfc\xe7\xd2\xa3\x07\x78\xee\x49\x3e\xbb\x01\x35\x11\x8Line 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: 43722, mode: os.FileMode(420), modTime: time.Unix(1442467863, 0)} info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 43754, mode: os.FileMode(420), modTime: time.Unix(1442516028, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4399,7 +4399,7 @@ func confLocaleLocale_esEsIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_es-ES.ini", size: 47149, mode: os.FileMode(493), modTime: time.Unix(1442001496, 0)} info := bindataFileInfo{name: "conf/locale/locale_es-ES.ini", size: 47149, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4419,7 +4419,7 @@ func confLocaleLocale_frFrIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_fr-FR.ini", size: 46314, mode: os.FileMode(493), modTime: time.Unix(1442001496, 0)} info := bindataFileInfo{name: "conf/locale/locale_fr-FR.ini", size: 46314, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4439,7 +4439,7 @@ func confLocaleLocale_itItIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_it-IT.ini", size: 44651, mode: os.FileMode(493), modTime: time.Unix(1442001498, 0)} info := bindataFileInfo{name: "conf/locale/locale_it-IT.ini", size: 44651, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4459,7 +4459,7 @@ func confLocaleLocale_jaJpIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_ja-JP.ini", size: 50703, mode: os.FileMode(493), modTime: time.Unix(1442001500, 0)} info := bindataFileInfo{name: "conf/locale/locale_ja-JP.ini", size: 50703, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4479,7 +4479,7 @@ func confLocaleLocale_lvLvIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_lv-LV.ini", size: 45946, mode: os.FileMode(493), modTime: time.Unix(1442001506, 0)} info := bindataFileInfo{name: "conf/locale/locale_lv-LV.ini", size: 45946, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4499,7 +4499,7 @@ func confLocaleLocale_nlNlIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_nl-NL.ini", size: 44336, mode: os.FileMode(493), modTime: time.Unix(1442001500, 0)} info := bindataFileInfo{name: "conf/locale/locale_nl-NL.ini", size: 44336, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4519,7 +4519,7 @@ func confLocaleLocale_plPlIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_pl-PL.ini", size: 44722, mode: os.FileMode(493), modTime: time.Unix(1442001500, 0)} info := bindataFileInfo{name: "conf/locale/locale_pl-PL.ini", size: 44722, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4539,7 +4539,7 @@ func confLocaleLocale_ptBrIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_pt-BR.ini", size: 46333, mode: os.FileMode(493), modTime: time.Unix(1442448353, 0)} info := bindataFileInfo{name: "conf/locale/locale_pt-BR.ini", size: 46333, mode: os.FileMode(493), modTime: time.Unix(1442513956, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4559,7 +4559,7 @@ func confLocaleLocale_ruRuIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_ru-RU.ini", size: 58925, mode: os.FileMode(493), modTime: time.Unix(1442001502, 0)} info := bindataFileInfo{name: "conf/locale/locale_ru-RU.ini", size: 58925, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4579,7 +4579,7 @@ func confLocaleLocale_zhCnIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_zh-CN.ini", size: 42605, mode: os.FileMode(493), modTime: time.Unix(1442174946, 0)} info := bindataFileInfo{name: "conf/locale/locale_zh-CN.ini", size: 42605, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -4599,7 +4599,7 @@ func confLocaleLocale_zhHkIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_zh-HK.ini", size: 42343, mode: os.FileMode(493), modTime: time.Unix(1442001504, 0)} info := bindataFileInfo{name: "conf/locale/locale_zh-HK.ini", size: 42343, mode: os.FileMode(493), modTime: time.Unix(1442513933, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
+11 -15
View File
@@ -18,10 +18,10 @@ import (
) )
const ( const (
AUTH_REGISTER_SUCCESS base.TplName = "mail/auth/register_success"
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_RESET_PASSWORD base.TplName = "mail/auth/reset_passwd"
AUTH_REGISTER_SUCCESS base.TplName = "mail/auth/register_success"
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"
@@ -67,27 +67,23 @@ func SendActivateEmailMail(c *macaron.Context, u *models.User, email *models.Ema
} }
msg := NewMessage([]string{email.Email}, c.Tr("mail.activate_email"), body) msg := NewMessage([]string{email.Email}, c.Tr("mail.activate_email"), body)
msg.Info = fmt.Sprintf("UID: %d, activate email: %s", u.Id, email.Email) msg.Info = fmt.Sprintf("UID: %d, activate email", u.Id)
SendAsync(msg) SendAsync(msg)
} }
// Send reset password email. // SendResetPasswordMail sends reset password e-mail.
func SendResetPasswdMail(r macaron.Render, u *models.User) { func SendResetPasswordMail(c *macaron.Context, u *models.User) {
code := u.GenerateActivateCode()
subject := "Reset your password"
data := ComposeTplData(u) data := ComposeTplData(u)
data["Code"] = code data["Code"] = u.GenerateActivateCode()
body, err := r.HTMLString(string(AUTH_RESET_PASSWORD), data) body, err := c.HTMLString(string(AUTH_RESET_PASSWORD), data)
if err != nil { if err != nil {
log.Error(4, "mail.SendResetPasswdMail(fail to render): %v", err) log.Error(4, "HTMLString: %v", err)
return return
} }
msg := NewMessage([]string{u.Email}, subject, body) msg := NewMessage([]string{u.Email}, c.Tr("mail.reset_password"), body)
msg.Info = fmt.Sprintf("UID: %d, send reset password email", u.Id) msg.Info = fmt.Sprintf("UID: %d, reset password", u.Id)
SendAsync(msg) SendAsync(msg)
} }
@@ -120,7 +116,7 @@ func SendIssueNotifyMail(u, owner *models.User, repo *models.Repository, issue *
content := fmt.Sprintf("%s<br>-<br> <a href=\"%s%s/%s/issues/%d\">View it on Gogs</a>.", content := fmt.Sprintf("%s<br>-<br> <a href=\"%s%s/%s/issues/%d\">View it on Gogs</a>.",
base.RenderSpecialLink([]byte(issue.Content), owner.Name+"/"+repo.Name), base.RenderSpecialLink([]byte(issue.Content), owner.Name+"/"+repo.Name),
setting.AppUrl, owner.Name, repo.Name, issue.Index) setting.AppUrl, owner.Name, repo.Name, issue.Index)
msg := NewMessageFrom(tos, u.Email, subject, content) msg := NewMessage(tos, subject, content)
msg.Info = fmt.Sprintf("Subject: %s, send issue notify emails", subject) msg.Info = fmt.Sprintf("Subject: %s, send issue notify emails", subject)
SendAsync(msg) SendAsync(msg)
return tos, nil return tos, nil
@@ -145,7 +141,7 @@ func SendIssueMentionMail(r macaron.Render, u, owner *models.User,
return fmt.Errorf("mail.SendIssueMentionMail(fail to render): %v", err) return fmt.Errorf("mail.SendIssueMentionMail(fail to render): %v", err)
} }
msg := NewMessageFrom(tos, u.Email, subject, body) msg := NewMessage(tos, subject, body)
msg.Info = fmt.Sprintf("Subject: %s, send issue mention emails", subject) msg.Info = fmt.Sprintf("Subject: %s, send issue mention emails", subject)
SendAsync(msg) SendAsync(msg)
return nil return nil
+1 -1
View File
@@ -1 +1 @@
@font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('embedded-opentype'),url(../fonts/octicons.woff?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('woff'),url(../fonts/octicons.ttf?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('truetype'),url(../fonts/octicons.svg?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d#octicons) format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beaker:before,.octicon-microscope:before{content:'\f0dd'}.octicon-bell:before{content:'\f0de'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-clone:before,.octicon-desktop-download:before{content:'\f0dc'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-gLine truncated @font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('embedded-opentype'),url(../fonts/octicons.woff?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('woff'),url(../fonts/octicons.ttf?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('truetype'),url(../fonts/octicons.svg?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d#octicons) format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beaker:before,.octicon-microscope:before{content:'\f0dd'}.octicon-bell:before{content:'\f0de'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-clone:before,.octicon-desktop-download:before{content:'\f0dc'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-gLine truncated
+4 -2
View File
@@ -47,8 +47,10 @@
} }
.user.activate, .user.activate,
.signin, .user.forgot.password,
.signup { .user.reset.password,
.user.signin,
.user.signup {
@input-padding: 200px!important; @input-padding: 200px!important;
#create-page-form; #create-page-form;
form { form {
+5 -4
View File
@@ -327,7 +327,7 @@ func ActivateEmail(ctx *middleware.Context) {
} }
log.Trace("Email activated: %s", email.Email) log.Trace("Email activated: %s", email.Email)
ctx.Flash.Success(ctx.Tr("settings.activate_email_success")) ctx.Flash.Success(ctx.Tr("settings.add_email_successs"))
} }
ctx.Redirect(setting.AppSubUrl + "/user/settings/email") ctx.Redirect(setting.AppSubUrl + "/user/settings/email")
@@ -351,12 +351,14 @@ func ForgotPasswdPost(ctx *middleware.Context) {
ctx.Data["Title"] = ctx.Tr("auth.forgot_password") ctx.Data["Title"] = ctx.Tr("auth.forgot_password")
if setting.MailService == nil { if setting.MailService == nil {
ctx.Handle(403, "user.ForgotPasswdPost", nil) ctx.Handle(403, "ForgotPasswdPost", nil)
return return
} }
ctx.Data["IsResetRequest"] = true ctx.Data["IsResetRequest"] = true
email := ctx.Query("email") email := ctx.Query("email")
ctx.Data["Email"] = email
u, err := models.GetUserByEmail(email) u, err := models.GetUserByEmail(email)
if err != nil { if err != nil {
if models.IsErrUserNotExist(err) { if models.IsErrUserNotExist(err) {
@@ -374,12 +376,11 @@ func ForgotPasswdPost(ctx *middleware.Context) {
return return
} }
mailer.SendResetPasswdMail(ctx.Render, u) mailer.SendResetPasswordMail(ctx.Context, u)
if err = ctx.Cache.Put("MailResendLimit_"+u.LowerName, u.LowerName, 180); err != nil { if err = ctx.Cache.Put("MailResendLimit_"+u.LowerName, u.LowerName, 180); err != nil {
log.Error(4, "Set cache(MailResendLimit) fail: %v", err) log.Error(4, "Set cache(MailResendLimit) fail: %v", err)
} }
ctx.Data["Email"] = email
ctx.Data["Hours"] = setting.Service.ActiveCodeLives / 60 ctx.Data["Hours"] = setting.Service.ActiveCodeLives / 60
ctx.Data["IsResetSent"] = true ctx.Data["IsResetSent"] = true
ctx.HTML(200, FORGOT_PASSWORD) ctx.HTML(200, FORGOT_PASSWORD)
+12 -27
View File
@@ -1,30 +1,15 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!DOCTYPE html>
<title>{{.User.Name}}, please activate your e-mail address</title> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{{.User.Name}}, please verify your e-mail address</title>
</head> </head>
<body style="background:#eee;">
<div style="color:#333; font:12px/1.5 Tahoma,Arial,sans-serif;; text-shadow:1px 1px #fff; padding:0; margin:0;"> <body>
<div style="width:600px;margin:0 auto; padding:40px 0 20px;"> <p>Hi <b>{{.User.Name}}</b>,</p>
<div style="border:1px solid #d9d9d9;border-radius:3px; background:#fff; box-shadow: 0px 2px 5px rgba(0, 0, 0,.05); -webkit-box-shadow: 0px 2px 5px rgba(0, 0, 0,.05);"> <p>Please click the following link to verify your e-mail address within <b>{{.ActiveCodeLives}} hours</b>:</p>
<div style="padding: 20px 15px;"> <p><a href="{{.AppUrl}}user/activate_email?code={{.Code}}&email={{.Email}}">{{.AppUrl}}user/activate_email?code={{.Code}}&email={{.Email}}</a></p>
<h1 style="font-size:20px; padding:10px 0 20px; margin:0; border-bottom:1px solid #ddd;"><img src="{{.AppUrl}}/img/favicon.png" style="height: 32px; margin-bottom: -10px;"> <a style="color:#333;text-decoration:none;" target="_blank" href="{{.AppUrl}}">{{.AppName}}</a></h1> <p>Not working? Try copying and pasting it to your browser.</p>
<div style="padding:40px 15px;"> <p>© 2015 <a target="_blank" href="http://gogs.io">Gogs: Go Git Service</a></p>
<div style="font-size:16px; padding-bottom:30px; font-weight:bold;">
Hi <span style="color: #00BFFF;">{{.User.Name}}</span>,
</div>
<div style="font-size:14px; padding:0 15px;">
<p style="margin:0;padding:0 0 9px 0;">Please click the following link to verify your e-mail address within <b>{{.ActiveCodeLives}} hours</b>.</p>
<p style="margin:0;padding:0 0 9px 0;">
<a href="{{.AppUrl}}user/activate_email?code={{.Code}}&email={{.Email}}">{{.AppUrl}}user/activate_email?code={{.Code}}&email={{.Email}}</a>
</p>
<p style="margin:0;padding:0 0 9px 0;">Not working? Try copying and pasting it to your browser.</p>
</div>
</div>
</div>
</div>
<div style="color:#aaa;padding:10px;text-align:center;">
© 2014 <a style="color:#888;text-decoration:none;" target="_blank" href="http://gogits.org">Gogs: Go Git Service</a>
</div>
</div>
</div>
</body> </body>
</html> </html>
+11 -29
View File
@@ -1,33 +1,15 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{{.User.Name}}, please reset your password</title> <title>{{.User.Name}}, you have requested to reset your password</title>
</head> </head>
<body style="background:#eee;">
<div style="color:#333; font:12px/1.5 Tahoma,Arial,sans-serif;; text-shadow:1px 1px #fff; padding:0; margin:0;"> <body>
<div style="width:600px;margin:0 auto; padding:40px 0 20px;"> <p>Hi <b>{{.User.Name}}</b>,</p>
<div style="border:1px solid #d9d9d9;border-radius:3px; background:#fff; box-shadow: 0px 2px 5px rgba(0, 0, 0,.05); -webkit-box-shadow: 0px 2px 5px rgba(0, 0, 0,.05);"> <p>Please click the following link to verify your e-mail address within <b>{{.ActiveCodeLives}} hours</b>:</p>
<div style="padding: 20px 15px;"> <p><a href="{{.AppUrl}}user/reset_password?code={{.Code}}">{{.AppUrl}}user/reset_password?code={{.Code}}</a></p>
<h1 style="font-size:20px; padding:10px 0 20px; margin:0; border-bottom:1px solid #ddd;"><img src="{{.AppUrl}}/img/favicon.png" style="height: 32px; margin-bottom: -10px;"> <a style="color:#333;text-decoration:none;" target="_blank" href="{{.AppUrl}}">{{.AppName}}</a></h1> <p>Not working? Try copying and pasting it to your browser.</p>
<div style="padding:40px 15px;"> <p>© 2015 <a target="_blank" href="http://gogs.io">Gogs: Go Git Service</a></p>
<div style="font-size:16px; padding-bottom:30px; font-weight:bold;">
Hi <span style="color: #00BFFF;">{{.User.Name}}</span>,
</div>
<div style="font-size:14px; padding:0 15px;">
<p style="margin:0;padding:0 0 9px 0;">Please click the following link to reset your password within <b>{{.ActiveCodeLives}} hours</b>.</p>
<p style="margin:0;padding:0 0 9px 0;">
<a href="{{.AppUrl}}user/reset_password?code={{.Code}}">{{.AppUrl}}user/reset_password?code={{.Code}}</a>
</p>
<p style="margin:0;padding:0 0 9px 0;">Not working? Try copying and pasting it to your browser.</p>
</div>
</div>
</div>
</div>
<div style="color:#aaa;padding:10px;text-align:center;">
© 2014 <a style="color:#888;text-decoration:none;" target="_blank" href="http://gogits.org">Gogs: Go Git Service</a>
</div>
</div>
</div>
</body> </body>
</html> </html>
+19 -18
View File
@@ -8,33 +8,34 @@
{{.i18n.Tr "auth.active_your_account"}} {{.i18n.Tr "auth.active_your_account"}}
</h2> </h2>
<div class="ui attached segment"> <div class="ui attached segment">
{{template "base/alert" .}}
{{if .IsActivatePage}} {{if .IsActivatePage}}
{{if .ServiceNotEnabled}} {{if .ServiceNotEnabled}}
<p>{{.i18n.Tr "auth.disable_register_mail"}}</p> <p class="center">{{.i18n.Tr "auth.disable_register_mail"}}</p>
{{else if .ResendLimited}} {{else if .ResendLimited}}
<p>{{.i18n.Tr "auth.resent_limit_prompt"}}</p> <p class="center">{{.i18n.Tr "auth.resent_limit_prompt"}}</p>
{{else}} {{else}}
<p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .SignedUser.Email .Hours | Str2html}}</p> <p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .SignedUser.Email .Hours | Str2html}}</p>
<div class="ui divider"></div> <div class="ui divider"></div>
<div class="text right"> <div class="text right">
<a class="ui green button" href="http://{{Mail2Domain .SignedUser.Email}}">{{.i18n.Tr "auth.sign_in_to_account"}}</a> <a class="ui green button" href="http://{{Mail2Domain .SignedUser.Email}}">{{.i18n.Tr "auth.sign_in_to_account"}}</a>
</div> </div>
{{end}} {{end}}
{{else}} {{else}}
{{if .IsSendRegisterMail}} {{if .IsSendRegisterMail}}
<p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .Email .Hours | Str2html}}</p> <p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .Email .Hours | Str2html}}</p>
<div class="ui divider"></div> <div class="ui divider"></div>
<div class="text right"> <div class="text right">
<a class="ui green button" href="http://{{Mail2Domain .Email}}">{{.i18n.Tr "auth.sign_in_to_account"}}</a> <a class="ui green button" href="http://{{Mail2Domain .Email}}">{{.i18n.Tr "auth.sign_in_to_account"}}</a>
</div> </div>
{{else if .IsActivateFailed}} {{else if .IsActivateFailed}}
<p>{{.i18n.Tr "auth.invalid_code"}}</p> <p>{{.i18n.Tr "auth.invalid_code"}}</p>
{{else}} {{else}}
<p>{{.i18n.Tr "auth.has_unconfirmed_mail" .SignedUser.Name .SignedUser.Email | Str2html}}</p> <p>{{.i18n.Tr "auth.has_unconfirmed_mail" .SignedUser.Name .SignedUser.Email | Str2html}}</p>
<div class="ui divider"></div> <div class="ui divider"></div>
<div class="text right"> <div class="text right">
<button class="ui blue button" href="http://{{Mail2Domain .SignedUser.Email}}">{{.i18n.Tr "auth.resend_mail"}}</button> <button class="ui blue button">{{.i18n.Tr "auth.resend_mail"}}</button>
</div> </div>
{{end}} {{end}}
{{end}} {{end}}
</div> </div>
+33 -27
View File
@@ -1,32 +1,38 @@
{{template "ng/base/head" .}} {{template "base/head" .}}
{{template "ng/base/header" .}} <div class="user forgot password">
<div id="sign-wrapper"> <div class="ui middle very relaxed page grid">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="{{AppSubUrl}}/user/forget_password" method="post"> <div class="column">
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}} {{.CsrfTokenHtml}}
<div class="panel-header"> <h2 class="ui top attached header">
<h2>{{.i18n.Tr "auth.forgot_password"}}</h2> {{.i18n.Tr "auth.forgot_password"}}
</div> </h2>
<div class="panel-content"> <div class="ui attached segment">
{{template "ng/base/alert" .}} {{template "base/alert" .}}
{{if .IsResetSent}} {{if .IsResetSent}}
<p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .Email .Hours | Str2html}}</p> <p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .Email .Hours | Str2html}}</p>
<hr/> <div class="ui divider"></div>
<label></label> <div class="text right">
<a class="btn btn-green btn-large btn-link btn-radius" href="http://{{Mail2Domain .Email}}">{{.i18n.Tr "auth.sign_in_email"}}</a> <a class="ui green button" href="http://{{Mail2Domain .Email}}">{{.i18n.Tr "auth.sign_in_to_account"}}</a>
{{else if .IsResetRequest}}
<div class="field">
<label class="req" for="email">{{.i18n.Tr "email"}}</label>
<input class="ipt ipt-large ipt-radius {{if .Err_Email}}ipt-error{{end}}" id="email" name="email" type="email" value="{{.email}}"required/>
</div> </div>
<hr/> {{else if .IsResetRequest}}
<label></label> <div class="required inline field {{if .Err_Email}}error{{end}}">
<button class="btn btn-blue btn-large btn-radius">{{.i18n.Tr "auth.send_reset_mail"}}</button> <label for="email">{{.i18n.Tr "email"}}</label>
{{else if .IsResetDisable}} <input id="email" name="email" type="email" value="{{.Email}}" autofocus required>
<p>{{.i18n.Tr "auth.disable_register_mail"}}</p> </div>
{{else if .ResendLimited}} <div class="ui divider"></div>
<p>{{.i18n.Tr "auth.resent_limit_prompt"}}</p> <div class="inline field">
{{end}} <label></label>
<button class="ui blue button">{{.i18n.Tr "auth.send_reset_mail"}}</button>
</div>
{{else if .IsResetDisable}}
<p class="center">{{.i18n.Tr "auth.disable_register_mail"}}</p>
{{else if .ResendLimited}}
<p class="center">{{.i18n.Tr "auth.resent_limit_prompt"}}</p>
{{end}}
</div> </div>
</form> </form>
</div>
</div>
</div> </div>
{{template "ng/base/footer" .}} {{template "base/footer" .}}
+27 -21
View File
@@ -1,25 +1,31 @@
{{template "ng/base/head" .}} {{template "base/head" .}}
{{template "ng/base/header" .}} <div class="user reset password">
<div id="sign-wrapper"> <div class="ui middle very relaxed page grid">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="{{AppSubUrl}}/user/reset_password?code={{.Code}}" method="post"> <div class="column">
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}} {{.CsrfTokenHtml}}
<div class="panel-header"> <input name="code" type="hidden" value="{{.Code}}">
<h2>{{.i18n.Tr "auth.reset_password"}}</h2> <h2 class="ui top attached header">
</div> {{.i18n.Tr "auth.reset_password"}}
<div class="panel-content"> </h2>
{{template "ng/base/alert" .}} <div class="ui attached segment">
{{if .IsResetForm}} {{template "base/alert" .}}
<div class="field"> {{if .IsResetForm}}
<label class="req" for="password">{{.i18n.Tr "password"}}</label> <div class="required inline field {{if .Err_Password}}error{{end}}">
<input class="ipt ipt-large ipt-radius {{if .Err_Password}}ipt-error{{end}}" id="password" name="password" type="password" value="{{.password}}" required/> <label for="password">{{.i18n.Tr "password"}}</label>
<input id="password" name="password" type="password" value="{{.password}}" autofocus required>
</div> </div>
<hr/> <div class="ui divider"></div>
<label></label> <div class="inline field">
<button class="btn btn-blue btn-large btn-radius">{{.i18n.Tr "auth.reset_password_helper"}}</button> <label></label>
{{else}} <button class="ui blue button">{{.i18n.Tr "auth.reset_password_helper"}}</button>
<p>{{.i18n.Tr "auth.invalid_code"}}</p> </div>
{{end}} {{else}}
<p class="center">{{.i18n.Tr "auth.invalid_code"}}</p>
{{end}}
</div> </div>
</form> </form>
</div>
</div>
</div> </div>
{{template "ng/base/footer" .}} {{template "base/footer" .}}
+1 -1
View File
@@ -1,5 +1,5 @@
{{template "base/head" .}} {{template "base/head" .}}
<div class="signin"> <div class="user signin">
<div class="ui middle very relaxed page grid"> <div class="ui middle very relaxed page grid">
<div class="column"> <div class="column">
<form class="ui form" action="{{.Link}}" method="post"> <form class="ui form" action="{{.Link}}" method="post">
+1 -1
View File
@@ -1,5 +1,5 @@
{{template "base/head" .}} {{template "base/head" .}}
<div class="signup"> <div class="user signup">
<div class="ui middle very relaxed page grid"> <div class="ui middle very relaxed page grid">
<div class="column"> <div class="column">
<form class="ui form" action="{{.Link}}" method="post"> <form class="ui form" action="{{.Link}}" method="post">