24d7a86a8d
The IsAdmin flag is set based on whether the admin filter returned any result. The admin filter is applied with the user dn as the search root. In the future, we should update IsAdmin as well on each login. Alternately, we can have a periodic sync operation.
142 lines
10 KiB
Cheetah
142 lines
10 KiB
Cheetah
{{template "ng/base/head" .}}
|
|
{{template "ng/base/header" .}}
|
|
<div id="admin-wrapper">
|
|
<div id="setting-wrapper" class="main-wrapper">
|
|
<div id="admin-setting" class="container clear">
|
|
{{template "admin/nav" .}}
|
|
<div class="grid-4-5 left">
|
|
<div class="setting-content">
|
|
{{template "ng/base/alert" .}}
|
|
<div id="setting-content">
|
|
<div class="panel panel-radius">
|
|
<div class="panel-header">
|
|
<strong>{{.i18n.Tr "admin.auths.edit"}}</strong>
|
|
</div>
|
|
<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">
|
|
{{.CsrfTokenHtml}}
|
|
<input type="hidden" value="{{.Source.Id}}" name="id"/>
|
|
{{$type := .Source.Type}}
|
|
<div class="field">
|
|
<label>{{.i18n.Tr "admin.auths.auth_type"}}</label>
|
|
<input type="hidden" name="type" value="{{.Source.Type}}"/>
|
|
<label class="control-label">
|
|
{{range $key, $val := .LoginTypes}}
|
|
{{if eq $key $type}}{{$val}}{{end}}
|
|
{{end}}
|
|
</label>
|
|
</div>
|
|
<div class="field">
|
|
<label class="req" for="name">{{.i18n.Tr "admin.auths.auth_name"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_AuthName}}ipt-error{{end}}" id="name" name="name" value="{{.Source.Name}}" required />
|
|
</div>
|
|
|
|
{{if eq $type 2}}
|
|
<div class="field">
|
|
<label class="req" for="host">{{.i18n.Tr "admin.auths.host"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_Host}}ipt-error{{end}}" id="host" name="host" value="{{.Source.LDAP.Host}}" required />
|
|
</div>
|
|
<div class="field">
|
|
<label class="req" for="port">{{.i18n.Tr "admin.auths.port"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_Port}}ipt-error{{end}}" id="port" name="port" value="{{.Source.LDAP.Port}}" required />
|
|
</div>
|
|
<div class="field">
|
|
<label for="use_ssl">{{.i18n.Tr "admin.auths.enable_tls"}}</label>
|
|
<input name="use_ssl" type="checkbox" {{if .Source.LDAP.UseSSL}}checked{{end}}>
|
|
</div>
|
|
<div class="field">
|
|
<label for="bind_dn">{{.i18n.Tr "admin.auths.bind_dn"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_BindDN}}ipt-error{{end}}" id="bind_dn" name="bind_dn" value="{{.Source.LDAP.BindDN}}" />
|
|
</div>
|
|
<div class="field">
|
|
<label for="bind_password">{{.i18n.Tr "admin.auths.bind_password"}}</label>
|
|
<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}}" />
|
|
</div>
|
|
<div class="field">
|
|
<label class="req" for="user_base">{{.i18n.Tr "admin.auths.user_base"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_UserBase}}ipt-error{{end}}" id="user_base" name="user_base" value="{{.Source.LDAP.UserBase}}" />
|
|
</div>
|
|
<div class="field">
|
|
<label class="req" for="filter">{{.i18n.Tr "admin.auths.filter"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_Filter}}ipt-error{{end}}" id="filter" name="filter" value="{{.Source.LDAP.Filter}}" />
|
|
</div>
|
|
<div class="field">
|
|
<label class="req" for="filter">{{.i18n.Tr "admin.auths.admin_filter"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_AdminFilter}}ipt-error{{end}}" id="admin_filter" name="admin_filter" value="{{.Source.LDAP.AdminFilter}}" />
|
|
</div>
|
|
<div class="field">
|
|
<label for="attribute_name">{{.i18n.Tr "admin.auths.attribute_name"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_Attributes}}ipt-error{{end}}" id="attribute_name" name="attribute_name" value="{{.Source.LDAP.AttributeName}}" />
|
|
</div>
|
|
<div class="field">
|
|
<label for="attribute_surname">{{.i18n.Tr "admin.auths.attribute_surname"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_Attributes}}ipt-error{{end}}" id="attribute_surname" name="attribute_surname" value="{{.Source.LDAP.AttributeSurname}}" />
|
|
</div>
|
|
<div class="field">
|
|
<label class="req" for="attribute_mail">{{.i18n.Tr "admin.auths.attribute_mail"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_Attributes}}ipt-error{{end}}" id="attribute_mail" name="attribute_mail" value="{{.Source.LDAP.AttributeMail}}" />
|
|
</div>
|
|
|
|
{{else if eq $type 3}}
|
|
<div class="field">
|
|
<label class="req">{{.i18n.Tr "admin.auths.smtp_auth"}}</label>
|
|
<select name="smtp_auth">
|
|
{{$auth := .Source.SMTP.Auth}}
|
|
{{range .SMTPAuths}}
|
|
<option value="{{.}}"
|
|
{{if eq . $auth}} selected{{end}}>{{.}}</option>
|
|
{{end}}
|
|
</select>
|
|
</div>
|
|
<div class="field">
|
|
<label class="req" for="smtp_host">{{.i18n.Tr "admin.auths.smtphost"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_SmtpHost}}ipt-error{{end}}" id="smtp_host" name="smtp_host" value="{{.Source.SMTP.Host}}" />
|
|
</div>
|
|
<div class="field">
|
|
<label class="req" for="smtp_port">{{.i18n.Tr "admin.auths.smtpport"}}</label>
|
|
<input class="ipt ipt-large ipt-radius {{if .Err_SmtpPort}}ipt-error{{end}}" id="smtp_port" name="smtp_port" value="{{.Source.SMTP.Port}}" />
|
|
</div>
|
|
|
|
{{else if eq $type 4}}
|
|
<div class="field">
|
|
<label class="req" for="pam_service_name">{{.i18n.Tr "admin.auths.pam_service_name"}}</label>
|
|
<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}}" />
|
|
</div>
|
|
{{end}}
|
|
|
|
<div class="field">
|
|
{{if eq $type 3}}
|
|
<label></label>
|
|
<input name="tls" type="checkbox" {{if .Source.SMTP.TLS}}checked{{end}}>
|
|
<strong>{{.i18n.Tr "admin.auths.enable_tls"}}</strong>
|
|
<br>
|
|
{{end}}
|
|
<label></label>
|
|
<input name="allowautoregister" type="checkbox" {{if .Source.AllowAutoRegister}}checked{{end}}>
|
|
<strong>{{.i18n.Tr "admin.auths.enable_auto_register"}}</strong>
|
|
<br>
|
|
<label></label>
|
|
<input name="is_actived" type="checkbox" {{if .Source.IsActived}}checked{{end}}>
|
|
<strong>{{.i18n.Tr "admin.auths.activated"}}</strong>
|
|
</div>
|
|
<div class="field">
|
|
<label></label>
|
|
<button class="btn btn-green btn-large btn-radius">{{.i18n.Tr "admin.auths.update"}}</button>
|
|
|
|
<button class="btn btn-large btn-red btn-radius" id="delete-auth-btn" href="#delete-auth-modal">{{.i18n.Tr "admin.auths.delete"}}</button>
|
|
</div>
|
|
<div class="white-popup-block mfp-hide" id="delete-auth-modal">
|
|
<h1 class="text-red">{{.i18n.Tr "admin.auths.delete_auth_title"}}</h1>
|
|
<p>{{.i18n.Tr "admin.auths.delete_auth_desc"}}</p>
|
|
<br>
|
|
<button class="btn btn-red btn-large btn-radius" id="delete-auth-submit">{{.i18n.Tr "settings.continue"}}</button>
|
|
<button class="btn btn-large btn-radius popup-modal-dismiss">{{.i18n.Tr "settings.cancel"}}</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{template "ng/base/footer" .}}
|