7
votes

Récupération du temps de connexion de l'utilisateur dans SDL Tridion 2011

J'ai besoin d'écrire un script qui génère un rapport d'utilisateurs qui ne se sont pas connectés à Tridion pendant 1 an. Je sais que nous pouvons récupérer les dates modifiées et les utilisateurs de tous les fichiers, mais comment suivirions-nous la date de connexion des utilisateurs qui ne fournissent aucune modification, c'est-à-dire un accès en lecture seule?


1 commentaires

Bonjour Wilson, merci d'avoir rejoint ainsi et de poster sur SDL Tridion. Voulez-vous envisager de vous engager dans la zone 51 proposition de questions sur les tridions chez zone51.stackexchange.com/proposals/38335/...


5 Réponses :


-1
votes

Tridion ne reste pas une trace d'une "dernière modification faite par cet utilisateur", vous devrez donc rouler quelque chose vous-même.

La première chose qui me passe à l'esprit est d'écrire un Handler Pour le Enregistrer événement de identifidifiableObject . Dans ce gestionnaire, vous pouvez mettre à jour un propriété d'application propriété sur l'utilisateur. Le script peut alors simplement boucler sur tous les utilisateurs, obtenir votre Appdata et déterminer quels utilisateurs ont été inactifs depuis plus d'un an.


2 commentaires

Je pense que vous avez manqué le point - il est possible d'obtenir une liste d'éléments modifiés par un utilisateur et d'obtenir une date de la dernière fois qu'un utilisateur a modifié un élément dans le CMS. User1684360 demande comment il pourrait s'attaquer au défi de la journalisation lorsqu'un utilisateur est connecté à la CME, à mesure que plusieurs utilisateurs n'ont qu'un accès lu sur le CMS et ne modifient jamais aucun élément. Je ne crois pas qu'il y ait un événement associé à un utilisateur de la journalisation dans le CMS ou je me trompe?


Vous avez raison, j'ai mal interprété et a ensuite commencé la sur-ingénierie. :-) Il n'y a en effet aucun événement de connexion, une extension d'interface graphique serait donc la seule chose que je puisse penser pour cela. Ou un readement sur l'objet utilisateur. Je n'ai jamais regardé les événements exacts d'un tel événement, mais craignez qu'il ne s'agisse pas trop souvent. Par exemple, lorsque quelqu'un commence à itérifier tous les utilisateurs.



3
votes

Je n'ai jamais écrit quelque chose comme ça, la seule façon dont je peux penser à atteindre cela consiste à créer une extension de l'interface graphique qui ajoute Appdata indiquant l'heure de connexion à l'objet utilisateur chaque fois qu'ils ouvrent le CME.

Je ne crois pas qu'il y ait un événement déclenché lorsque la connexion se produit, sinon je suggérerais de créer un système uniforme.

Vous pouvez envisager de lire cet article par NUNO (http://www.tridiondeveloper.com/inheriting-metadata-on-Oronizational-items), il décrit l'exécution d'une action qui est déclenchée par un utilisateur ouvrant un élément. Je suppose que cela serait déclenché même lorsque l'utilisateur n'a accès que l'utilisateur (mais vous auriez besoin de vérifier cela). S'il est déclenché sur toutes les actions de lecture, vous pouvez mettre à jour l'utilisateur appdata chaque fois qu'un utilisateur ouvre identifiableObject dans le CME. Cela vous indiquerait que la dernière fois que l'utilisateur a visionné n'importe quel article du CME.

espoir que cela aide

chris


1 commentaires

J'ai écrit quelque chose comme ça, à la suite de l'approche que Chris mentionne (écrire quelque chose sur la charge). Faites attention à ce que les événements de charge incendie beaucoup et vous devez vous assurer que vous ne tuez pas le système avec les frais généraux d'écrire ces données quelque part.



8
votes

Regardez les journaux IIS de l'application Tridion 2011. Vous devriez voir des demandes pour toutes les pages de Tridion par différents utilisateurs. Certaines des entrées ressembleront à ceci: xxx

de l'élément ci-dessus Vous pouvez voir que la page Tridiondashboard, c'est-à-dire la première page que vous recevez après la connexion, a été accessible par l'utilisateur Tridion \ Administrator (Oui, mon tridion vm s'appelle "Tridion" et je l'ouvrirai à l'aide du compte administrateur).

Donc, ce que vous devez faire est de vous assurer que les journaux ne sont pas écrasés une fois qu'ils se remplissaient et se sont archivés dans un endroit où vous pouvez les attraper et les analyser.

Les seules informations que vous avez besoin sont le nom d'utilisateur. Jetez-la simplement dans une sorte de structure de données HASHSET (qui stocke uniquement des clés uniques) de telle sorte que la clé est utilisée et que la valeur est l'horodatage. Je parie que vous pouvez faire toutes les analyses avec quelques lignes de code à l'aide de PowerShell (ou si vous utilisez Cygwin Un doublure à l'aide de la commande Grep utilisera également le truc).

Les journaux sont généralement en% SystemDrive % \ inetpub \ journaux \ logfiles, mais vérifiez votre système pour vous assurer que l'emplacement n'a pas été modifié.


0 commentaires

1
votes

Vous pouvez implémenter l'événement de chargement. Ceci s'appelle à peu près à chaque action dans l'interface graphique. Dès que quiconque utilise Tridion, l'événement est certainement appelé. Mais soyez prudent: vous devez écrire un code super efficace car sinon, il ralentira le système.


2 commentaires

Mihai a blogué à ce sujet Il y a quelque temps, voici le lien, il a des exemples de code aussi: yatb.mitza.net/2012/03/...


Je pense que le blog de Mihai est la réponse! Voulez-vous changer votre commentaire en une réponse afin que cela puisse être accepté? Ou laissez Mihai le faire lui-même, bien sûr ..



3
votes

Mihai a blogué à ce sujet il y a quelque temps, voici le lien, il a des exemples de code aussi: http://yatb.mitza.net/2012/03/capturing-utilisateurs-last-login-date-into.html


0 commentaires