diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 454a78979b0..d0e982b9c9e 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -1393,7 +1393,11 @@ class ActionComm extends CommonObject if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips - if ((!$user->rights->agenda->allactions->read && $this->authorid != $user->id) || (!$user->rights->agenda->myactions->read && $this->authorid == $user->id)) + $canread = 0; + if ($user->rights->agenda->myactions->read && $this->authorid == $user->id) $canread = 1; // Can read my event + if ($user->rights->agenda->myactions->read && array_key_exists($user->id, $this->userassigned)) $canread = 1; // Can read my event i am assigned + if ($user->rights->agenda->allactions->read) $canread = 1; // Can read all event of other + if (! $canread) { $option = 'nolink'; } diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index c4750ef54db..a9a832ea6b4 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -1568,13 +1568,12 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $titletoshow = $daterange; $titletoshow .= ($titletoshow ? ' ' : '').($event->label ? $event->label : $event->libelle); - if ($event->type_code == 'ICALEVENT') print $titletoshow; - else - { + if ($event->type_code != 'ICALEVENT') { $savlabel = $event->label ? $event->label : $event->libelle; $event->label = $titletoshow; $event->libelle = $titletoshow; - print $event->getNomUrl(0, $maxnbofchar, 'cal_event', '', 0, 0); + // Note: List of users are inside $event->userassigned. Link may be clickable depending on permissions of user. + $titletoshow = $event->getNomUrl(0, $maxnbofchar, 'cal_event', '', 0, 0); $event->label = $savlabel; $event->libelle = $savlabel; } @@ -1595,6 +1594,8 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $listofusertoshow .= $cacheusers[$tmpid]->getNomUrl(-3, '', 0, 0, 0, 0, '', 'paddingright valigntextbottom'); } + + print $titletoshow; print $listofusertoshow; if ($event->type_code == 'ICALEVENT') print '
('.dol_trunc($event->icalname, $maxnbofchar).')'; diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 3308d0e816e..f72a3ed7f13 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -5150,6 +5150,7 @@ elseif ($id > 0 || !empty($ref)) // For situation invoice with excess received if ($object->statut > Facture::STATUS_DRAFT + && $object->type == Facture::TYPE_SITUATION && ($object->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits) > 0 && $usercancreate && !$objectidnext diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 990bfded07f..623cc6e14ba 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6125,7 +6125,7 @@ abstract class CommonObject $param_list_array = explode(':', $param_list[0]); $showempty = (($required && $default != '') ? 0 : 1); - $out = $form->selectForForms($param_list[0], $keyprefix.$key.$keysuffix, $value, $showempty, '', '', $morecss, '', 0, empty($val['disabled']) ? 0 : 1); + $out = $form->selectForForms($param_list[0], $keyprefix.$key.$keysuffix, $value, $showempty, '', '', $morecss, $moreparam, 0, empty($val['disabled']) ? 0 : 1); if (!empty($param_list_array[2])) // If we set to add a create button { diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 1939e1709c3..fe3f271b447 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5172,11 +5172,11 @@ class Form { if ($societe_vendeuse->id == $mysoc->id) { - $return .= ''.$langs->trans("ErrorYourCountryIsNotDefined").''; + $return .= ''.$langs->trans("ErrorYourCountryIsNotDefined").''; } else { - $return .= ''.$langs->trans("ErrorSupplierCountryIsNotDefined").''; + $return .= ''.$langs->trans("ErrorSupplierCountryIsNotDefined").''; } return $return; } diff --git a/htdocs/core/modules/modMrp.class.php b/htdocs/core/modules/modMrp.class.php index 20c45dfe59b..a5d58bd8333 100644 --- a/htdocs/core/modules/modMrp.class.php +++ b/htdocs/core/modules/modMrp.class.php @@ -240,17 +240,17 @@ class modMrp extends DolibarrModules // Add here entries to declare new permissions /* BEGIN MODULEBUILDER PERMISSIONS */ $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) - $this->rights[$r][1] = 'Read objects of Mrp'; // Permission label + $this->rights[$r][1] = 'Read Manufacturing Order'; // Permission label $this->rights[$r][4] = 'read'; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) $r++; $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) - $this->rights[$r][1] = 'Create/Update objects of Mrp'; // Permission label + $this->rights[$r][1] = 'Create/Update Manufacturing Order'; // Permission label $this->rights[$r][4] = 'write'; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) $r++; $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) - $this->rights[$r][1] = 'Delete objects of Mrp'; // Permission label + $this->rights[$r][1] = 'Delete Manufacturing Order'; // Permission label $this->rights[$r][4] = 'delete'; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) $r++; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index dbde59f7bd1..346baa172b5 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -878,7 +878,7 @@ Permission1251=Run mass imports of external data into database (data load) Permission1321=Export customer invoices, attributes and payments Permission1322=Reopen a paid bill Permission1421=Export sales orders and attributes -Permission2401=Read actions (events or tasks) linked to his user account (if owner of event) +Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to) Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event) Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event) Permission2411=Read actions (events or tasks) of others diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 8ba85869a4f..664388797fc 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -840,9 +840,11 @@ class Product extends CommonObject $this->height = price2num($this->height); $this->height_units = trim($this->height_units); // set unit not defined - if ($this->length_units) { $this->width_units = $this->length_units; // Not used yet + if (is_numeric($this->length_units)) { + $this->width_units = $this->length_units; // Not used yet } - if ($this->length_units) { $this->height_units = $this->length_units; // Not used yet + if (is_numeric($this->length_units)) { + $this->height_units = $this->length_units; // Not used yet } // Automated compute surface and volume if not filled if (empty($this->surface) && !empty($this->length) && !empty($this->width) && $this->length_units == $this->width_units) { diff --git a/htdocs/public/demo/demo.css b/htdocs/public/demo/demo.css index 7f482367eba..9328a8ecd1b 100644 --- a/htdocs/public/demo/demo.css +++ b/htdocs/public/demo/demo.css @@ -110,6 +110,9 @@ img.demothumb { @media only screen and (max-width: 767px) { + .CTable { + width: 300px; + } .demobody { line-height: 150% !important; font-size: 100% !important; diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index f91ec5e0653..c580fa2a6d3 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -645,7 +645,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) \Stripe\Stripe::setApiKey($stripearrayofkeysbyenv[$servicestatus]['secret_key']); try { - if (empty($key)) { // If the Stripe connect account not set, we use common API usage + if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage $paymentintent = \Stripe\PaymentIntent::retrieve($paymentintent_id); } else { $paymentintent = \Stripe\PaymentIntent::retrieve($paymentintent_id, array("stripe_account" => $stripeacc)); diff --git a/htdocs/stripe/charge.php b/htdocs/stripe/charge.php index 2edb8e6166a..7dbf4dd6089 100644 --- a/htdocs/stripe/charge.php +++ b/htdocs/stripe/charge.php @@ -142,7 +142,11 @@ if (!$rowid) } if (! empty($charge->payment_intent)) { - $charge = \Stripe\PaymentIntent::retrieve($charge->payment_intent); + if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage + $charge = \Stripe\PaymentIntent::retrieve($charge->payment_intent); + } else { + $charge = \Stripe\PaymentIntent::retrieve($charge->payment_intent, array("stripe_account" => $stripeacc)); + } } // The metadata FULLTAG is defined by the online payment page diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 6d7dbb05b95..4b731808d2e 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -3512,6 +3512,7 @@ div.info { padding-bottom: 8px; margin: 1em 0em 1em 0em; background: #eff8fc; + color: #666; } /* Warning message */ diff --git a/htdocs/user/home.php b/htdocs/user/home.php index fbf90e44cc6..2bc273d1594 100644 --- a/htdocs/user/home.php +++ b/htdocs/user/home.php @@ -64,14 +64,13 @@ llxHeader(); print load_fiche_titre($langs->trans("MenuUsersAndGroups")); -//print ''; -//print '
'; print '
'; // Search User print '
'; print ''; + print ''; print ''; print ''; print "
'.$langs->trans("Search").'
'; @@ -86,6 +85,7 @@ if ($canreadperms) print '

