1{% if is_superuser %} 2 <form id="usersForm" action="{{ url('/server/privileges') }}"> 3 {{ get_hidden_inputs(db, table) }} 4 5 <fieldset> 6 <legend> 7 {{ get_icon('b_usrcheck') }} 8 {{ 'Users having access to "%s"'|trans|format('<a href="' ~ table_url ~ get_common({ 9 'db': db, 10 'table': table 11 }, '&') ~ '">' ~ db|escape('html') ~ '.' ~ table|escape('html') ~ '</a>')|raw }} 12 </legend> 13 14 <div class="table-responsive-md jsresponsive"> 15 <table class="table table-light table-striped table-hover w-auto"> 16 <thead class="thead-light"> 17 <tr> 18 <th></th> 19 <th>{% trans 'User name' %}</th> 20 <th>{% trans 'Host name' %}</th> 21 <th>{% trans 'Type' %}</th> 22 <th>{% trans 'Privileges' %}</th> 23 <th>{% trans 'Grant' %}</th> 24 <th colspan="2">{% trans 'Action' %}</th> 25 </tr> 26 </thead> 27 28 <tbody> 29 {% for privilege in privileges %} 30 {% set privileges_amount = privilege.privileges|length %} 31 <tr> 32 <td{% if privileges_amount > 1 %} class="align-middle" rowspan="{{ privileges_amount }}"{% endif %}> 33 <input type="checkbox" class="checkall" name="selected_usr[]" id="checkbox_sel_users_{{ loop.index0 }}" value=" 34 {{- privilege.user ~ '&#27;' ~ privilege.host }}"> 35 </td> 36 <td{% if privileges_amount > 1 %} class="align-middle" rowspan="{{ privileges_amount }}"{% endif %}> 37 {% if privilege.user is empty %} 38 <span class="text-danger">{% trans 'Any' %}</span> 39 {% else %} 40 {{ privilege.user }} 41 {% endif %} 42 </td> 43 <td{% if privileges_amount > 1 %} class="align-middle" rowspan="{{ privileges_amount }}"{% endif %}> 44 {{ privilege.host }} 45 </td> 46 {% for priv in privilege.privileges %} 47 <td> 48 {% if priv.type == 'g' %} 49 {% trans 'global' %} 50 {% elseif priv.type == 'd' %} 51 {% if priv.database == db|replace({'_': '\\_', '%': '\\%'}) %} 52 {% trans 'database-specific' %} 53 {% else %} 54 {% trans 'wildcard' %}: <code>{{ priv.database }}</code> 55 {% endif %} 56 {% elseif priv.type == 't' %} 57 {% trans 'table-specific' %} 58 {% elseif priv.type == 'r' %} 59 {% trans 'routine' %} 60 {% endif %} 61 </td> 62 <td> 63 <code> 64 {% if priv.type == 'r' %} 65 {{ priv.routine }} 66 ({{ priv.privileges|join(', ')|upper }}) 67 {% else %} 68 {{ priv.privileges|join(', ')|raw }} 69 {% endif %} 70 </code> 71 </td> 72 <td> 73 {{ priv.has_grant ? 'Yes'|trans : 'No'|trans }} 74 </td> 75 <td> 76 {% if is_grantuser %} 77 <a class="edit_user_anchor" href="{{ url('/server/privileges', { 78 'username': privilege.user, 79 'hostname': privilege.host, 80 'dbname': priv.database != '*' ? priv.database, 81 'tablename': priv.table is defined and priv.table != '*' ? priv.table, 82 'routinename': priv.routine ?? '' 83 }) }}"> 84 {{ get_icon('b_usredit', 'Edit privileges'|trans) }} 85 </a> 86 {% endif %} 87 </td> 88 <td class="text-center"> 89 <a class="export_user_anchor ajax" href="{{ url('/server/privileges', { 90 'username': privilege.user, 91 'hostname': privilege.host, 92 'export': true, 93 'initial': '' 94 }) }}"> 95 {{ get_icon('b_tblexport', 'Export'|trans) }} 96 </a> 97 </td> 98 </tr> 99 {% if privileges_amount > 1 %} 100 <tr class="noclick"> 101 {% endif %} 102 {% endfor %} 103 {% else %} 104 <tr> 105 <td colspan="7"> 106 {% trans 'No user found.' %} 107 </td> 108 </tr> 109 {% endfor %} 110 </tbody> 111 </table> 112 </div> 113 114 <div class="floatleft"> 115 <img class="selectallarrow" src="{{ theme_image_path }}arrow_{{ text_dir }}.png" alt=" 116 {%- trans 'With selected:' %}" width="38" height="22"> 117 <input type="checkbox" id="usersForm_checkall" class="checkall_box" title="{% trans 'Check all' %}"> 118 <label for="usersForm_checkall">{% trans 'Check all' %}</label> 119 <em class="with-selected">{% trans 'With selected:' %}</em> 120 <button class="btn btn-link mult_submit" type="submit" name="submit_mult" value="export" title="{% trans 'Export' %}"> 121 {{ get_icon('b_tblexport', 'Export'|trans) }} 122 </button> 123 </div> 124 </fieldset> 125 </form> 126{% else %} 127 {{ 'Not enough privilege to view users.'|trans|error }} 128{% endif %} 129 130{% if is_createuser %} 131 <div class="row"> 132 <div class="col-12"> 133 <fieldset id="fieldset_add_user"> 134 <legend>{% trans %}New{% context %}Create new user{% endtrans %}</legend> 135 <a id="add_user_anchor" href="{{ url('/server/privileges', { 136 'adduser': true, 137 'dbname': db, 138 'tablename': table 139 }) }}" rel="{{ get_common({'checkprivsdb': db, 'checkprivstable': table}) }}"> 140 {{ get_icon('b_usradd', 'Add user account'|trans) }} 141 </a> 142 </fieldset> 143 </div> 144 </div> 145{% endif %} 146