dkforest

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

account.gohtml (7506B)


      1 {{ define "sub-content" }}
      2 
      3 {{ if .Data.Error }}
      4     <div class="alert alert-danger">{{ .Data.Error }}</div>
      5 {{ end }}
      6 
      7 <div class="card mb-3">
      8     <div class="card-header">
      9         {{ t "Change contact information" . }}
     10     </div>
     11     <div class="card-body">
     12         <form method="post">
     13             <input type="hidden" name="csrf" value="{{ .CSRF }}" />
     14             <input type="hidden" name="formName" value="editProfile" />
     15             <div class="form-group">
     16                 <label>{{ t "Website" . }}</label>
     17                 <input name="website" placeholder="Website" value="{{ .Data.Website }}" class="form-control{{ if .Data.ErrorWebsite }} is-invalid{{ end }}" type="url" {{ if .Data.ErrorWebsite }} autofocus{{ end }} />
     18                 {{ if .Data.ErrorWebsite }}
     19                     <div class="invalid-feedback">{{ .Data.ErrorWebsite }}</div>
     20                 {{ end }}
     21             </div>
     22             <div class="form-group">
     23                 <label>{{ t "Email" . }}</label>
     24                 <input name="email" placeholder="Email" value="{{ .Data.Email }}" class="form-control{{ if .Data.ErrorEmail }} is-invalid{{ end }}" type="email" {{ if .Data.ErrorEmail }} autofocus{{ end }} />
     25                 {{ if .Data.ErrorEmail }}
     26                     <div class="invalid-feedback">{{ .Data.ErrorEmail }}</div>
     27                 {{ end }}
     28             </div>
     29             <div class="form-group">
     30                 <div class="form-check form-check-1">
     31                     <div class="checkbox-wrapper form-check-input">
     32                         <input class="my-cbx" type="checkbox" name="last_seen_public" id="last_seen_public" value="1"{{ if .AuthUser.LastSeenPublic }} checked{{ end }} />
     33                         <label for="last_seen_public" class="toggle"><span></span></label>
     34                     </div>
     35                     <label for="last_seen_public">Display "Last seen" in public profile</label>
     36                 </div>
     37                 <div class="form-check form-check-1">
     38                     <div class="checkbox-wrapper form-check-input">
     39                         <input class="my-cbx" type="checkbox" name="terminate_all_sessions_on_logout" id="terminate_all_sessions_on_logout" value="1"{{ if .AuthUser.TerminateAllSessionsOnLogout }} checked{{ end }} />
     40                         <label for="terminate_all_sessions_on_logout" class="toggle"><span></span></label>
     41                     </div>
     42                     <label for="terminate_all_sessions_on_logout">Terminate all active sessions on logout</label>
     43                 </div>
     44             </div>
     45             <div class="form-group">
     46                 <input type="submit" value="{{ t "Save profile" . }}" class="btn btn-primary" />
     47             </div>
     48         </form>
     49     </div>
     50 </div>
     51 
     52 <div class="card mb-3">
     53     <div class="card-header">
     54         {{ t "Change avatar" . }}
     55     </div>
     56     <div class="card-body">
     57         <form method="post" enctype="multipart/form-data">
     58             <input type="hidden" name="csrf" value="{{ .CSRF }}" />
     59             <input type="hidden" name="formName" value="changeAvatar" />
     60             <table width="100%">
     61                 <tr>
     62                     <td>
     63                         <div class="form-group">
     64                             {{ if not .AuthUser.CanUpload }}
     65                                 <p>{{ .Data.AccountTooYoungErrorString }}</p>
     66                             {{ end }}
     67                             <p>
     68                                 The maximum dimensions for avatars are: 120x120 pixels.<br />
     69                                 The maximum file size for avatars is 300 KB.
     70                             </p>
     71                             <input name="avatar" class="{{ if .Data.ErrorAvatar }} is-invalid{{ end }}" type="file" accept=".bmp,.gif,.png,.jpg,.jpeg,.webp,image/gif,image/png,image/jpeg,image/bmp,image/webp" required />
     72                             {{ if .Data.ErrorAvatar }}
     73                                 <div class="invalid-feedback">{{ .Data.ErrorAvatar }}</div>
     74                             {{ end }}
     75                         </div>
     76                         <div class="form-group">
     77                             <input type="submit" value="{{ t "Upload avatar" . }}" class="btn btn-primary"{{ if not .AuthUser.CanUpload }} disabled{{ end }} />
     78                         </div>
     79                     </td>
     80                     <td width="150" align="right">
     81                         {{ if .AuthUser.Avatar }}
     82                             <img src="data:image;base64,{{ .AuthUser.Avatar | b64 }}" alt="avatar" />
     83                         {{ else }}
     84                             <img src="/public/img/avatar-placeholder.png" alt="avatar" />
     85                         {{ end }}
     86                     </td>
     87                 </tr>
     88             </table>
     89         </form>
     90     </div>
     91 </div>
     92 
     93 {{ if .AuthUser.CanChangeUsername }}
     94     <div class="card mb-3">
     95         <div class="card-header">
     96             {{ t "Change username" . }}
     97         </div>
     98         <div class="card-body">
     99             <form method="post" novalidate>
    100                 <input type="hidden" name="csrf" value="{{ .CSRF }}" />
    101                 <input type="hidden" name="formName" value="changeUsername" />
    102                 <div class="form-group">
    103                     <label>{{ t "New username" . }}</label>
    104                     <input name="username" value="{{ .Data.Username }}" class="form-control{{ if .Data.ErrorUsername }} is-invalid{{ end }}" type="text"{{ if .Data.ErrorUsername }} autofocus{{ end }} required />
    105                     {{ if .Data.ErrorUsername }}
    106                         <div class="invalid-feedback">{{ .Data.ErrorUsername }}</div>
    107                     {{ end }}
    108                 </div>
    109                 <div class="form-group">
    110                     <input type="submit" value="{{ t "Change my username" . }}" class="btn btn-primary" />
    111                 </div>
    112             </form>
    113         </div>
    114     </div>
    115 {{ end }}
    116 
    117 <div class="card mb-3">
    118     <div class="card-header">
    119         {{ t "Two-Factor Authentication" . }}
    120     </div>
    121     <div class="card-body">
    122         <div class="mb-3">
    123             {{ if eq .AuthUser.TwoFactorSecret "" }}
    124                 <a href="/two-factor-authentication/verify" class="btn btn-primary">{{ t "Enable TOTP two-factor authentication" . }}</a>
    125             {{ else }}
    126                 <a href="/two-factor-authentication/disable" class="btn btn-danger">{{ t "Disable TOTP two-factor authentication" . }}</a>
    127             {{ end }}
    128         </div>
    129         <div>
    130             {{ if not .AuthUser.GpgTwoFactorEnabled }}
    131                 <a href="/gpg-two-factor-authentication/toggle" class="btn btn-primary">{{ t "Enable PGP two-factor authentication" . }}</a>
    132             {{ else }}
    133                 <a href="/gpg-two-factor-authentication/toggle" class="btn btn-danger">{{ t "Disable PGP two-factor authentication" . }}</a>
    134             {{ end }}
    135         </div>
    136     </div>
    137 </div>
    138 
    139 <div class="mb-5"></div>
    140 
    141 <!--<div class="card border-danger mb-3">-->
    142 <!--    <div class="card-header">-->
    143 <!--        {{ t "Delete account" . }}-->
    144 <!--    </div>-->
    145 <!--    <div class="card-body">-->
    146 <!--        {{ if eq .AuthUser.ID 1 }}-->
    147 <!--        <div>-->
    148 <!--            <p class="text-danger">-->
    149 <!--                {{ t "Root admin cannot delete his account" . }}-->
    150 <!--            </p>-->
    151 <!--        </div>-->
    152 <!--        {{ end }}-->
    153 <!--        <button class="btn btn-danger"{{ if eq .AuthUser.ID 1 }} disabled{{ end }}>{{ t "Delete your account" . }}</button>-->
    154 <!--    </div>-->
    155 <!--</div>-->
    156 {{ end }}