.block.block--danger .block__header i.fa.fa-tools | Admin .block__content i.fa.icon--padded.small.fa-calendar> ' Account created = @user.created_at br i.fa.icon--padded.small.fa-filter> ' Current Filter: = if @filter do = link @filter.name, to: ~p"/filters/#{@filter}" - else em ' (none) br i.far.icon--padded.small.fa-clock> ' Last seen = if @last_ip do => pretty_time(@last_ip.updated_at) ' from => link_to_ip(@conn, @last_ip.ip) = if @last_fp do => link_to_fingerprint(@conn, @last_fp.fingerprint) - else em ' (never) br i.fas.icon--padded.small.fa-key> ' Two factor auth: strong = enabled_text(@user.otp_required_for_login) br = if @user.locked_at do i.fas.icon--padded.small.fa-lock> strong.comment_deleted> ' Account locked, => @user.failed_attempts ' failed login attempts - else i.fas.icon--padded.small.fa-unlock> ' Not currently locked hr.separator.separator--danger a.button.button--danger href="#" data-click-toggle=".js-admin__options__toggle" title="Toggle Controls" i.fa.icon--padded.small.fa-bars span Toggle Controls .profile-top__options.js-admin__options__toggle.hidden ul.profile-admin__options__column li = link to: ~p"/profiles/#{@user}/details" do i.fa.icon--padded.small.fa-eye span.admin__button View Details li = link to: ~p"/search?#{[q: "upvoted_by_id:#{@user.id}"]}" do i.fa.icon--padded.small.fa-arrow-up span.admin__button Upvotes li = link to: ~p"/search?#{[q: "downvoted_by_id:#{@user.id}"]}" do i.fa.icon--padded.small.fa-arrow-down span.admin__button Downvotes li = link to: ~p"/search?#{[q: "hidden_by_id:#{@user.id}"]}" do i.fa.icon--padded.small.fa-eye-slash span.admin__button Hidden Images li = link to: ~p"/admin/reports?#{[rq: "user_id:#{@user.id}"]}" do i.fa.icon--padded.small.fa-exclamation span.admin__button Reports li = link to: ~p"/profiles/#{@user}/ip_history" do i.fab.icon--padded.small.fa-internet-explorer span.admin__button IP History li = link to: ~p"/profiles/#{@user}/fp_history" do i.fa.icon--padded.small.fa-desktop span.admin__button FP History li = link to: ~p"/profiles/#{@user}/aliases" do i.fa.icon--padded.small.fa-users span.admin__button Potential Aliases = if can?(@conn, :index, %Philomena.Donations.Donation{}) do li = link to: ~p"/admin/donations/user/#{@user}" do i.fas.icon--padded.small.fa-dollar-sign span.admin__button Donations ul.profile-admin__options__column = if can?(@conn, :edit, @user) do li = link to: ~p"/admin/users/#{@user}/edit" do i.fas.icon--padded.small.fa-edit span.admin__button Edit User li = link to: ~p"/admin/users/#{@user}/force_filter/new" do i.fas.faw-fw.fa-filter span.admin__button Force Filter = if @forced do li = link to: ~p"/profiles/#{@user}/details" do i.fa.icon--padded.small.fa-eye span.admin__button View Details li = link to: ~p"/search?#{[q: "upvoted_by_id:#{@user.id}"]}" do i.fa.icon--padded.small.fa-arrow-up span.admin__button Upvotes li = link to: ~p"/search?#{[q: "downvoted_by_id:#{@user.id}"]}" do i.fa.icon--padded.small.fa-arrow-down span.admin__button Downvotes li = link to: ~p"/admin/users/#{@user}/unlock", data: [method: "post"] do i.fas.icon--padded.small.fa-unlock span.admin__button Unlock Account li = link to: ~p"/admin/users/#{@user}/wipe", data: [confirm: "This is irreversible, destroying all identifying information including email. Are you sure?", method: "post"] do i.fas.icon--padded.small.fa-eraser span.admin__button Wipe PII = if can?(@conn, :edit, %Philomena.ArtistLinks.ArtistLink{}) do li = link to: ~p"/profiles/#{@user}/artist_links/new" do i.fa.icon--padded.small.fa-link span.admin__button Add Artist Link = if can?(@conn, :create, Philomena.Bans.User) do li = link to: ~p"/admin/user_bans/new?#{[user_id: @user.id]}" do i.fa.fa-fw.fa-ban span.admin__button Ban this sucker ul.profile-admin__options__column = if can?(@conn, :index, Philomena.Users.User) do li = link to: ~p"/admin/users/#{@user}/api_key", data: [confirm: "Are you really, really sure?", method: "delete"] do i.fas.icon--padded.small.fa-key span.admin__button Reset API key li = if @user.verified do = link to: ~p"/admin/users/#{@user}/verification", data: [confirm: "Are you really, really sure?", method: "delete"] do i.fas.icon--padded.small.fa-user-times span.admin__button Revoke Verification - else = link to: ~p"/admin/users/#{@user}/verification", data: [confirm: "Are you really, really sure?", method: "create"] do i.fas.icon--padded.small.fa-user-check span.admin__button Grant Verification ul.profile-admin__options__column = if can?(@conn, :index, Philomena.Users.User) do li = link to: ~p"/admin/users/#{@user}/votes", data: [confirm: "Are you really, really sure?", method: "delete"] do i.far.icon--padded.small.fa-file-excel span.admin__button Remove All Votes/Faves li = link to: ~p"/admin/users/#{@user}/downvotes", data: [confirm: "Are you really, really sure?", method: "delete"] do i.fa.icon--padded.small.fa-arrow-down span.admin__button Remove All Downvotes = if @user.role == "user" do li = link to: ~p"/admin/users/#{@user}/erase/new", data: [confirm: "Are you really, really sure?"] do i.fa.fa-fw.fa-warning span.admin__button Erase for spam = if @user.role == "user" and can?(@conn, :revert, Philomena.TagChanges.TagChange) do li = link to: ~p"/tag_changes/full_revert?#{[user_id: @user.id]}", data: [confirm: "Are you really, really sure?", method: "create"] do i.fa.icon--padded.small.fa-tag span.admin__button Revert All Tag Changes