Hello, (French version after)

So we work on the ticket part of glpi and we discover a "fun" thing

[For information in Our product me make a little graphique evolution(in 
"Suivi" the link to the ticket Detail is no more on the -Info- label , the 
link is placed on the title of the ticket (this is a little bit more 
natural and make more place because we can remove Info column so the 
proposed patch will not be 100% operational because our code is a little 
different than official code but the issue has been tested with a very 
recent nightly tar]


I use a user with "post-only" profile and see my list of ticket
then i click on advanced search and search on the ID of a ticket I am not 
supposed to be allowed to see 

Point 1) And I see the ticket in the result list (that can shock some 
people but sometimes it is usefull to know that a ticket exist even if I 
cannot see the content)

Point 2) the link on the ticket leads to a with page but the user can see 
users /state /title/content and all follow up of the ticket using the 
search (that I think is a little to much)

So I propose a small patch about point 2 (the point 1 is not an issue for 
us but this point should be discuss by users to decide the "normal" 
comportment of the tool, to correct the point 1 I suppose there must be 
some work on the showTrackingList function)

-------------------------------------------------BEGIN Suggestion of Patch 
---------------------------------------------------------------------
So in file Tracking_function.php 

in function showJobShort($data, 
$followups,$output_type=HTML_OUTPUT,$row_num=0) {
(near line 

Original lines :
********************************************
if ($_SESSION["glpiactiveprofile"]["interface"]=="central"){
                        if (!$job->canShowTicket()) {
                                $nineth_column.=" ";
                        } else {
                                $nineth_column.="<a 
href=\"".$CFG_GLPI["root_doc"]."/front/tracking.form.php?ID=".$data["ID"]."\"><strong>".$LANG["joblist"][13]."</strong></a>&nbsp;(".$job->numberOfFollowups().")";
                        }
                }
                else {
                        $nineth_column.="<a 
href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php?show=user&amp;ID=".$data["ID"]."\">".$LANG["joblist"][13]."</a>&nbsp;(".$job->numberOfFollowups(haveRight("show_full_ticket","1")).")";
                }
*************************************************
Becomes

if ($_SESSION["glpiactiveprofile"]["interface"]=="central"){
                        if (!$job->canShowTicket()) {
                                $nineth_column.="&nbsp;";
                        } else {
                                $nineth_column.="<a 
href=\"".$CFG_GLPI["root_doc"]."/front/tracking.form.php?ID=".$data["ID"]."\"><strong>".$LANG["joblist"][13]."</strong></a>&nbsp;(".$job->numberOfFollowups().")";
                        }
                }
                else {
                        if (!$job->canShowTicket()) {
                                $nineth_column.="&nbsp;";
                        } else {
                        $nineth_column.="<a 
href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php?show=user&amp;ID=".$data["ID"]."\">".$LANG["joblist"][13]."</a>&nbsp;(".$job->numberOfFollowups(haveRight("show_full_ticket","1")).")";
}
                }


// We just Add -if (!$job->canShowTicket()) {-         test  for 
non-central interface
// The same test should be done for the follow-up picture/data
************************************************
-------------------------------------------------END  Suggestion of Patch 
---------------------------------------------------------------------

Bonjour,

Nous travaillons sur la partie "ticket" de glpi et nous avons découvert un 
petit truc:

[Pour information, nous avons fais une légère évolution graphique de GLPI, 
dans le module suivi qui liste les tickets, Il y a le lien qui mène au 
détail du ticket (aujourd'hui sur le libellé "Info" colonne de droite). Ce 
lien est dans notre version sur le titre du ticket (ainsi la colonne qui 
contenanit Info à maintenant disparues) et il y a plus de place pour les 
titres. Le patch proposé ne sera donc peut être pas 100% opérationnel 
(nous n'avons testé le patch que pour notre version). Par contre nous 
avons reproduit le "problème" sur une version récente du Nigthly release]


Donc en travaillant avec un profile  "post-only" , je vais dans le suivi 
des tickets

Si je lance une recherche avancée et que je cherche par ID un ticket que 
je ne suis pas censé voir, 

Point 1) le ticket est quand même ramené par la méthode de recherche (cela 
peut déranger certaines personnes mais cette fonctionnalité peut-être 
pratique pour voir si un ticket existe même si l'on a pas les droits sur 
ce ticket

Point 2) Grace à la sortie du ticket je peux voir le demandeur, la 
personne attribué, la categorie, le titre ainsi que le contenu et les 
suivis (grâce à la petite loupe verte)


Donc le patch proposé gère avant tout le point2 (le point 1 n'est pas un 
problème pour nous mais peut être les différents utilisateurs de GLPI 
devraient s'exprimer à ce propos pour savoir si l'outil doit ramener ou 
non les tickets que l'utilisateur ne peut pas voir)
le patch sert a masquer le titre si l'utilisateur n'a pas le droit de voir 
le ticket (il faudra repeter l'opération pour l'infobulle contenant les 
suivis).

Pour corriger le point 1 je pense qu'il faut travailler sur la fonction 
showTrackingList(.

Je ne repete pas le patch ici  donc voir le patch ci-dessus

Cordialement
--
Guillaume Brusset




[EMAIL PROTECTED] 
Envoyé par : [EMAIL PROTECTED]
31/12/2007 12:00
Veuillez répondre à
glpi-dev@gna.org


A
glpi-dev@gna.org
cc

Objet
Glpi-dev Digest, Vol 30, Issue 16






Send Glpi-dev mailing list submissions to
                 glpi-dev@gna.org

To subscribe or unsubscribe via the World Wide Web, visit
                 https://mail.gna.org/listinfo/glpi-dev
or, via email, send a message with subject or body 'help' to
                 [EMAIL PROTECTED]

You can reach the person managing the list at
                 [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Glpi-dev digest..."


 
Today's Topics:

   1. Re: Optimisation RuleEngine (Julien Dombre)
   2. Re: Optimisation RuleEngine (Remi Collet)
   3. Re: Optimisation RuleEngine (Julien Dombre)

----- Message de Julien Dombre <[EMAIL PROTECTED]> 
sur Sun, 30 Dec 2007 14:07:34 +0100 -----
Pour:
Liste de diffusion des developpeurs GLPI <glpi-dev@gna.org>
Objet:
Re: [Glpi-dev] Optimisation RuleEngine
Salut,

Je répond après la bataille mais bon. je commence juste a remettre le 
nez dans ce qui a été fait sur la 0.71 au moment du debug de la 0.70

Si on charge les règles et qu'on les appliquent par la suite sur 
plusieurs objets je ne vois pas pourquoi il les rechargerait vu qu'il y 
a déjà un marqueur load ?

J'ai un peu du mal a comprendre en fait... J'ai sûrement loupé un truc.

++

Julien



Remi Collet a écrit :
> Remi Collet a écrit :
> 
>> On peut aussi jouer avec un "singleton" mais ça complique 
l'utilisation.
>> 
>
> Voir : https://dev.indepnet.net:8080/glpi/changeset/6200
>
> Avec cette solution, le chargement d'un moteur de règle ne se fera
> qu'une seule fois dans la vie d'un script.
>
> A tester, en particulier sous PHP 4, mais je pense que c'est bon (je
> suis parti d'un "Design Pattern" pour PHP 4).
>
> A+
>
>
>
> _______________________________________________
> Glpi-dev mailing list
> Glpi-dev@gna.org
> https://mail.gna.org/listinfo/glpi-dev
> 



----- Message de Remi Collet <[EMAIL PROTECTED]> sur Sun, 30 Dec 
2007 16:37:30 +0100 -----
Pour:
Liste de diffusion des developpeurs GLPI <glpi-dev@gna.org>
Objet:
Re: [Glpi-dev] Optimisation RuleEngine
Julien Dombre a écrit :
> Si on charge les règles et qu'on les appliquent par la suite sur 
> plusieurs objets je ne vois pas pourquoi il les rechargerait vu qu'il y 
> a déjà un marqueur load ?

Oui, mais pas toujours.
Le marqueur "load" évite les chargements multiples dans un même objet.

Pas exemple : lorsqu'on rejoue le dictionnaire des softs, la classe
RoleCollectionDictionnarySoftwareCollection n'est instanciée qu'une
fois, mais la classe DictionnaryManufacturerCollection est instanciée
pour chaque logiciel (processManufacturerName), ce qui provoque à chaque
fois le chargement du jeu de règles.

En particulier aussi, lors de la synchro OCS, la fonction
externalImportDropdown instancie à chaque fois le moteur de règle du
dictionnaire correspondant à l'objet en cours de traitement.

Donc le singleton permet un chargement unique de chaque dico au cours de
l'exécution d'un script.

Voili, voila.


A+



----- Message de Julien Dombre <[EMAIL PROTECTED]> 
sur Sun, 30 Dec 2007 16:59:53 +0100 -----
Pour:
Liste de diffusion des developpeurs GLPI <glpi-dev@gna.org>
Objet:
Re: [Glpi-dev] Optimisation RuleEngine
Remi Collet a écrit :
> Julien Dombre a écrit :
> 
>> Si on charge les règles et qu'on les appliquent par la suite sur 
>> plusieurs objets je ne vois pas pourquoi il les rechargerait vu qu'il y 

>> a déjà un marqueur load ?
>> 
>
> Oui, mais pas toujours.
> Le marqueur "load" évite les chargements multiples dans un même objet.
>
> Pas exemple : lorsqu'on rejoue le dictionnaire des softs, la classe
> RoleCollectionDictionnarySoftwareCollection n'est instanciée qu'une
> fois, mais la classe DictionnaryManufacturerCollection est instanciée
> pour chaque logiciel (processManufacturerName), ce qui provoque à chaque
> fois le chargement du jeu de règles.
> 

Ok ca me semble effectivement une bonne chose.
Je n'avais pas percu ce cas de figure.

++

Julien



_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev


*******************************************************************
Ce message et les pieces qui y sont eventuellement jointes sont 
exclusivement transmis a l'intention des personnes physiques ou morales 
auxquelles ils sont destines.
Si vous avez recu ce message par erreur, merci d'en avertir immediatement 
Mazars par telephone ou par courrier electronique de retour a l'expediteur 
et de supprimer toute copie de ce message.
Par ailleurs, il vous est notifie que toute divulgation, reproduction, 
distribution ou utilisation quelconque de tout ou partie de ce message (y 
compris de ses eventuelles pieces jointes) et des informations qui y sont 
contenues est interdite.
Internet ne permettant pas d'assurer l'integrite de ce message, Mazars et 
l'expediteur declinent toute responsabilite au cas ou il aurait ete 
intercepte ou modifie par quiconque.

This message and any possible attachments are transmitted for the 
exclusive use of the intended recipient(s).
Should you receive this message by mistake, please notify Mazars or the 
sender at once by telephone or return e-mail and delete it from your 
system.
Moreover, any form of reproduction dissemination, copying, disclosure, 
modification, distribution and/or use of this message - or part of its 
contents, as well as its possible attachments by any unauthorized person 
or legal entity, is strictly prohibited. 
The nature of the Internet means that the integrity of this message cannot 
be guaranteed. Mazars and the sender therefore disclaim any liability 
whatsoever in the event of this message having been intercepted and/or 
altered.
********************************************************************

This message has been scanned for viruses by BlackSpider MailControl - 
www.blackspider.com
_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to