\n"; + print '
'; print '
'; @@ -124,6 +124,8 @@ $resql=$db->query($sql); if ($resql) { $num = $db->num_rows($resql); + + print '
'; print ''; print ''; print ''; @@ -204,7 +206,8 @@ if ($resql) print ''; $i++; } - print "
'.$langs->trans("LastUsersCreated", min($num, $max)).''.$langs->trans("FullList").'

"; + print "
"; + print "
"; $db->free($resql); } @@ -240,6 +243,8 @@ if ($canreadperms) $colspan=1; if (! empty($conf->multicompany->enabled)) $colspan++; $num = $db->num_rows($resql); + + print '
'; print ''; print ''; print ''; @@ -275,7 +280,8 @@ if ($canreadperms) print ""; $i++; } - print "
'.$langs->trans("LastGroupsCreated", ($num ? $num : $max)).''.$langs->trans("FullList").'

"; + print ""; + print "

"; $db->free($resql); } diff --git a/htdocs/user/list.php b/htdocs/user/list.php index c73825df145..eb14f61e982 100644 --- a/htdocs/user/list.php +++ b/htdocs/user/list.php @@ -519,7 +519,7 @@ while ($i < min($num, $limit)) print ""; if (! empty($arrayfields['u.login']['checked'])) { - print ''; + print ''; print $li; if (! empty($conf->multicompany->enabled) && $obj->admin && ! $obj->entity) {