extends layout.pug block title h1(style="margin-bottom: 0;") a(href='..') < | #{config.siteTitle} p= lang('ADMIN_USER_EDIT_EDITING_USER', user._id) block content .columns .column if user.signupToken - const signupLink = `${_CC.config.base}confirm-account/${user.signupToken}` .box(style='overflow: hidden;') .columns(style='margin-bottom: 0;') .column.is-narrow(style='padding-bottom: 0;') h2= lang('ADMIN_USER_EDIT_CONFIRMATION_LINK') .column(style='padding-bottom: 0;') p span= lang('ADMIN_USER_EDIT_ACCOUNT_UNCONFIRMED') br if user.expiry > new Date().getTime() span= lang('ADMIN_USER_EDIT_LINK_EXPIRY_FUTURE', _CC.moment(user.expiry).fromNow()) else span.has-text-weight-bold(style='color: red;')= lang('ADMIN_USER_EDIT_LINK_EXPIRY_PAST', _CC.moment(user.expiry).fromNow()) h3(style='margin-bottom: 0; margin-top: 0;') .level .level-left .level-item form(method='POST', action=`${_CC.config.base}admin-settings/edit/refresh-signup-token/${user._id}`) input.button.is-rounded(type='submit', value=lang('ADMIN_USER_EDIT_GENERATE_NEW_LINK')) .level-item a(href=signupLink, style='font-family: monospaced; word-break: break-all;')= signupLink .columns .column.is-narrow h2= lang('ADMIN_USER_EDIT_CHANGE_NAME') form(action=`${_CC.config.base}admin-settings/edit/rename/${user._id}`, method='POST') .field label.label= lang('ADMIN_USER_EDIT_USERNAME') .control.has-icons-left input.input(type='text', name='newUsername', placeholder=user._id, value=user._id) span.icon.is-small.is-left i.fas.fa-user .field .control input.button.is-primary(type='submit' value=lang('ADMIN_USER_EDIT_CHANGE_USERNAME')) .column.is-narrow h2= lang('ADMIN_USER_EDIT_ADMIN') //- Yes, ternary exists, but I think the code is cleaner with a more "naive" style :) //- p.is-marginless #{user._id} is #{user.admin ? '' : 'not '}an admin. //- vs. if user.admin p.is-marginless= lang('ADMIN_USER_EDIT_ADMIN_ISADMIN', user._id) form(action=`${_CC.config.base}admin-settings/edit/demote/${user._id}`, method='POST') .field .control if user._id === req.user._id input.input.button(disabled, type='submit', value=lang('ADMIN_USER_EDIT_DEMOTE_SELF'), style='margin-top: 1em;') else input.input.button(type='submit', value=lang('ADMIN_USER_EDIT_DEMOTE', user._id), style='margin-top: 1em;') else p.is-marginless= lang('ADMIN_USER_EDIT_ADMIN_NOTADMIN', user._id) form(action=`${_CC.config.base}admin-settings/edit/promote/${user._id}`, method='POST') .field .control input.input.button(type='submit', value=lang('ADMIN_USER_EDIT_PROMOTE', user._id), style='margin-top: 1em;') if user._id !== req.user._id .column.is-narrow h2= lang('ADMIN_USER_EDIT_IMPERSONATE_HEADER') form(action=`${_CC.config.base}admin-settings/edit/impersonate/${user._id}`, method='POST') .field .control input.input.button.is-warning(type='submit', value=lang('ADMIN_USER_EDIT_IMPERSONATE_BUTTON', user._id), style='margin-top: 1em;') h2(style='margin-bottom: 1em;')= lang('ADMIN_USER_EDIT_RESET_PASSWORD_HEADER') if user.pwToken - const resetLink = `${_CC.config.base}resetpw/${user.pwToken}` p= lang('ADMIN_USER_EDIT_RESET_PASSWORD_HASLINK') if user.pwExpiry > new Date().getTime() span= lang('ADMIN_USER_EDIT_RESET_PASSWORD_HASLINK_EXPIRY_FUTURE', _CC.moment(user.pwExpiry).fromNow()) else span.has-text-weight-bold.has-text-danger= lang('ADMIN_USER_EDIT_RESET_PASSWORD_HASLINK_EXPIRY_PAST', _CC.moment(user.pwExpiry).fromNow()) a(href=resetLink)= resetLink .columns .column.is-narrow form(method='POST', action=`${_CC.config.base}admin-settings/edit/resetpw/${user._id}`) .field .control input.button.is-primary(type='submit' value=lang('ADMIN_USER_EDIT_RESET_PASSWORD_LINK_REFRESH')) .column.is-narrow form(method='POST', action=`${_CC.config.base}admin-settings/edit/cancelresetpw/${user._id}`) .field .control input.button.is-info(type='submit' value=lang('ADMIN_USER_EDIT_RESET_PASSWORD_LINK_CANCEL')) else form(method='POST', action=`${_CC.config.base}admin-settings/edit/resetpw/${user._id}`) .field .control input.button.is-danger(type='submit' value=lang('ADMIN_USER_EDIT_RESET_PASSWORD_LINK_CREATE')) .column.is-narrow h2= lang('ADMIN_USER_EDIT_DELETE_HEADER') form(method='POST', action=`${_CC.config.base}admin-settings/edit/remove/${user._id}`) .field .control if user.admin input.button.is-danger(disabled, type='submit' value=lang('ADMIN_USER_EDIT_DELETE_ADMIN')) else input.button.is-danger(type='submit' value=lang('ADMIN_USER_EDIT_DELETE_USER', user._id))