You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

edit.tmpl 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. {{template "ng/base/head" .}}
  2. {{template "ng/base/header" .}}
  3. <div id="admin-wrapper">
  4. <div id="setting-wrapper" class="main-wrapper">
  5. <div id="admin-setting" class="container clear">
  6. {{template "admin/nav" .}}
  7. <div class="grid-4-5 left">
  8. <div class="setting-content">
  9. {{template "ng/base/alert" .}}
  10. <div id="setting-content">
  11. <div class="panel panel-radius">
  12. <div class="panel-header">
  13. <strong>{{.i18n.Tr "admin.auths.edit"}}</strong>
  14. </div>
  15. <form class="form form-align panel-body" id="auth-setting-form" action="{{AppSubUrl}}/admin/auths/{{.Source.ID}}" data-delete-url="{{AppSubUrl}}/admin/auths/{{.Source.ID}}/delete" method="post">
  16. {{.CsrfTokenHtml}}
  17. <input type="hidden" value="{{.Source.ID}}" name="id"/>
  18. {{$type := .Source.Type}}
  19. <div class="field">
  20. <label>{{.i18n.Tr "admin.auths.auth_type"}}</label>
  21. <input type="hidden" name="type" value="{{.Source.Type}}"/>
  22. <label class="control-label">
  23. {{range $key, $val := .LoginTypes}}
  24. {{if eq $key $type}}{{$val}}{{end}}
  25. {{end}}
  26. </label>
  27. </div>
  28. <div class="field">
  29. <label class="req" for="name">{{.i18n.Tr "admin.auths.auth_name"}}</label>
  30. <input class="ipt ipt-large ipt-radius {{if .Err_AuthName}}ipt-error{{end}}" id="name" name="name" value="{{.Source.Name}}" required />
  31. </div>
  32. {{if eq $type 2 5}}
  33. <div class="field">
  34. <label class="req" for="host">{{.i18n.Tr "admin.auths.host"}}</label>
  35. <input class="ipt ipt-large ipt-radius {{if .Err_Host}}ipt-error{{end}}" id="host" name="host" value="{{.Source.LDAP.Host}}" required />
  36. </div>
  37. <div class="field">
  38. <label class="req" for="port">{{.i18n.Tr "admin.auths.port"}}</label>
  39. <input class="ipt ipt-large ipt-radius {{if .Err_Port}}ipt-error{{end}}" id="port" name="port" value="{{.Source.LDAP.Port}}" required />
  40. </div>
  41. <div class="field">
  42. <label for="use_ssl">{{.i18n.Tr "admin.auths.enable_tls"}}</label>
  43. <input name="use_ssl" type="checkbox" {{if .Source.LDAP.UseSSL}}checked{{end}}>
  44. </div>
  45. {{if eq $type 2}}
  46. <div class="field">
  47. <label for="bind_dn">{{.i18n.Tr "admin.auths.bind_dn"}}</label>
  48. <input class="ipt ipt-large ipt-radius {{if .Err_BindDN}}ipt-error{{end}}" id="bind_dn" name="bind_dn" value="{{.Source.LDAP.BindDN}}" />
  49. </div>
  50. <div class="field">
  51. <label for="bind_password">{{.i18n.Tr "admin.auths.bind_password"}}</label>
  52. <input class="ipt ipt-large ipt-radius {{if .Err_BindPassword}}ipt-error{{end}}" id="bind_password" name="bind_password" type="password" value="{{.Source.LDAP.BindPassword}}" />
  53. </div>
  54. <div class="field">
  55. <label class="req" for="user_base">{{.i18n.Tr "admin.auths.user_base"}}</label>
  56. <input class="ipt ipt-large ipt-radius {{if .Err_UserBase}}ipt-error{{end}}" id="user_base" name="user_base" value="{{.Source.LDAP.UserBase}}" />
  57. </div>
  58. {{end}}
  59. {{if eq $type 5}}
  60. <div class="field">
  61. <label class="req" for="user_dn">{{.i18n.Tr "admin.auths.user_dn"}}</label>
  62. <input class="ipt ipt-large ipt-radius {{if .Err_UserDN}}ipt-error{{end}}" id="user_dn" name="user_dn" value="{{.Source.LDAP.UserDN}}" />
  63. </div>
  64. {{end}}
  65. <div class="field">
  66. <label class="req" for="filter">{{.i18n.Tr "admin.auths.filter"}}</label>
  67. <input class="ipt ipt-large ipt-radius {{if .Err_Filter}}ipt-error{{end}}" id="filter" name="filter" value="{{.Source.LDAP.Filter}}" />
  68. </div>
  69. <div class="field">
  70. <label for="filter">{{.i18n.Tr "admin.auths.admin_filter"}}</label>
  71. <input class="ipt ipt-large ipt-radius {{if .Err_AdminFilter}}ipt-error{{end}}" id="admin_filter" name="admin_filter" value="{{.Source.LDAP.AdminFilter}}" />
  72. </div>
  73. <div class="field">
  74. <label for="attribute_name">{{.i18n.Tr "admin.auths.attribute_name"}}</label>
  75. <input class="ipt ipt-large ipt-radius {{if .Err_Attributes}}ipt-error{{end}}" id="attribute_name" name="attribute_name" value="{{.Source.LDAP.AttributeName}}" />
  76. </div>
  77. <div class="field">
  78. <label for="attribute_surname">{{.i18n.Tr "admin.auths.attribute_surname"}}</label>
  79. <input class="ipt ipt-large ipt-radius {{if .Err_Attributes}}ipt-error{{end}}" id="attribute_surname" name="attribute_surname" value="{{.Source.LDAP.AttributeSurname}}" />
  80. </div>
  81. <div class="field">
  82. <label class="req" for="attribute_mail">{{.i18n.Tr "admin.auths.attribute_mail"}}</label>
  83. <input class="ipt ipt-large ipt-radius {{if .Err_Attributes}}ipt-error{{end}}" id="attribute_mail" name="attribute_mail" value="{{.Source.LDAP.AttributeMail}}" />
  84. </div>
  85. {{else if eq $type 3}}
  86. <div class="field">
  87. <label class="req">{{.i18n.Tr "admin.auths.smtp_auth"}}</label>
  88. <select name="smtp_auth">
  89. {{$auth := .Source.SMTP.Auth}}
  90. {{range .SMTPAuths}}
  91. <option value="{{.}}"
  92. {{if eq . $auth}} selected{{end}}>{{.}}</option>
  93. {{end}}
  94. </select>
  95. </div>
  96. <div class="field">
  97. <label class="req" for="smtp_host">{{.i18n.Tr "admin.auths.smtphost"}}</label>
  98. <input class="ipt ipt-large ipt-radius {{if .Err_SmtpHost}}ipt-error{{end}}" id="smtp_host" name="smtp_host" value="{{.Source.SMTP.Host}}" />
  99. </div>
  100. <div class="field">
  101. <label class="req" for="smtp_port">{{.i18n.Tr "admin.auths.smtpport"}}</label>
  102. <input class="ipt ipt-large ipt-radius {{if .Err_SmtpPort}}ipt-error{{end}}" id="smtp_port" name="smtp_port" value="{{.Source.SMTP.Port}}" />
  103. </div>
  104. {{else if eq $type 4}}
  105. <div class="field">
  106. <label class="req" for="pam_service_name">{{.i18n.Tr "admin.auths.pam_service_name"}}</label>
  107. <input class="ipt ipt-large ipt-radius {{if .Err_PAMServiceName}}ipt-error{{end}}" id="pam_service_name" name="pam_service_name" value="{{.Source.PAM.ServiceName}}" />
  108. </div>
  109. {{end}}
  110. <div class="field">
  111. {{if eq $type 3}}
  112. <label></label>
  113. <input name="tls" type="checkbox" {{if .Source.SMTP.TLS}}checked{{end}}>
  114. <strong>{{.i18n.Tr "admin.auths.enable_tls"}}</strong>
  115. <br>
  116. <label></label>
  117. <input name="skip_verify" type="checkbox" {{if .Source.SMTP.SkipVerify}}checked{{end}}>
  118. <strong>{{.i18n.Tr "admin.auths.skip_tls_verify"}}</strong>
  119. <br>
  120. {{end}}
  121. <label></label>
  122. <input name="allowautoregister" type="checkbox" {{if .Source.AllowAutoRegister}}checked{{end}}>
  123. <strong>{{.i18n.Tr "admin.auths.enable_auto_register"}}</strong>
  124. <br>
  125. <label></label>
  126. <input name="is_actived" type="checkbox" {{if .Source.IsActived}}checked{{end}}>
  127. <strong>{{.i18n.Tr "admin.auths.activated"}}</strong>
  128. </div>
  129. <div class="field">
  130. <label></label>
  131. <button class="btn btn-green btn-large btn-radius">{{.i18n.Tr "admin.auths.update"}}</button>
  132. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  133. <button class="btn btn-large btn-red btn-radius" id="delete-auth-btn" href="#delete-auth-modal">{{.i18n.Tr "admin.auths.delete"}}</button>
  134. </div>
  135. <div class="white-popup-block mfp-hide" id="delete-auth-modal">
  136. <h1 class="text-red">{{.i18n.Tr "admin.auths.delete_auth_title"}}</h1>
  137. <p>{{.i18n.Tr "admin.auths.delete_auth_desc"}}</p>
  138. <br>
  139. <button class="btn btn-red btn-large btn-radius" id="delete-auth-submit">{{.i18n.Tr "settings.continue"}}</button>
  140. <button class="btn btn-large btn-radius popup-modal-dismiss">{{.i18n.Tr "settings.cancel"}}</button>
  141. </div>
  142. </form>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. {{template "ng/base/footer" .}}