mirror of
https://github.com/OPSnet/Gazelle.git
synced 2026-01-16 18:04:34 -05:00
239 lines
12 KiB
Twig
239 lines
12 KiB
Twig
{% from 'macro/paranoia.twig' import class_override, override %}
|
||
{% set user_id = user.id %}
|
||
{% set viewer_id = viewer.id %}
|
||
{% set own_profile = user_id == viewer_id %}
|
||
<div class="thin">
|
||
<div class="header">
|
||
<h2>{{ user.username }}
|
||
{% if donor.isDonor and (own_profile or donor.isVisible or viewer.permitted('users_override_paranoia')) -%}
|
||
{{ donor.heart(viewer)|raw -}}
|
||
{% endif %}
|
||
{% if user.isWarned -%}
|
||
<a href="wiki.php?action=article&name=warnings"><img src="{{
|
||
constant('STATIC_SERVER') }}/common/symbols/warned.png" alt="Warned" title="Warned
|
||
{%- if own_profile or viewer.permitted('users_mod') %} – Expires {{ user.warningExpiry }}{% endif %}" class="tooltip" /></a>
|
||
{% endif %}
|
||
{% if user.isDisabled -%}
|
||
<a href="rules.php"><img src="{{ constant('STATIC_SERVER') }}/common/symbols/disabled.png" alt="Banished" title="Naughty person" class="tooltip" /></a>
|
||
{% endif %}
|
||
{% for badge, name in user.privilege.badgeList %}
|
||
<span class="tooltip secondary_class" title="{{ name }}">{{ badge }}</span>
|
||
{% endfor %}
|
||
{% if friend.isMutual(user) %}<span title="The feeling is mutual (awww!)">💕</span>
|
||
{% elseif friend.isFriend(user) %}<span title="You like them (aww!)">💖</span>
|
||
{% endif %}
|
||
{% if user.title -%}
|
||
<span class="user_title">{{ user.title|raw }}</span>
|
||
{%- endif -%}
|
||
</h2>
|
||
</div>
|
||
|
||
<div class="linkbox">
|
||
{% if own_profile or viewer.permitted('users_edit_profiles') %}
|
||
<a href="user.php?action=edit&id={{ user_id }}" class="brackets">Settings</a>
|
||
{% endif %}
|
||
{% if not own_profile %}
|
||
<a href="inbox.php?action=compose&toid={{ user_id }}" class="brackets" title="Send a private message">Send PM</a>
|
||
{% if not friend.isFriend(user) %}
|
||
<a href="friends.php?action=add&friendid={{ user_id }}&auth={{ viewer.auth }}" class="brackets">Add to friends</a>
|
||
{% endif %}
|
||
<a href="reports.php?action=report&type=user&id={{ user_id }}" class="brackets">Report user</a>
|
||
{% endif %}
|
||
{% if own_profile or viewer.permitted('users_view_friends') %}
|
||
<a href="friends.php" class="brackets">Friends</a>
|
||
{% endif %}
|
||
{% if own_profile %}
|
||
<a href="userhistory.php?action=reports&userid={{ user_id }}" class="brackets">My Reports</a>
|
||
{% endif %}
|
||
{% if viewer.permitted('admin_reports') %}
|
||
<a href="reportsv2.php?view=reporter&id={{ user_id }}" class="brackets">Reports</a>
|
||
{% endif %}
|
||
{% if viewer.permitted('users_mod') %}
|
||
<a href="userhistory.php?action=token_history&userid={{ user_id }}" class="brackets">FL tokens</a>
|
||
{% endif %}
|
||
{% if viewer.permitted('users_mod') or (own_profile and viewer.permitted('site_user_stats')) %}
|
||
<a href="user.php?action=stats&userid={{ user_id }}" class="brackets">Stats</a>
|
||
{% endif %}
|
||
{% if user.hasAttr('feature-seedbox') and (own_profile or viewer.permitted('users_view_ips')) %}
|
||
<a href="user.php?action=seedbox{% if viewer.permitted('users_view_ips') %}&userid={{ user_id }}{% endif %}" class="brackets">Seedboxes</a>
|
||
{% endif %}
|
||
{% if own_profile or viewer.permittedAny('users_logout', 'users_view_ips') %}
|
||
<a href="user.php?id={{ user_id }}&action=sessions" class="brackets">Sessions</a>
|
||
{% if viewer.permittedAny('users_logout', 'users_view_ips') %}
|
||
<a href="tools.php?action=user_info&userid={{ user_id }}" class="brackets">Email/IP info</a>
|
||
{% endif %}
|
||
{% endif %}
|
||
{% if viewer.permitted('users_mod') %}
|
||
<a href="user.php?action=audit&id={{ user_id }}" class="brackets">Audit</a>
|
||
{% endif %}
|
||
{% if viewer.permitted('admin_clear_cache') and viewer.permitted('users_override_paranoia') %}
|
||
<a href="user.php?action=clearcache&id={{ user_id }}" class="brackets">Clear cache</a>
|
||
{% endif %}
|
||
{% if viewer.permitted('admin_manage_permissions') %}
|
||
<a href="user.php?action=permissions&userid={{ user_id }}" class="brackets">Custom Privileges</a>
|
||
{% endif %}
|
||
</div>
|
||
|
||
<div class="sidebar">
|
||
|
||
{% if viewer.showAvatars %}
|
||
<div class="box box_image box_image_avatar">
|
||
<div class="head colhead_dark">Avatar</div>
|
||
<div align="center">{{ user|avatar(viewer)|raw }}</div>
|
||
</div>
|
||
{% endif %}
|
||
|
||
{% if user.isEnabled and (not user.hasAttr('no-fl-gifts')) and freeleech.offer %}
|
||
<div class="box box_info box_userinfo_give_FL">
|
||
<div class="head colhead_dark">Give Freeleech Tokens</div>
|
||
<form class="fl_form" name="user" id="fl_form" action="user.php?id={{ user_id }}" method="post">
|
||
<ul class="stats nobullet">
|
||
{% for item in freeleech.offer %}
|
||
<li>
|
||
<label class="tooltip" title="This costs {{ item.price|number_format
|
||
}} BP, which will leave you with {{
|
||
(viewer.bonusPointsTotal - item.price)|number_format }} afterwards">
|
||
<input type="radio" name="fltype" value="{{ item.label }}" />
|
||
{{ item.title }}
|
||
</label>
|
||
</li>
|
||
{% endfor %}
|
||
<li><input type="text" id="message" name="message" placeholder="Message"/> <br /></li>
|
||
<li><input type="submit" name="flsubmit" value="Send" /></li>
|
||
{% if freeleech.latest %}
|
||
{% set when = freeleech.latest.purchase_date|time_diff %}
|
||
<li>You gave them {{ freeleech.latest.title|trim(' to Other') }} {{
|
||
when|raw }}{% if 'Just now' in when %}. Your generosity is most appreciated!{% endif -%}
|
||
</li>
|
||
{% endif %}
|
||
{% set exchange = bonus.tokenExchange %}
|
||
{% if exchange.received > exchange.sent %}
|
||
{% set net = exchange.received - exchange.sent %}
|
||
<li title="{{ exchange.received|number_format}} received, {{
|
||
exchange.sent|number_format }} given">Total benefits: {{
|
||
net | number_format }} token{{ net|plural }}</li>
|
||
{% endif %}
|
||
</ul>
|
||
<input type="hidden" name="action" value="fltoken" />
|
||
<input type="hidden" name="auth" value="{{ viewer.auth }}" />
|
||
</form>
|
||
</div>
|
||
{% endif %}
|
||
|
||
{% if viewer.isStaff %}
|
||
<div class="hidden info-paster">
|
||
Last seen: {{ user.lastAccessRealtime }}
|
||
Up: {{ user.uploadedSize|octet_size(3) }}
|
||
Down: {{ user.downloadedSize|octet_size(3) }}
|
||
Ratio: {{ ratio(user.uploadedSize, user.downloadedSize) }} (required {{ user.requiredRatio|number_format(2) }})
|
||
Torrent clients:
|
||
{% for u in user.stats.historyUseragentTracker %}
|
||
{{ u.useragent }} ({{ u.total }})
|
||
{% else %}
|
||
None
|
||
{% endfor %}
|
||
</div>
|
||
|
||
{% endif %}
|
||
<div class="box box_info box_userinfo_stats">
|
||
<div class="head colhead_dark">Statistics</div>
|
||
<ul class="stats nobullet">
|
||
<li>Joined: {{ user.created|time_diff }}
|
||
{%- if (own_profile or viewer.permitted('users_mod')) and user.MFA.enabled -%}
|
||
<span class="tooltip" style="color: #008000" title="MFA enabled!"> ✔</span>
|
||
{%- endif -%}
|
||
</li>
|
||
{% set visible = user.propertyVisible(preview_user, 'lastseen') %}
|
||
{% if visible == constant('PARANOIA_HIDE') and not user.isStaff and viewer.permitted('view_last_seen') %}
|
||
{% set visible = constant('PARANOIA_OVERRIDE') %}
|
||
{% endif %}
|
||
{% if visible %}
|
||
<li{{ class_override(visible) }}>Last seen: {% if viewer.id == user.id or viewer.isStaff -%}
|
||
{{- user.lastAccessRealtime|time_diff -}}
|
||
{% else %}
|
||
{{- user.lastAccess|time_diff -}}
|
||
{% endif %}
|
||
</li>
|
||
{% endif %}
|
||
|
||
{%- set visible = user.propertyVisible(preview_user, 'uploaded') %}
|
||
{% if visible %}
|
||
<li class="tooltip{{ override(visible) }}" title="{{ user.uploadedSize|octet_size(5) }}">Uploaded: {{ user.uploadedSize|octet_size }}</li>
|
||
{% endif %}
|
||
|
||
{%- set visible = user.propertyVisible(preview_user, 'downloaded') %}
|
||
{% if visible %}
|
||
<li class="tooltip{{ override(visible) }}" title="{{ user.downloadedSize|octet_size(5) }}">Downloaded: {{ user.downloadedSize|octet_size }}</li>
|
||
{% endif %}
|
||
|
||
{%- set visible = min(user.propertyVisible(preview_user, 'downloaded'), user.propertyVisible(preview_user, 'uploaded')) %}
|
||
{% if visible %}
|
||
{% set buffer = user.buffer[1] %}
|
||
<li class="tooltip{{ override(visible) }}" title="{{ buffer|octet_size(5) }}">Buffer: {{ buffer|octet_size }}</li>
|
||
{% endif %}
|
||
|
||
{%- set visible = user.propertyVisible(preview_user, 'ratio') %}
|
||
{% if visible %}
|
||
<li{{ class_override(visible) }}>Ratio: {{ ratio(user.uploadedSize, user.downloadedSize) }} </li>
|
||
{% endif %}
|
||
|
||
{%- if own_profile or viewer.permitted('users_mod') %}
|
||
{% set recovered = user.recoveryFinalSize %}
|
||
{% if recovered %}
|
||
<li class="tooltip" title="Recovered from previous site: {{ recovered|octet_size(5) }}">Recovered: {{ recovered|octet_size }}</li>
|
||
{% elseif viewer.permitted('users_mod') %}
|
||
<li class="tooltip paranoia_override">Recovered: no record</li>
|
||
{% endif %}
|
||
{% endif %}
|
||
|
||
{%- set visible = user.propertyVisible(preview_user, 'requiredratio') %}
|
||
{% if visible %}
|
||
{% set required = user.buffer[0] %}
|
||
<li{{ class_override(visible) }}>Required Ratio: <span class="tooltip" title="{{ user.requiredRatio|number_format(5) }}">{{ user.requiredRatio|number_format(2) }}</span></li>
|
||
<li{{ class_override(visible) }}>Required Class Ratio: <span class="tooltip" title="{{ required|number_format(5) }}">{{ required|number_format(2) }}</span></li>
|
||
{% endif %}
|
||
|
||
{%- set visible = user.propertyVisible(preview_user, 'requiredratio') %}
|
||
{% if visible %}
|
||
{% set size = user.seedingSize %}
|
||
<li class="tooltip{{ override(visible) }}" title="{{ size|number_format }}">Seeding Size: {{ size|octet_size }}</li>
|
||
{% endif %}
|
||
|
||
{%- set visible = user.propertyVisible(preview_user, 'bonuspoints') %}
|
||
{% if visible %}
|
||
{% if viewer.permitted('admin_bp_history') %}
|
||
<li{{ class_override(visible) }}>Bonus Points: {{ user.bonusPointsTotal|number_format }}
|
||
<a href="bonus.php?action=history&userid={{ user_id }}" class="brackets">History</a></li>
|
||
{% if constant('BONUS_UPLOAD_BOOST_ACTIVE') %}
|
||
{% set boost = user.ordinal.value('bonus-upload-boost') %}
|
||
{% set total = 0 %}
|
||
{% if boost %}
|
||
{% for n in range(1, boost) %}
|
||
{% set total = total + constant('BONUS_UPLOAD_BOOST')[n - 1] %}
|
||
{% endfor %}
|
||
{% endif %}
|
||
<li>Upload boosts: {{ boost }}{% if total %} ({{ total|number_format }} points){% endif %}</li>
|
||
{% endif %}
|
||
<li{{ class_override(visible) }}><a href="bonus.php?action=bprates&userid={{ user_id }}">Points Per Hour</a>: {{ bonus.hourlyRate|number_format(2) }}
|
||
{% elseif own_profile %}
|
||
<li{{ class_override(visible) }}>Bonus Points: {{ user.bonusPointsTotal|number_format }}
|
||
<a href="bonus.php?action=history" class="brackets">History</a></li>
|
||
<li{{ class_override(visible) }}><a href="bonus.php?action=bprates">Points Per Hour</a>: {{ bonus.hourlyRate|number_format(2) }}
|
||
{% else %}
|
||
<li{{ class_override(visible) }}>Bonus Points: {{ user.bonusPointsTotal|number_format }}</li>
|
||
<li{{ class_override(visible) }}>Points Per Hour: {{ bonus.hourlyRate|number_format(2) }}
|
||
{% endif %}
|
||
{% endif %}
|
||
|
||
{%- if own_profile or viewer.permitted('users_mod') %}
|
||
<li{{ class_override(viewer.permitted('users_mod') ? constant('PARANOIA_OVERRIDDEN') : constant('PARANOIA_ALLOWED'))
|
||
}}><a href="userhistory.php?action=token_history&userid={{ user_id }}">Tokens</a>: {{ user.tokenCount|number_format }}</li>
|
||
{% endif %}
|
||
|
||
{%- if user.isWarned and (own_profile or viewer.permitted('users_mod')) %}
|
||
<li{{ class_override(viewer.permitted('users_mod') ? constant('PARANOIA_OVERRIDDEN') : constant('PARANOIA_ALLOWED'))
|
||
}}>Warning expires in: {{ user.warningExpiry|time_diff }}</li>
|
||
{% endif %}
|
||
</ul>
|
||
</div>
|