ajout d'un portal_type à un endroit bien définis
ajout d'un portal_type à un endroit bien définis
Bonjour,
Ma question est la suivante :
Est-il possible de faire en sorte qu'un portal_type soit ajoutable uniquement à un endroit bien définis (que seul l'administrateur aura décidé) et que, à cet endroit, un seul rôle, lui aussi clairement définis, puisse ajouter ce type d'objet à cet endroit ?
Si il y a moyen... comment faire ça ?
Merci d'avance,
Christophe.
Ma question est la suivante :
Est-il possible de faire en sorte qu'un portal_type soit ajoutable uniquement à un endroit bien définis (que seul l'administrateur aura décidé) et que, à cet endroit, un seul rôle, lui aussi clairement définis, puisse ajouter ce type d'objet à cet endroit ?
Si il y a moyen... comment faire ça ?
Merci d'avance,
Christophe.
Re: ajout d'un portal_type à un endroit bien définis
J'ai un peu avancé (je crois car ça n'a rien changé pour le moment) mais, pour ce type, je lui ai associé un workflow particulier et dans
"Instance creation conditions", j'ai associé un groupe spécifique.
Malheureusement, il semble que le système n'en tienne pas compte...
"Instance creation conditions", j'ai associé un groupe spécifique.
Malheureusement, il semble que le système n'en tienne pas compte...
Re: ajout d'un portal_type à un endroit bien définis
Salut Christophe,
çà dépend un peu de ton usecase en fait. N'hésite pas à donner d'avantage d'infos concernant ton use case si l'explication suivante ne convient pas. Donc, imaginons un "dossier" dans lequel tu ne veux ajouter que "type" pour un "utilisateur" ou un groupe. Très simplement, crée le dossier, en tant qu'administrateur, tu as accès dans le menu "ajout d'un élément" à une action (tout en dessous) "restriction...". Par ce biais, tu peux définir quels sont les éléments ajoutables dans le dossier. Ensuite, toujours en tant qu'administrateur, via l'onglet "partage" présent sur le même dossier, tu définis des rôles locaux spécifiants que "utilisateur" ou "groupe" peut ajouter.
Est ce que c'est çà que tu souhaites faire? Sinon, donne une explication précise de ce dont tu as besoin.
Bien à toi,
Gauthier Bastien, AC Sambreville
çà dépend un peu de ton usecase en fait. N'hésite pas à donner d'avantage d'infos concernant ton use case si l'explication suivante ne convient pas. Donc, imaginons un "dossier" dans lequel tu ne veux ajouter que "type" pour un "utilisateur" ou un groupe. Très simplement, crée le dossier, en tant qu'administrateur, tu as accès dans le menu "ajout d'un élément" à une action (tout en dessous) "restriction...". Par ce biais, tu peux définir quels sont les éléments ajoutables dans le dossier. Ensuite, toujours en tant qu'administrateur, via l'onglet "partage" présent sur le même dossier, tu définis des rôles locaux spécifiants que "utilisateur" ou "groupe" peut ajouter.
Est ce que c'est çà que tu souhaites faire? Sinon, donne une explication précise de ce dont tu as besoin.
Bien à toi,
Gauthier Bastien, AC Sambreville
Re: ajout d'un portal_type à un endroit bien définis
Bonjour Gauthier,
Merci pour cette première réponse mais malheureusement ce n'est pas aussi simple
.
En fait, j'aimerais, par exemple, que ce portal_type ne puisse être créé que par l'administrateur.
Dans mes différents dossiers, j'ai des "manager" qui peuvent voir la liste complète des types qui peuvent être ajoutés dans un dossier.
Dans mon cas, j'aimerais que, non seulement il ne puissent plus voir ce type mais ne peuvent pas non plus le créer (l'équivalent de décoché ATContentTypes: Add File par exemple).
D'ailleurs, j'y arrive, le portal_type dont j'aimerais éviter l'ajout par une personne non authorisée est un portal_type qui dérive d'un type 'FILE'.
Donc, je ne peux pas me contenter de retirer cette permission au rôle 'contributeur' par exemple.
Bien à toi,
Christophe.
Merci pour cette première réponse mais malheureusement ce n'est pas aussi simple
.En fait, j'aimerais, par exemple, que ce portal_type ne puisse être créé que par l'administrateur.
Dans mes différents dossiers, j'ai des "manager" qui peuvent voir la liste complète des types qui peuvent être ajoutés dans un dossier.
Dans mon cas, j'aimerais que, non seulement il ne puissent plus voir ce type mais ne peuvent pas non plus le créer (l'équivalent de décoché ATContentTypes: Add File par exemple).
D'ailleurs, j'y arrive, le portal_type dont j'aimerais éviter l'ajout par une personne non authorisée est un portal_type qui dérive d'un type 'FILE'.
Donc, je ne peux pas me contenter de retirer cette permission au rôle 'contributeur' par exemple.
Bien à toi,
Christophe.
Re: ajout d'un portal_type à un endroit bien définis
La permission d'ajout d'un élément est définie sur le meta_type et non sur le portal_type. Ce qui signifie que si ton portal_type est basé sur le meta_type ATFile, la permission d'ajout "ATContentTypes: Add File" va influer sur les 2 éléments. Apparemment çà ne pose pas problème?
Ceci dit, je ne comprend pas le reste de ton post
Quand tu dis, des managers, ce sont des utilisateurs qui ont le rôle "Manager"? Quand tu dis que tu y arrives, alors? 
Dans Zope2, des permissions sont données à des rôles, donc, si tes utilsateurs ont le rôle "Manager" (ce qui n'est pas une bonne chose), çà ne fonctionne pas. Tu dois ajouter un rôle (tu peux le faire dans la ZMi-->onglet "Security"-->tout en bas "Add role". Ajoute un rôle spécifique pour ces super utilisateurs de ton intranet mais qui ne sont quand même pas Manager (c'est-à-dire Dieu
). Ensuite, tu dois prendre en compte ce nouveau rôle dans ton workflow.
+++
Gauthier Bastien, AC Sambreville
Ceci dit, je ne comprend pas le reste de ton post
Quand tu dis, des managers, ce sont des utilisateurs qui ont le rôle "Manager"? Quand tu dis que tu y arrives, alors? 
Dans Zope2, des permissions sont données à des rôles, donc, si tes utilsateurs ont le rôle "Manager" (ce qui n'est pas une bonne chose), çà ne fonctionne pas. Tu dois ajouter un rôle (tu peux le faire dans la ZMi-->onglet "Security"-->tout en bas "Add role". Ajoute un rôle spécifique pour ces super utilisateurs de ton intranet mais qui ne sont quand même pas Manager (c'est-à-dire Dieu
). Ensuite, tu dois prendre en compte ce nouveau rôle dans ton workflow.+++
Gauthier Bastien, AC Sambreville
Re: ajout d'un portal_type à un endroit bien définis
justement, si, c'est ça qui m'embête... les 2 éléments sont influencés :-s
Donc je cherche une alternative pour influencer que 1 seul portal_type mais qui est (malheureusement) basé sur le même meta_type ATFile.
Donc je cherche une alternative pour influencer que 1 seul portal_type mais qui est (malheureusement) basé sur le même meta_type ATFile.
Re: ajout d'un portal_type à un endroit bien définis
Alors là tu as 2 solutions : soit l'entourloupe, soit faire alors ce qu'il faut pour avoir une permission d'ajout liée à ton nouveau type de contenu. Evidemment je te conseille la seconde solution étant donné que c'est assez simple à faire et qu'en plus, tu as déjà un produit sur le FileSystem lié à ton intranet. En gros, il s'agit de faire un produit (ou d'enrichir un produit existant) pour y créer une class (meta_type) du nom de ton nouveau type de contenu et qui dérive de ATFile. Cà doit faire à tout casser 10 lignes de code. Tu peux aussi adapter le profil d'extension de ton produit pour qu'à l'installation, le portal_type lié à ton nouveau meta_type soit automatiquement créé. Mais le plus important est que le meta_type existe et y lier une permission d'ajout. Tu peux utiliser ArgoUML/ArchGenXML à cette fin car le produit sera généré et tout ce qu'il faut avec. Regarde ici : http://plone.org/documentation/manual/developer-manual/using-archgenxml
Regarde de ce côté, ensuite je donnerai la solution dans cette conversation. On peut également faire ce petit produit ensemble lors d'un atelier mais il faut que tu préviennes suffisamment à l'avance car les ateliers sont assez chargés ces temps ci et il faut que je te consacre une paire d'heures. Et éventuellement inviter d'autres communes souhaitant faire du développement Plone, il s'agit d'un usecase intéressant.
Choisir l'entourloupe serait par exemple "cacher le lien de création de cet élément" dans le menu déroulant d'ajout d'un élément. Et même aller plus loin en vérifiant lors de la création (sur la vue d'édition par exemple) que personne n'a tapé l'url de création de cet élément par exemple. En CSS, tu as une classe automatiquement générée dans le menu déroulant et sur chaque élément. Dans le cas de document c'est par exemple "contenttype-document". Tu peux utiliser alors "display: none !important;". En couplant çà à la vérification sur le formulaire de création, tu as un semblant de sécurité, mais je te conseille la solution propre.
En attendant la mise en place de la solution propre, tu peux choisir l'entourloupe évidemment
Bien à toi,
Gauthier Bastien, AC Sambreville
Regarde de ce côté, ensuite je donnerai la solution dans cette conversation. On peut également faire ce petit produit ensemble lors d'un atelier mais il faut que tu préviennes suffisamment à l'avance car les ateliers sont assez chargés ces temps ci et il faut que je te consacre une paire d'heures. Et éventuellement inviter d'autres communes souhaitant faire du développement Plone, il s'agit d'un usecase intéressant.
Choisir l'entourloupe serait par exemple "cacher le lien de création de cet élément" dans le menu déroulant d'ajout d'un élément. Et même aller plus loin en vérifiant lors de la création (sur la vue d'édition par exemple) que personne n'a tapé l'url de création de cet élément par exemple. En CSS, tu as une classe automatiquement générée dans le menu déroulant et sur chaque élément. Dans le cas de document c'est par exemple "contenttype-document". Tu peux utiliser alors "display: none !important;". En couplant çà à la vérification sur le formulaire de création, tu as un semblant de sécurité, mais je te conseille la solution propre.
En attendant la mise en place de la solution propre, tu peux choisir l'entourloupe évidemment

Bien à toi,
Gauthier Bastien, AC Sambreville
Powered by
Ploneboard

