dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

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 }}