mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-05 09:08:09 +01:00
Merge branch '3.4' of https://github.com/Dolibarr/dolibarr.git into 3.4
This commit is contained in:
@@ -242,12 +242,12 @@ class Contact extends CommonObject
|
||||
$sql .= ", poste='".$this->db->escape($this->poste)."'";
|
||||
$sql .= ", fax='".$this->db->escape($this->fax)."'";
|
||||
$sql .= ", email='".$this->db->escape($this->email)."'";
|
||||
$sql .= ", note_private='".$this->db->escape($this->note_private)."'";
|
||||
$sql .= ", note_public='".$this->db->escape($this->note_public)."'";
|
||||
$sql .= ", phone = '".$this->db->escape($this->phone_pro)."'";
|
||||
$sql .= ", phone_perso = '".$this->db->escape($this->phone_perso)."'";
|
||||
$sql .= ", phone_mobile = '".$this->db->escape($this->phone_mobile)."'";
|
||||
$sql .= ", jabberid = '".$this->db->escape($this->jabberid)."'";
|
||||
$sql .= ", note_private = ".(isset($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null");
|
||||
$sql .= ", note_public = ".(isset($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null");
|
||||
$sql .= ", phone = ".(isset($this->phone_pro)?"'".$this->db->escape($this->phone_pro)."'":"null");
|
||||
$sql .= ", phone_perso = ".(isset($this->phone_perso)?"'".$this->db->escape($this->phone_perso)."'":"null");
|
||||
$sql .= ", phone_mobile = ".(isset($this->phone_mobile)?"'".$this->db->escape($this->phone_mobile)."'":"null");
|
||||
$sql .= ", jabberid = ".(isset($this->jabberid)?"'".$this->db->escape($this->jabberid)."'":"null");
|
||||
$sql .= ", priv = '".$this->priv."'";
|
||||
$sql .= ", fk_user_modif=".($user->id > 0 ? "'".$user->id."'":"NULL");
|
||||
$sql .= ", default_lang=".($this->default_lang?"'".$this->default_lang."'":"NULL");
|
||||
|
||||
@@ -919,7 +919,9 @@ abstract class DolibarrModules
|
||||
dol_syslog(get_class($this)."::insert_permissions Add permission to user id=".$obj2->rowid);
|
||||
$tmpuser=new User($this->db);
|
||||
$tmpuser->fetch($obj2->rowid);
|
||||
$tmpuser->addrights($r_id);
|
||||
if (!empty($tmpuser->id)) {
|
||||
$tmpuser->addrights($r_id);
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
if (! empty($user->admin)) // Reload permission for current user if defined
|
||||
|
||||
@@ -176,7 +176,9 @@ class Fichinter extends CommonObject
|
||||
// Appel des triggers
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('FICHINTER_CREATE',$this,$user,$langs,$conf);
|
||||
$tmpuser=new User($this->db);
|
||||
$tmpuser->fetch($this->author);
|
||||
$result=$interface->run_triggers('FICHINTER_CREATE',$this,$tmpuser,$langs,$conf);
|
||||
if ($result < 0) {
|
||||
$error++; $this->errors=$interface->errors;
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@ print '</tr>'."\n";
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>'."\n";
|
||||
print '<td style="padding:5px;">'.$langs->trans('DelayForSubmitCP').'</td>'."\n";
|
||||
print '<td style="padding:5px;"><input class="flat" type="text" name="delayForRequest" value="'.$cp->getConfCP('delayForRequest').'" size="2" /> '.$langs->trans('Jours').'</td>'."\n";
|
||||
print '<td style="padding:5px;"><input class="flat" type="text" name="delayForRequest" value="'.$cp->getConfCP('delayForRequest').'" size="2" /> '.$langs->trans('DurationDays').'</td>'."\n";
|
||||
print '</tr>'."\n";
|
||||
|
||||
$var=!$var;
|
||||
@@ -304,13 +304,13 @@ print '</tr>'."\n";
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>'."\n";
|
||||
print '<td style="padding:5px;">'.$langs->trans('nbHolidayEveryMonthCP').'</td>'."\n";
|
||||
print '<td style="padding:5px;"><input class="flat" type="text" name="nbHolidayEveryMonth" value="'.$cp->getConfCP('nbHolidayEveryMonth').'" size="5"/> '.$langs->trans('Jours').'</td>'."\n";
|
||||
print '<td style="padding:5px;"><input class="flat" type="text" name="nbHolidayEveryMonth" value="'.$cp->getConfCP('nbHolidayEveryMonth').'" size="5"/> '.$langs->trans('DurationDays').'</td>'."\n";
|
||||
print '</tr>'."\n";
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>'."\n";
|
||||
print '<td style="padding:5px;">'.$langs->trans('nbHolidayDeductedCP').'</td>'."\n";
|
||||
print '<td style="padding:5px;"><input class="flat" type="text" name="nbHolidayDeducted" value="'.$cp->getConfCP('nbHolidayDeducted').'" size="2"/> '.$langs->trans('Jours').'</td>'."\n";
|
||||
print '<td style="padding:5px;"><input class="flat" type="text" name="nbHolidayDeducted" value="'.$cp->getConfCP('nbHolidayDeducted').'" size="2"/> '.$langs->trans('DurationDays').'</td>'."\n";
|
||||
print '</tr>'."\n";
|
||||
|
||||
print '</tbody>'."\n";
|
||||
@@ -367,7 +367,7 @@ if($cp_events == 1) {
|
||||
|
||||
print '<tr '.$bc[$var].'>'."\n";
|
||||
print '<td><input class="flat" type="text" size="40" name="optName['.$infos_event['rowid'].']" value="'.$infos_event['name'].'" /></td>'."\n";
|
||||
print '<td><input class="flat" type="text" size="2" name="optValue['.$infos_event['rowid'].']" value="'.$infos_event['value'].'" /> '.$langs->trans('Jours').'</td>'."\n";
|
||||
print '<td><input class="flat" type="text" size="2" name="optValue['.$infos_event['rowid'].']" value="'.$infos_event['value'].'" /> '.$langs->trans('DurationDays').'</td>'."\n";
|
||||
print '<td><input type="submit" class="button" name="update_event['.$infos_event['rowid'].']" value="'.dol_escape_htmltag($langs->trans("Save")).'"/></td>'."\n";
|
||||
print '<td width="20px" align="right"><input type="image" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/delete.png" name="delete_event['.$infos_event['rowid'].']" style="border:0;"/></td>'."\n";
|
||||
print '</tr>';
|
||||
@@ -400,7 +400,7 @@ print '</tr>';
|
||||
|
||||
print '<tr class="pair">';
|
||||
print '<td><input class="flat" type="text" size="40" name="optName" value="'.(is_array($optName)?'':$optName).'" /></td>'."\n";
|
||||
print '<td><input class="flat" type="text" size="2" name="optValue" value="'.(is_array($optValue)?'':$optValue).'" /> '.$langs->trans('Jours').'</td>'."\n";
|
||||
print '<td><input class="flat" type="text" size="2" name="optValue" value="'.(is_array($optValue)?'':$optValue).'" /> '.$langs->trans('DurationDays').'</td>'."\n";
|
||||
print '<td><input type="submit" class="button" name="button" value="'.$langs->trans('CreateEventCP').'" /></td>'."\n";
|
||||
print '</tr>'."\n";
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@ class Holiday extends CommonObject
|
||||
// User
|
||||
$sql.= "'".$this->fk_user."',";
|
||||
$sql.= " '".$this->db->idate($now)."',";
|
||||
$sql.= " '".addslashes($this->description)."',";
|
||||
$sql.= " '".$this->db->escape($this->description)."',";
|
||||
$sql.= " '".$this->db->idate($this->date_debut)."',";
|
||||
$sql.= " '".$this->db->idate($this->date_fin)."',";
|
||||
$sql.= " ".$this->halfday.",";
|
||||
@@ -473,7 +473,7 @@ class Holiday extends CommonObject
|
||||
// Update request
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."holiday SET";
|
||||
|
||||
$sql.= " description= '".addslashes($this->description)."',";
|
||||
$sql.= " description= '".$this->db->escape($this->description)."',";
|
||||
|
||||
if(!empty($this->date_debut)) {
|
||||
$sql.= " date_debut = '".$this->db->idate($this->date_debut)."',";
|
||||
@@ -527,7 +527,7 @@ class Holiday extends CommonObject
|
||||
$sql.= " fk_user_cancel = NULL,";
|
||||
}
|
||||
if(!empty($this->detail_refuse)) {
|
||||
$sql.= " detail_refuse = '".addslashes($this->detail_refuse)."'";
|
||||
$sql.= " detail_refuse = '".$this->db->escape($this->detail_refuse)."'";
|
||||
} else {
|
||||
$sql.= " detail_refuse = NULL";
|
||||
}
|
||||
@@ -1394,7 +1394,7 @@ class Holiday extends CommonObject
|
||||
|
||||
$sql.= ") VALUES (";
|
||||
|
||||
$sql.= " '".addslashes($this->optName)."',";
|
||||
$sql.= " '".$this->db->escape($this->optName)."',";
|
||||
$sql.= " '".$this->optValue."'";
|
||||
$sql.= ")";
|
||||
|
||||
@@ -1441,7 +1441,7 @@ class Holiday extends CommonObject
|
||||
function updateEventCP($rowid, $name, $value) {
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."holiday_events SET";
|
||||
$sql.= " name = '".addslashes($name)."', value = '".$value."'";
|
||||
$sql.= " name = '".$this->db->escape($name)."', value = '".$value."'";
|
||||
$sql.= " WHERE rowid = '".$rowid."'";
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
@@ -1564,7 +1564,7 @@ class Holiday extends CommonObject
|
||||
*/
|
||||
function addLogCP($fk_user_action,$fk_user_update,$type,$new_solde) {
|
||||
|
||||
global $conf, $langs, $db;
|
||||
global $conf, $langs;
|
||||
|
||||
$error=0;
|
||||
|
||||
@@ -1586,7 +1586,7 @@ class Holiday extends CommonObject
|
||||
$sql.= " NOW(), ";
|
||||
$sql.= " '".$fk_user_action."',";
|
||||
$sql.= " '".$fk_user_update."',";
|
||||
$sql.= " '".addslashes($type)."',";
|
||||
$sql.= " '".$this->db->escape($type)."',";
|
||||
$sql.= " '".$prev_solde."',";
|
||||
$sql.= " '".$new_solde."'";
|
||||
$sql.= ")";
|
||||
|
||||
@@ -117,6 +117,7 @@ elseif($action == 'add_event')
|
||||
dol_htmloutput_mesg($message);
|
||||
}
|
||||
|
||||
$langs->load('users');
|
||||
$var=true;
|
||||
$i = 0;
|
||||
|
||||
|
||||
@@ -380,7 +380,7 @@ if($action == 'confirm_valid')
|
||||
$newSolde = $soldeActuel - ($nbJour*$cp->getConfCP('nbHolidayDeducted'));
|
||||
|
||||
// On ajoute la modification dans le LOG
|
||||
$cp->addLogCP($userID,$cp->fk_user, $langs->trans('Event').': '.$langs->transnoentitiesnoconv("Holidays"),$newSolde);
|
||||
$cp->addLogCP($user->id,$cp->fk_user, $langs->trans('Event').': '.$langs->transnoentitiesnoconv("Holidays"),$newSolde);
|
||||
|
||||
// Mise à jour du solde
|
||||
$cp->updateSoldeCP($cp->fk_user,$newSolde);
|
||||
|
||||
@@ -262,6 +262,7 @@ print_liste_field_titre($langs->trans("DateDebCP"),$_SERVER["PHP_SELF"],"cp.date
|
||||
print_liste_field_titre($langs->trans("DateFinCP"),$_SERVER["PHP_SELF"],"cp.date_fin","",'','align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("Duration"));
|
||||
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cp.statut","",'','align="center"',$sortfield,$sortorder);
|
||||
print '<td></td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// FILTRES
|
||||
@@ -320,6 +321,9 @@ print '<td> </td>';
|
||||
// STATUT
|
||||
print '<td class="liste_titre" width="70px;" align="center">';
|
||||
$holiday->selectStatutCP($search_statut);
|
||||
print '</td>';
|
||||
// ACTION
|
||||
print '<td>';
|
||||
print '<input type="image" class="liste_titre" name="button_search" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" alt="'.$langs->trans('Search').'">';
|
||||
print "</td></tr>\n";
|
||||
|
||||
|
||||
@@ -105,6 +105,8 @@ if($num == '0') {
|
||||
|
||||
} else {
|
||||
|
||||
$langs->load('users');
|
||||
|
||||
while ($holiday = $db->fetch_array($result))
|
||||
{
|
||||
$user = new User($db);
|
||||
|
||||
@@ -39,6 +39,8 @@ if(!$user->rights->holiday->view_log) accessforbidden();
|
||||
* View
|
||||
*/
|
||||
|
||||
$langs->load('users');
|
||||
|
||||
llxHeader(array(),$langs->trans('CPTitreMenu'));
|
||||
|
||||
|
||||
|
||||
@@ -222,8 +222,8 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '4
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '404', 'Sociedad Colectiva', 1);
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '405', 'Sociedad Limitada', 1);
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '406', 'Sociedad Anónima', 1);
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '407', 'Sociedad Comandataria por Acciones', 1);
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '408', 'Sociedad Comandataria Simple', 1);
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '407', 'Sociedad Comanditaria por Acciones', 1);
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '408', 'Sociedad Comanditaria Simple', 1);
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '409', 'Sociedad Laboral', 1);
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '410', 'Sociedad Cooperativa', 1);
|
||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (4, '411', 'Sociedad de Garantía Recíproca', 1);
|
||||
|
||||
@@ -3526,6 +3526,10 @@ function migrate_delete_old_files($db,$langs,$conf)
|
||||
DOL_DOCUMENT_ROOT.'/core/menus/smartphone/iphone.lib.php',
|
||||
DOL_DOCUMENT_ROOT.'/core/menus/smartphone/iphone_backoffice.php',
|
||||
DOL_DOCUMENT_ROOT.'/core/menus/smartphone/iphone_frontoffice.php',
|
||||
DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria_backoffice.php',
|
||||
DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria_frontoffice.php',
|
||||
DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy_backoffice.php',
|
||||
DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy_frontoffice.php',
|
||||
DOL_DOCUMENT_ROOT.'/core/modules/mailings/dolibarr_services_expired.modules.php',
|
||||
DOL_DOCUMENT_ROOT.'/core/modules/mailings/peche.modules.php',
|
||||
DOL_DOCUMENT_ROOT.'/core/modules/mailings/poire.modules.php',
|
||||
|
||||
@@ -128,7 +128,6 @@ DeleteEventOptionCP=Изтриване
|
||||
UpdateEventOptionCP=Актуализация
|
||||
ErrorMailNotSend=Възникна грешка при изпращане на електронна поща:
|
||||
NoCPforMonth=Не оставяйте този месец.
|
||||
Jours=ден
|
||||
nbJours=Брой дни
|
||||
TitleAdminCP=Конфигурация на празници
|
||||
Permission20001=/ Промяна на всички искания празници
|
||||
|
||||
@@ -129,7 +129,6 @@ DeleteEventOptionCP=Eliminar
|
||||
UpdateEventOptionCP=Actualitzar
|
||||
ErrorMailNotSend=S'ha produït un error en l'enviament del correu electrònic:
|
||||
NoCPforMonth=Sense vacances aquest mes.
|
||||
Jours=dies
|
||||
nbJours=Número de dies
|
||||
TitleAdminCP=Configuració de les vacances
|
||||
|
||||
|
||||
@@ -129,7 +129,6 @@ DeleteEventOptionCP=Delete
|
||||
UpdateEventOptionCP=Update
|
||||
ErrorMailNotSend=An error occurred while sending email:
|
||||
NoCPforMonth=No leave this month.
|
||||
Jours=days
|
||||
nbJours=Number days
|
||||
TitleAdminCP=Configuration of Holidays
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ DisableJavascript=Desactivar las funciones Javascript
|
||||
ConfirmAjax=Utilizar los popups de confirmación Ajax
|
||||
UseSearchToSelectCompany=Utilizar un formulario de búsqueda para buscar terceros (en vez de lista desplegable)<br><br>Tenga en cuenta que si tiene un gran número de productos o servicios (>100 000), puede mejorar el rendimiento mediante la constante SOCIETE_DONOTSEARCH_ANYWHERE a 1 en Configuración->Varios. La búsqueda se limitará entonces al inicio de la cadena.
|
||||
ActivityStateToSelectCompany=Agregar un filtro en la búsqueda para mostrar/ocultar los terceros en activo o que hayan dejado de ejercer
|
||||
UseSearchToSelectContact=Utilizar un formulario de búsqueda (en vez de una lista desplegable).<br>Tenga en cuenta que si tiene un gran número de contactos (>100 000), puede mejorar el rendimiento mediante la constante CONTACT_DONOTSEARCH_ANYWHERE a 1 en Configuración->Varios. La búsqueda se limitará entonces al inicio de la cadena.
|
||||
UseSearchToSelectContact=Utilizar un formulario de búsqueda para buscar contactos (en vez de una lista desplegable).<br>Tenga en cuenta que si tiene un gran número de contactos (>100 000), puede mejorar el rendimiento mediante la constante CONTACT_DONOTSEARCH_ANYWHERE a 1 en Configuración->Varios. La búsqueda se limitará entonces al inicio de la cadena.
|
||||
SearchFilter=Opciones filtros de búsqueda
|
||||
NumberOfKeyToSearch=Nº de caracteres para desencadenar la búsqueda: %s
|
||||
ViewFullDateActions=Ver las fechas de las acciones en su totalidad en la ficha de tercero
|
||||
|
||||
@@ -129,7 +129,6 @@ DeleteEventOptionCP=Eliminar
|
||||
UpdateEventOptionCP=Actualizar
|
||||
ErrorMailNotSend=Se ha producido un error en el envío del e-mail :
|
||||
NoCPforMonth=Sin vacaciones este mes.
|
||||
Jours=días
|
||||
nbJours=Número de días
|
||||
TitleAdminCP=Configuración de las vacaciones
|
||||
|
||||
|
||||
@@ -127,7 +127,6 @@ DeleteEventOptionCP=Supprimer
|
||||
UpdateEventOptionCP=Mettre à jour
|
||||
ErrorMailNotSend=Une erreur est survenue lors de l'envoi du mail :
|
||||
NoCPforMonth=Aucun congé ce mois-ci.
|
||||
Jours=jours
|
||||
nbJours=Nombre jours
|
||||
TitleAdminCP=Configuration des Congés
|
||||
|
||||
|
||||
@@ -126,7 +126,6 @@ DeleteEventOptionCP=Sil
|
||||
UpdateEventOptionCP=Güncelle
|
||||
ErrorMailNotSend=Eposta gönderilirken bir hata oluştu:
|
||||
NoCPforMonth=Bu ay hiç izin yok.
|
||||
Jours=gün
|
||||
nbJours=Gün sayısı
|
||||
TitleAdminCP=Tatillerin Yapılandırması
|
||||
Permission20001=Bütün tatil isteklerini Oku / Değiştir
|
||||
|
||||
@@ -278,4 +278,4 @@ $(document).ready(function() {
|
||||
$("#markRate").html("<?php echo (($markRate === '')?'n/a':price($markRate)."%"); ?>");
|
||||
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@@ -183,6 +183,7 @@ $sql.= " ORDER BY $sortfield $sortorder ";
|
||||
// TODO: calculate total to display then restore pagination
|
||||
//$sql.= $db->plimit($conf->liste_limit +1, $offset);
|
||||
|
||||
dol_syslog('margin::customerMargins.php sql='.$sql,LOG_DEBUG);
|
||||
$result = $db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
@@ -303,4 +304,4 @@ $(document).ready(function() {
|
||||
$("#markRate").html("<?php echo (($markRate === '')?'n/a':price($markRate)."%"); ?>");
|
||||
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@@ -264,4 +264,4 @@ $(document).ready(function() {
|
||||
$("#marginRate").html("<?php echo (($marginRate === '')?'n/a':price($marginRate)."%"); ?>");
|
||||
$("#markRate").html("<?php echo (($markRate === '')?'n/a':price($markRate)."%"); ?>");
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@@ -174,7 +174,7 @@ function envoi_mail($mode,$oldemail,$message,$total,$userlang,$oldcustomer)
|
||||
|
||||
$subject = "[".(empty($conf->global->MAIN_APPLICATION_TITLE)?'Dolibarr':$conf->global->MAIN_APPLICATION_TITLE)."] ".$newlangs->trans("ListOfYourUnpaidInvoices");
|
||||
$sendto = $oldemail;
|
||||
$from = $conf->global->MAIN_EMAIL_FROM;
|
||||
$from = $conf->global->MAIN_MAIL_EMAIL_FROM;
|
||||
$errorsto = $conf->global->MAIN_MAIL_ERRORS_TO;
|
||||
$msgishtml = 0;
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@ function envoi_mail($mode,$oldemail,$message,$total,$userlang,$oldsalerepresenta
|
||||
|
||||
$subject = "[".(empty($conf->global->MAIN_APPLICATION_TITLE)?'Dolibarr':$conf->global->MAIN_APPLICATION_TITLE)."] ".$newlangs->trans("ListOfYourUnpaidInvoices");
|
||||
$sendto = $oldemail;
|
||||
$from = $conf->global->MAIN_EMAIL_FROM;
|
||||
$from = $conf->global->MAIN_MAIL_EMAIL_FROM;
|
||||
$errorsto = $conf->global->MAIN_MAIL_ERRORS_TO;
|
||||
$msgishtml = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user