Urejen pregled in dodajanje dodeljenih uporabnikov za admine (po novem lahko dodajajo in brisejo dodeljene uporabnike drugim uporabnikom)
This commit is contained in:
parent
fa9dbb0880
commit
6ee43bd9d1
@ -8353,6 +8353,7 @@ class SurveyAdminSettings {
|
||||
echo '<th>' . $lang['srv_survey_list_users_aai'] . '</th>';
|
||||
echo '<th>' . $lang['srv_survey_list_users_survey_count'] . '</th>';
|
||||
echo '<th>' . $lang['srv_survey_list_users_survey_archive_count'] . '</th>';
|
||||
echo '<th>' . $lang['srv_manager_count'] . '</th>';
|
||||
echo '<th>' . $lang['users_gdpr_title'] . '</th>';
|
||||
echo '<th>' . $lang['srv_survey_list_users_registred'] . '</th>';
|
||||
echo '<th>' . $lang['srv_survey_list_users_last_login'] . '</th>';
|
||||
|
@ -193,61 +193,69 @@ class Dostop {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
function ajax()
|
||||
{
|
||||
function ajax(){
|
||||
|
||||
if ($_GET['a'] == 'manager_add_user') {
|
||||
$this->ajax_manager_add_user();
|
||||
|
||||
} elseif($_GET['a'] == 'add_new_user'){
|
||||
}
|
||||
elseif($_GET['a'] == 'add_new_user'){
|
||||
$this->ajax_add_new_user();
|
||||
|
||||
} elseif ($_GET['a'] == 'anketa_user_dostop') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'anketa_user_dostop') {
|
||||
$this->ajax_anketa_user_dostop();
|
||||
|
||||
} elseif ($_GET['a'] == 'anketa_user_dostop_save') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'anketa_user_dostop_save') {
|
||||
$this->ajax_anketa_user_dostop_save();
|
||||
|
||||
} elseif ($_GET['a'] == 'edit_user') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'edit_user') {
|
||||
$this->ajax_edit_user();
|
||||
|
||||
} elseif ($_GET['a'] == 'edit_user_save') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'edit_user_save') {
|
||||
$this->ajax_edit_user_save();
|
||||
|
||||
} elseif ($_GET['a'] == 'admin_add_user') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'admin_add_user') {
|
||||
$this->ajax_admin_add_user();
|
||||
|
||||
} elseif($_GET['a'] == 'find_user'){
|
||||
}
|
||||
elseif ($_GET['a'] == 'admin_add_user_popup') {
|
||||
$this->ajax_admin_add_user_popup();
|
||||
}
|
||||
elseif($_GET['a'] == 'find_user'){
|
||||
$this->ajax_find_user();
|
||||
|
||||
} elseif ($_GET['a'] == 'edit_remove_user') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'edit_remove_user') {
|
||||
$this->ajax_edit_remove_user();
|
||||
|
||||
} elseif ($_GET['a'] == 'edit_remove_user_manager') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'edit_remove_user_manager') {
|
||||
$this->ajax_edit_remove_user_manager();
|
||||
|
||||
} elseif ($_GET['a'] == 'all_users_list') {
|
||||
if ($_GET['m'] == 'delete') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'edit_remove_user_admin') {
|
||||
$this->ajax_edit_remove_user_admin();
|
||||
}
|
||||
elseif ($_GET['a'] == 'all_users_list') {
|
||||
|
||||
if ($_GET['m'] == 'delete') {
|
||||
$this->ajax_all_users_list_delete();
|
||||
}
|
||||
|
||||
if ($_GET['m'] == 'ban') {
|
||||
$this->ajax_all_users_list_ban();
|
||||
}
|
||||
else {
|
||||
$this->ajax_all_users_list();
|
||||
}
|
||||
|
||||
} elseif($_GET['a'] == 'my_users_list'){
|
||||
}
|
||||
elseif($_GET['a'] == 'my_users_list'){
|
||||
$this->ajax_all_users_list_my();
|
||||
|
||||
} elseif ($_GET['a'] == 'delete_users_list') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'delete_users_list') {
|
||||
$this->ajax_delete_users_list();
|
||||
|
||||
} elseif ($_GET['a'] == 'unsigned_users_list') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'unsigned_users_list') {
|
||||
$this->ajax_unsigned_users_list();
|
||||
|
||||
} elseif ($_GET['a'] == 'unconfirmed_mail_user_list') {
|
||||
if ($_GET['m'] == 'delete') {
|
||||
}
|
||||
elseif ($_GET['a'] == 'unconfirmed_mail_user_list') {
|
||||
|
||||
if ($_GET['m'] == 'delete') {
|
||||
$this->ajax_unconfirmed_mail_user_list_delet_user();
|
||||
}
|
||||
elseif ($_GET['m'] == 'accept') {
|
||||
@ -257,6 +265,9 @@ class Dostop {
|
||||
$this->ajax_unconfirmed_mail_user_list();
|
||||
}
|
||||
}
|
||||
elseif ($_GET['a'] == 'dodeljeni_uporabniki_display') {
|
||||
$this->ajax_dodeljeni_uporabniki_display();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -978,6 +989,30 @@ class Dostop {
|
||||
header("Location: index.php?a=diagnostics&t=uporabniki".($error !== FALSE ? '&error='.$error : ''));
|
||||
}
|
||||
|
||||
/**
|
||||
* Admin: dodajanje obstojecih uporabnikov drugemu uporabniku v popupu
|
||||
*
|
||||
*/
|
||||
function ajax_admin_add_user_popup(){
|
||||
global $lang;
|
||||
global $admin_type;
|
||||
|
||||
if ($admin_type != 0)
|
||||
return;
|
||||
|
||||
$manager = (isset($_POST['manager'])) ? $_POST['manager'] : '0';
|
||||
$user = (isset($_POST['user'])) ? $_POST['user'] : '0';
|
||||
|
||||
if($manager == '' || $manager == '0' || $user == '' || $user == '0')
|
||||
return;
|
||||
|
||||
$sql = sisplet_query("INSERT INTO srv_dostop_manage (manager, user) VALUES ('".$manager."', '".$user."')");
|
||||
if (!$sql)
|
||||
echo mysqli_error($GLOBALS['connect_db']);
|
||||
|
||||
$this->ajax_dodeljeni_uporabniki_display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Poiščemo uporabnika, ki je v bazi
|
||||
*/
|
||||
@ -1026,8 +1061,7 @@ class Dostop {
|
||||
* odstrani uporabnika iz nadzora
|
||||
*
|
||||
*/
|
||||
function ajax_edit_remove_user()
|
||||
{
|
||||
function ajax_edit_remove_user(){
|
||||
global $global_user_id;
|
||||
global $site_url;
|
||||
|
||||
@ -1042,8 +1076,7 @@ class Dostop {
|
||||
* odstrani uporabnika iz managerjevega nadzora
|
||||
*
|
||||
*/
|
||||
function ajax_edit_remove_user_manager()
|
||||
{
|
||||
function ajax_edit_remove_user_manager(){
|
||||
global $global_user_id;
|
||||
global $site_url;
|
||||
|
||||
@ -1054,6 +1087,27 @@ class Dostop {
|
||||
header("Location: " . $site_url . "admin/survey/index.php?a=diagnostics&t=uporabniki");
|
||||
}
|
||||
|
||||
/**
|
||||
* admin odstrani uporabnika iz nadzora drugemu uporabniku (managerju ali adminu)
|
||||
*
|
||||
*/
|
||||
function ajax_edit_remove_user_admin(){
|
||||
global $admin_type;
|
||||
|
||||
if($admin_type != '0')
|
||||
return;
|
||||
|
||||
$manager = (isset($_POST['manager'])) ? $_POST['manager'] : '0';
|
||||
$user = (isset($_POST['user'])) ? $_POST['user'] : '0';
|
||||
|
||||
if($manager == '' || $manager == '0' || $user == '' || $user == '0')
|
||||
return;
|
||||
|
||||
$sql = sisplet_query("DELETE FROM srv_dostop_manage WHERE user='$user' AND manager='$manager'");
|
||||
|
||||
$this->ajax_dodeljeni_uporabniki_display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Seznam vseh uporabnikov znotrja 1ke
|
||||
*/
|
||||
@ -1072,10 +1126,11 @@ class Dostop {
|
||||
}
|
||||
|
||||
// Pridobimo vse uporabnike
|
||||
$sql = "SELECT u.id as id, u.type as type, u.status, u.email as email, u.name as name, u.surname as surname, u.lang as lang, u.eduroam as aai, date_format(u.when_reg, '%d.%m.%Y') as registriran, u.gdpr_agree as gdpr_agree, d1.dostop_survey_count as st_anket, d2.dostop_survey_archive as st_arhivskih, date_format(u.last_login, '%d.%m.%Y') as last_login, ue.email as second_email FROM users AS u ".
|
||||
" LEFT OUTER JOIN ( SELECT srv_dostop.ank_id, srv_dostop.uid, count(*) AS dostop_survey_count FROM srv_dostop, srv_anketa WHERE srv_anketa.id=srv_dostop.ank_id AND srv_anketa.backup='0' GROUP BY srv_dostop.uid ) AS d1 ON d1.uid = u.id ".
|
||||
" LEFT OUTER JOIN ( SELECT srv_dostop.ank_id, srv_dostop.uid, count(*) AS dostop_survey_archive FROM srv_dostop, srv_anketa WHERE srv_anketa.id=srv_dostop.ank_id AND srv_anketa.backup>'0' GROUP BY srv_dostop.uid ) AS d2 ON d2.uid = u.id ".
|
||||
" LEFT OUTER JOIN (SELECT user_emails.email, user_emails.user_id FROM user_emails WHERE active=1) AS ue ON ue.user_id = u.id".
|
||||
$sql = "SELECT u.id as id, u.type as type, u.status, u.email as email, u.name as name, u.surname as surname, u.lang as lang, u.eduroam as aai, date_format(u.when_reg, '%d.%m.%Y') as registriran, u.gdpr_agree as gdpr_agree, dm.st_dodeljenih_uporabnikov as st_dodeljenih_uporabnikov, d1.dostop_survey_count as st_anket, d2.dostop_survey_archive as st_arhivskih, date_format(u.last_login, '%d.%m.%Y') as last_login, ue.email as second_email FROM users AS u ".
|
||||
" LEFT OUTER JOIN (SELECT srv_dostop.ank_id, srv_dostop.uid, count(*) AS dostop_survey_count FROM srv_dostop, srv_anketa WHERE srv_anketa.id=srv_dostop.ank_id AND srv_anketa.backup='0' GROUP BY srv_dostop.uid ) AS d1 ON d1.uid = u.id ".
|
||||
" LEFT OUTER JOIN (SELECT srv_dostop.ank_id, srv_dostop.uid, count(*) AS dostop_survey_archive FROM srv_dostop, srv_anketa WHERE srv_anketa.id=srv_dostop.ank_id AND srv_anketa.backup>'0' GROUP BY srv_dostop.uid ) AS d2 ON d2.uid = u.id ".
|
||||
" LEFT OUTER JOIN (SELECT srv_dostop_manage.manager, count(*) AS st_dodeljenih_uporabnikov FROM srv_dostop_manage GROUP BY srv_dostop_manage.manager) AS dm ON dm.manager = u.id ".
|
||||
" LEFT OUTER JOIN (SELECT user_emails.email, user_emails.user_id FROM user_emails WHERE active=1) AS ue ON ue.user_id = u.id".
|
||||
" WHERE u.email NOT LIKE ('D3LMD-%') AND u.email NOT LIKE ('UNSU8MD-%') ".$iskanjeSql;
|
||||
|
||||
// Filtri, ki jih datatables pošilja in po katerih filtriramo
|
||||
@ -1088,12 +1143,13 @@ class Dostop {
|
||||
"u.eduroam", //AAI
|
||||
"d1.dostop_survey_count", //st_anket
|
||||
"d2.dostop_survey_archive", //st_arhivskih
|
||||
"dm.st_dodeljenih_uporabnikov", //st_dodeljenih_uporabnikov
|
||||
"u.gdpr_agree",
|
||||
"u.when_reg",
|
||||
"u.last_login"
|
||||
];
|
||||
|
||||
if($_POST['order'][0]['column'] == 7){
|
||||
if($_POST['order'][0]['column'] == 8){
|
||||
|
||||
$vrednost='u.gdpr_agree desc';
|
||||
if($_POST['order'][0]['dir'] == 'asc'){
|
||||
@ -1133,6 +1189,7 @@ class Dostop {
|
||||
(!empty($uporabnik->aai) ? $this->vrniDaNe($uporabnik->aai) : $lang['no1']),
|
||||
(!empty($uporabnik->st_anket) ? $uporabnik->st_anket : 0),
|
||||
(!empty($uporabnik->st_arhivskih) ? $uporabnik->st_arhivskih : 0),
|
||||
'<a href="#" onclick="dodeljeni_uporabniki_display(\''.$uporabnik->id.'\'); return false;" title="'.$lang['srv_manager_manager'].'">'.(!empty($uporabnik->st_dodeljenih_uporabnikov) ? $uporabnik->st_dodeljenih_uporabnikov : 0).'</a>',
|
||||
$lang["users_gdpr".$uporabnik->gdpr_agree],
|
||||
$uporabnik->registriran,
|
||||
$uporabnik->last_login,
|
||||
@ -1549,6 +1606,75 @@ class Dostop {
|
||||
]);
|
||||
}
|
||||
|
||||
private function ajax_dodeljeni_uporabniki_display(){
|
||||
global $lang;
|
||||
|
||||
$manager = (isset($_POST['manager'])) ? $_POST['manager'] : '0';
|
||||
|
||||
if($manager == '' || $manager == '0'){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
echo '<div class="popup_close"><a href="#" onClick="dodeljeni_uporabniki_close(); return false;">✕</a></div>';
|
||||
|
||||
echo '<h2>'.$lang['srv_manager_count'].'</h2>';
|
||||
|
||||
|
||||
echo '<div class="popup_content dodeljeni_uporabniki">';
|
||||
|
||||
// Seznam dodeljenih uporabnikov
|
||||
$sqlUsers = sisplet_query("SELECT u.id, u.name, u.surname, u.email
|
||||
FROM users u, srv_dostop_manage m
|
||||
WHERE u.id=m.user AND m.manager='".$manager."'
|
||||
");
|
||||
if(mysqli_num_rows($sqlUsers) > 0){
|
||||
|
||||
echo '<ul>';
|
||||
|
||||
while($rowUsers = mysqli_fetch_array($sqlUsers)){
|
||||
echo '<li>';
|
||||
echo ' <span>'.$rowUsers['name'].' '.$rowUsers['surname'].' ('.$rowUsers['email'].')</span>';
|
||||
echo ' <span><a onClick="dodeljeni_uporabniki_remove(\''.$manager.'\', \''.$rowUsers['id'].'\');">'.$lang['hour_remove'].'</a></span>';
|
||||
echo '</li>';
|
||||
}
|
||||
|
||||
echo '</ul>';
|
||||
}
|
||||
|
||||
// Dodajanje novega uporabnika
|
||||
echo '<h4>'.$lang['srv_manager_add_admin'].'</h4>';
|
||||
echo '<div class="add_user">';
|
||||
|
||||
echo '<form class="manager_add_user" name="admin_add_dostop" action="ajax.php?t=dostop&a=admin_add_user" method="post">';
|
||||
|
||||
echo '<h3><b>'.$lang['srv_manager_add_user2'].'</b></h3>';
|
||||
echo '<p><select name="add_user_id" id="add_user_id" class="js-obstojeci-uporabniki-admin-ajax" style="width: 300px;"></select></p>';
|
||||
|
||||
echo '<p><div class="buttonwrapper floatLeft">';
|
||||
echo ' <a class="ovalbutton ovalbutton_orange" href="#" onClick="dodeljeni_uporabniki_add(\''.$manager.'\', \''.$rowUsers['id'].'\');">'.$lang['add'].'</a>';
|
||||
echo '</div></p><br><br>';
|
||||
|
||||
echo '</form>';
|
||||
|
||||
echo '<script>$(\'.js-obstojeci-uporabniki-admin-ajax\').select2({
|
||||
minimumInputLength: 3,
|
||||
ajax: {
|
||||
url: \'ajax.php?t=dostop&a=find_user\',
|
||||
dataType: \'json\'
|
||||
}
|
||||
});</script>';
|
||||
|
||||
echo '</div>';
|
||||
|
||||
echo '</div>';
|
||||
|
||||
|
||||
echo '<div class="buttons_holder">';
|
||||
echo '<span class="buttonwrapper floatRight" title="'.$lang['srv_zapri'].'"><a class="ovalbutton ovalbutton_gray" href="#" onclick="dodeljeni_uporabniki_close(); return false;"><span>'.$lang['srv_zapri'].'</span></a></span>';
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
function isAnketar()
|
||||
{
|
||||
global $admin_type;
|
||||
|
@ -39,6 +39,33 @@ function edit_user_close() {
|
||||
$('#fade').fadeOut('slow');
|
||||
}
|
||||
|
||||
function dodeljeni_uporabniki_display(manager) {
|
||||
|
||||
$('#fade').fadeTo('slow', 1);
|
||||
|
||||
$('#vrednost_edit').addClass('dodeljeni_uporabniki').show().load('ajax.php?t=dostop&a=dodeljeni_uporabniki_display', {manager: manager});
|
||||
}
|
||||
function dodeljeni_uporabniki_close() {
|
||||
|
||||
$('#vrednost_edit').removeClass('dodeljeni_uporabniki').hide().html('');
|
||||
|
||||
$('#fade').fadeOut('slow');
|
||||
|
||||
//location.reload();
|
||||
}
|
||||
function dodeljeni_uporabniki_remove(manager, user) {
|
||||
|
||||
if (confirm(lang['srv_manager_remove_alert'])){
|
||||
$('#vrednost_edit').load('ajax.php?t=dostop&a=edit_remove_user_admin', {manager: manager, user: user});
|
||||
}
|
||||
}
|
||||
function dodeljeni_uporabniki_add(manager, user) {
|
||||
|
||||
var user = $('#add_user_id').val();
|
||||
|
||||
$('#vrednost_edit').load('ajax.php?t=dostop&a=admin_add_user_popup', {manager: manager, user: user});
|
||||
}
|
||||
|
||||
function dostop_language(chk) {
|
||||
|
||||
var edit = $('#edit').is(':checked');
|
||||
@ -226,7 +253,7 @@ $(document).ready(function () {
|
||||
tabelaDataTables = $('#all_users_list').DataTable({
|
||||
lengthMenu: [[50, 500, 1000, 5000, 10000], [50, 500, 1000, 5000, 10000]],
|
||||
select: true,
|
||||
order: [[ 9, "desc" ]],
|
||||
order: [[ 10, "desc" ]],
|
||||
lengthChange: true,
|
||||
serverSide: true,
|
||||
ajax: {
|
||||
|
@ -191,6 +191,7 @@ lang('srv_delete_testdata_warning');
|
||||
lang('srv_alert_upload_size');
|
||||
lang('srv_alert_upload_ext');
|
||||
lang('srv_trans_lang');
|
||||
lang('srv_manager_remove_alert');
|
||||
|
||||
|
||||
//LOKACIJA
|
||||
|
@ -5626,6 +5626,9 @@ $lang = array (
|
||||
"srv_manager_add_user4" => '<span style="color: gray; font-size:80%; font-weight:normal">Uporabnik bo obveščen na e-mail</span>',
|
||||
"srv_manager_rem_user2" => 'Odstranite uporabnika iz svojega pregleda',
|
||||
"srv_manager_manager" => 'Uporabniki, ki imajo managerski pregled nad vašimi anketami',
|
||||
"srv_manager_count" => 'Dodeljeni uporabniki',
|
||||
"srv_manager_remove_alert" => 'Ste prepričani, da želite odstraniti uporabnika iz pregleda?',
|
||||
"srv_manager_add_admin" => 'Dodaj uporabnika v pregled',
|
||||
"create" => 'Ustvari',
|
||||
"create_add" => 'Ustvari in dodaj',
|
||||
"srv_library_left" => 'Standardna vprašanja lahko dodajate v anketo',
|
||||
|
@ -5523,6 +5523,9 @@ $lang = array (
|
||||
"srv_manager_add_user4" => '<span style="color: gray; font-size:80%; font-weight:normal">User will be notified with an e-mail</span>',
|
||||
"srv_manager_rem_user2" => 'Remove user',
|
||||
"srv_manager_manager" => 'Users with managing view of your surveys',
|
||||
"srv_manager_count" => 'Managed users',
|
||||
"srv_manager_remove_alert" => 'Are you sure you would like to remove user from managing?',
|
||||
"srv_manager_add_admin" => 'Add user to managing',
|
||||
"create" => 'Create',
|
||||
"create_add" => 'Create and add',
|
||||
"srv_library_left" => '',
|
||||
|
@ -11409,6 +11409,36 @@ and open the template in the editor.
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.popup_content.dodeljeni_uporabniki ul {
|
||||
overflow: auto;
|
||||
max-height: 60vh;
|
||||
padding: 10px;
|
||||
margin: 0 0 20px 0;
|
||||
list-style-type: none;
|
||||
background-color: #f0f7fd;
|
||||
border: 1px solid #d5e9fa;
|
||||
}
|
||||
.popup_content.dodeljeni_uporabniki ul li {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
line-height: 24px;
|
||||
padding: 0 5px;
|
||||
}
|
||||
.popup_content.dodeljeni_uporabniki ul li:hover {
|
||||
background-color: #d5e9fa;
|
||||
}
|
||||
.popup_content.dodeljeni_uporabniki h4 {
|
||||
margin: 0 0 5px 0;
|
||||
}
|
||||
.popup_content.dodeljeni_uporabniki .add_user {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
margin-bottom: 50px;
|
||||
background-color: #f0f7fd;
|
||||
border: 1px solid #d5e9fa;
|
||||
}
|
||||
|
||||
/*
|
||||
To change this license header, choose License Headers in Project Properties.
|
||||
To change this template file, choose Tools | Templates
|
||||
|
41
resources/sass/admin/popup/dodeljeni_uporabniki.scss
Normal file
41
resources/sass/admin/popup/dodeljeni_uporabniki.scss
Normal file
@ -0,0 +1,41 @@
|
||||
.popup_content.dodeljeni_uporabniki{
|
||||
|
||||
ul{
|
||||
overflow: auto;
|
||||
|
||||
max-height: 60vh;
|
||||
padding: 10px;
|
||||
margin: 0 0 20px 0;
|
||||
|
||||
list-style-type: none;
|
||||
|
||||
background-color: $strong_blue_super_light;
|
||||
border: 1px solid $strong_blue_very_lighten;
|
||||
|
||||
li{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
line-height: 24px;
|
||||
padding: 0 5px;
|
||||
|
||||
&:hover{
|
||||
background-color: $strong_blue_very_lighten;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
h4{
|
||||
margin: 0 0 5px 0;
|
||||
}
|
||||
|
||||
.add_user{
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
margin-bottom: 50px;
|
||||
|
||||
background-color: $strong_blue_super_light;
|
||||
border: 1px solid $strong_blue_very_lighten;
|
||||
}
|
||||
}
|
@ -19,3 +19,4 @@
|
||||
@import "archive";
|
||||
@import "preview_question";
|
||||
@import "consulting";
|
||||
@import "dodeljeni_uporabniki";
|
||||
|
Loading…
x
Reference in New Issue
Block a user