user-edit.gohtml (13298B)
1 {{ define "sub-content" }} 2 <div class="page-header" style="margin: 0 0 15px 0;"> 3 <h4 class="pull-left" style="margin: 6px 0;"> 4 {{ if .Data.IsEdit }} 5 {{ t "Update user" . }} 6 {{ else }} 7 {{ t "Create user" . }} 8 {{ end }} 9 </h4> 10 <div class="pull-right" style="position:relative;top:0px;"></div> 11 <div class="clearfix"></div> 12 </div> 13 14 <form autocomplete="on" novalidate method="post"> 15 <input type="hidden" name="csrf" value="{{ .CSRF }}" /> 16 <fieldset> 17 <div class="row"> 18 <div class="center-block"> 19 </div> 20 </div> 21 <div class="row"> 22 <div class="col-sm-6"> 23 <div class="form-group{{ if .Data.Errors.Username }} has-error{{ end }}"> 24 <input name="username" value="{{ .Data.Username }}" class="form-control {{ if .Data.Errors.Username }} is-invalid{{ end }}" placeholder="{{ t "Username" . }}" type="text" autofocus required /> 25 {{ if .Data.Errors.Username }}<div class="invalid-feedback d-block">{{ .Data.Errors.Username }}</div>{{ end }} 26 </div> 27 28 <div class="form-group{{ if .Data.Errors.Password }} has-error{{ end }}"> 29 <input name="password" value="{{ .Data.Password }}" class="form-control {{ if .Data.Errors.Password }} is-invalid{{ end }}" placeholder="{{ t "Password" . }}" type="password" required /> 30 {{ if .Data.Errors.Password }}<div class="invalid-feedback d-block">{{ .Data.Errors.Password }}</div>{{ end }} 31 </div> 32 33 <div class="form-group"> 34 <input name="repassword" value="{{ .Data.RePassword }}" class="form-control" placeholder="{{ t "Retype password" . }}" type="password" /> 35 </div> 36 37 <div class="form-group"> 38 <input name="api_key" value="{{ .Data.ApiKey }}" class="form-control" placeholder="{{ t "API key" . }}" type="text" /> 39 </div> 40 41 </div> 42 <div class="col-sm-6"> 43 <div class="form-group"> 44 <select name="role" class="form-control"> 45 <option value="member"{{ if eq .Data.Role "member" }} selected{{ end }}>member</option> 46 <option value="moderator"{{ if eq .Data.Role "moderator" }} selected{{ end }}>moderator</option> 47 </select> 48 </div> 49 50 <div class="form-group"> 51 <input name="chat_color" value="{{ .Data.ChatColor }}" class="form-control" placeholder="{{ t "Chat color" . }}" type="text" required /> 52 </div> 53 54 <div class="form-group"> 55 <label for="chat_font">{{ t "Chat font" . }}</label> 56 <select name="chat_font" id="chat_font" class="form-control"> 57 {{ range .Data.AllFonts }} 58 <option value="{{ .Value }}" style="font-family:{{ .Style | css }}"{{ if eq $.Data.ChatFont .Value }} selected{{ end }}>{{ .Display }}</option> 59 {{ end }} 60 </select> 61 </div> 62 </div> 63 </div> 64 65 <div class="row"> 66 <div class="col-sm-6"> 67 <div class="form-check form-check-1"> 68 <div class="checkbox-wrapper form-check-input"> 69 <input class="my-cbx" type="checkbox" name="verified" id="verified" value="1"{{ if .Data.Verified }} checked{{ end }} /> 70 <label for="verified" class="toggle"><span></span></label> 71 </div> 72 <label class="form-check-label" for="verified">{{ t "Verified" . }}</label> 73 </div> 74 75 <div class="form-check form-check-1"> 76 <div class="checkbox-wrapper form-check-input"> 77 <input class="my-cbx" type="checkbox" name="is_club_member" id="is_club_member" value="1"{{ if .Data.IsClubMember }} checked{{ end }} /> 78 <label for="is_club_member" class="toggle"><span></span></label> 79 </div> 80 <label class="form-check-label" for="is_club_member">{{ t "Is club member" . }}</label> 81 </div> 82 83 <div class="form-check form-check-1"> 84 <div class="checkbox-wrapper form-check-input"> 85 <input class="my-cbx" type="checkbox" name="isAdmin" id="isAdmin" value="1"{{ if .Data.IsAdmin }} checked{{ end }} /> 86 <label for="isAdmin" class="toggle"><span></span></label> 87 </div> 88 <label class="form-check-label" for="isAdmin">{{ t "Is admin" . }}</label> 89 </div> 90 91 <div class="form-check form-check-1"> 92 <div class="checkbox-wrapper form-check-input"> 93 <input class="my-cbx" type="checkbox" name="isHellbanned" id="isHellbanned" value="1"{{ if .Data.IsHellbanned }} checked{{ end }} /> 94 <label for="isHellbanned" class="toggle"><span></span></label> 95 </div> 96 <label class="form-check-label" for="isHellbanned">{{ t "Is hellbanned" . }}</label> 97 </div> 98 99 <div class="form-check form-check-1"> 100 <div class="checkbox-wrapper form-check-input"> 101 <input class="my-cbx" type="checkbox" name="can_upload_file" id="can_upload_file" value="1"{{ if .Data.CanUploadFile }} checked{{ end }} /> 102 <label for="can_upload_file" class="toggle"><span></span></label> 103 </div> 104 <label class="form-check-label" for="can_upload_file">{{ t "Can upload file" . }}</label> 105 </div> 106 107 <div class="form-check form-check-1"> 108 <div class="checkbox-wrapper form-check-input"> 109 <input class="my-cbx" type="checkbox" name="can_use_forum" id="can_use_forum" value="1"{{ if .Data.CanUseForum }} checked{{ end }} /> 110 <label for="can_use_forum" class="toggle"><span></span></label> 111 </div> 112 <label class="form-check-label" for="can_use_forum">{{ t "Can use forum" . }}</label> 113 </div> 114 115 <div class="form-check form-check-1"> 116 <div class="checkbox-wrapper form-check-input"> 117 <input class="my-cbx" type="checkbox" name="can_change_username" id="can_change_username" value="1"{{ if .Data.CanChangeUsername }} checked{{ end }} /> 118 <label for="can_change_username" class="toggle"><span></span></label> 119 </div> 120 <label class="form-check-label" for="can_change_username">{{ t "Can change username" . }}</label> 121 </div> 122 123 </div> 124 <div class="col-sm-6"> 125 126 <div class="form-check form-check-1"> 127 <div class="checkbox-wrapper form-check-input"> 128 <input class="my-cbx" type="checkbox" name="can_use_uppercase" id="can_use_uppercase" value="1"{{ if .Data.CanUseUppercase }} checked{{ end }} /> 129 <label for="can_use_uppercase" class="toggle"><span></span></label> 130 </div> 131 <label class="form-check-label" for="can_use_uppercase">{{ t "Can use uppercase" . }}</label> 132 </div> 133 134 <div class="form-check form-check-1"> 135 <div class="checkbox-wrapper form-check-input"> 136 <input class="my-cbx" type="checkbox" name="can_change_color" id="can_change_color" value="1"{{ if .Data.CanChangeColor }} checked{{ end }} /> 137 <label for="can_change_color" class="toggle"><span></span></label> 138 </div> 139 <label class="form-check-label" for="can_change_color">{{ t "Can change color" . }}</label> 140 </div> 141 142 <div class="form-check form-check-1"> 143 <div class="checkbox-wrapper form-check-input"> 144 <input class="my-cbx" type="checkbox" name="can_use_multiline" id="can_use_multiline" value="1"{{ if .Data.CanUseMultiline }} checked{{ end }} /> 145 <label for="can_use_multiline" class="toggle"><span></span></label> 146 </div> 147 <label class="form-check-label" for="can_use_multiline">{{ t "Can use multiline" . }}</label> 148 </div> 149 150 <div class="form-check form-check-1"> 151 <div class="checkbox-wrapper form-check-input"> 152 <input class="my-cbx" type="checkbox" name="can_use_chess_analyze" id="can_use_chess_analyze" value="1"{{ if .Data.CanUseChessAnalyze }} checked{{ end }} /> 153 <label for="can_use_chess_analyze" class="toggle"><span></span></label> 154 </div> 155 <label class="form-check-label" for="can_use_chess_analyze">{{ t "Can use chess analyze" . }}</label> 156 </div> 157 158 <div class="form-check form-check-1"> 159 <div class="checkbox-wrapper form-check-input"> 160 <input class="my-cbx" type="checkbox" name="can_see_hellbanned" id="can_see_hellbanned" value="1"{{ if .Data.CanSeeHellbanned }} checked{{ end }} /> 161 <label for="can_see_hellbanned" class="toggle"><span></span></label> 162 </div> 163 <label class="form-check-label" for="can_see_hellbanned">{{ t "Can see HB" . }}</label> 164 </div> 165 166 <div class="form-check form-check-1"> 167 <div class="checkbox-wrapper form-check-input"> 168 <input class="my-cbx" type="checkbox" name="is_incognito" id="is_incognito" value="1"{{ if .Data.IsIncognito }} checked{{ end }} /> 169 <label for="is_incognito" class="toggle"><span></span></label> 170 </div> 171 <label class="form-check-label" for="is_incognito">{{ t "Incognito" . }}</label> 172 </div> 173 174 <div class="form-check form-check-1"> 175 <div class="checkbox-wrapper form-check-input"> 176 <input class="my-cbx" type="checkbox" name="vetted" id="vetted" value="1"{{ if .Data.Vetted }} checked{{ end }} /> 177 <label for="vetted" class="toggle"><span></span></label> 178 </div> 179 <label class="form-check-label" for="vetted">{{ t "Vetted" . }}</label> 180 </div> 181 182 <div class="form-check form-check-1"> 183 <div class="checkbox-wrapper form-check-input"> 184 <input class="my-cbx" type="checkbox" name="collect_metadata" id="collect_metadata" value="1"{{ if .Data.CollectMetadata }} checked{{ end }} /> 185 <label for="collect_metadata" class="toggle"><span></span></label> 186 </div> 187 <label class="form-check-label" for="collect_metadata">{{ t "Collect metadata" . }}</label> 188 </div> 189 </div> 190 </div> 191 192 <div class="row"> 193 <div class="col-sm-12"> 194 <div class="form-group"> 195 {{ if .Data.IsEdit }} 196 <input type="submit" class="btn btn-primary" value="{{ t "Update user" . }}" /> 197 {{ else }} 198 <input type="submit" class="btn btn-primary" value="{{ t "Create user" . }}" /> 199 {{ end }} 200 </div> 201 </div> 202 </div> 203 204 </fieldset> 205 </form> 206 207 <form method="post" class="d-inline"> 208 <input type="hidden" name="csrf" value="{{ .CSRF }}" /> 209 <input type="hidden" name="formName" value="reset_tutorial" /> 210 <input type="submit" class="btn btn-secondary" value="Reset tutorial ({{ .Data.ChatTutorial }})" /> 211 </form> 212 213 <form method="post" class="d-inline"> 214 <input type="hidden" name="csrf" value="{{ .CSRF }}" /> 215 <input type="hidden" name="formName" value="disable_2fa" /> 216 <input type="submit" class="btn btn-secondary" value="Disable 2fa ({{ if or .Data.User.GpgTwoFactorEnabled (ne .Data.User.TwoFactorSecret "") }}on{{ else }}off{{ end }})" /> 217 </form> 218 219 <form method="post" class="d-inline"> 220 <input type="hidden" name="csrf" value="{{ .CSRF }}" /> 221 <input type="hidden" name="formName" value="reset_login_attempts" /> 222 <input type="submit" class="btn btn-secondary" value="Reset login attempts ({{ .Data.User.LoginAttempts }})" /> 223 </form> 224 225 <a href="/u/{{ .Data.Username }}" class="btn btn-secondary">Public profile</a> 226 <a href="/admin/users/{{ .Data.User.ID }}/security-logs" class="btn btn-secondary">Security logs</a> 227 228 <div> 229 Signup metadata: {{ .Data.SignupMetadata }} 230 </div> 231 <div> 232 Public msgs: {{ .Data.User.GeneralMessagesCount }} 233 </div> 234 <div> 235 Login attempts: {{ .Data.User.LoginAttempts }} 236 </div> 237 238 <div> 239 Xmr balance: {{ .Data.User.XmrBalance }} | {{ .Data.User.XmrBalance.XmrStr }} <small>XMR</small> | {{ .Data.User.XmrBalance.UsdStr }} 240 </div> 241 242 {{ end }}