{"id":3247,"date":"2019-10-06T20:43:31","date_gmt":"2019-10-06T18:43:31","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=3247"},"modified":"2019-10-06T20:55:06","modified_gmt":"2019-10-06T18:55:06","slug":"options-et-subordination","status":"publish","type":"post","link":"http:\/\/blog.nebule.org\/?p=3247","title":{"rendered":"Options et subordination"},"content":{"rendered":"<p style=\"text-align: justify;\">Suite des articles <a title=\"Liens des options\" href=\"http:\/\/blog.nebule.org\/?p=3127\" target=\"_blank\">Liens des options<\/a> et <a title=\"Lien \u00e0 quatre champs objets ?\" href=\"http:\/\/blog.nebule.org\/?p=3230\" target=\"_blank\">Lien \u00e0 quatre champs objets<\/a>.<\/p>\n<p style=\"text-align: justify;\">Il paraissait int\u00e9ressant de pouvoir d\u00e9finir les options d&rsquo;une entit\u00e9 sous contr\u00f4le comme une instance sur un serveur. Cela voulait dire contextualiser le lien or les trois champs des liens de d\u00e9finition des options \u00e9taient d\u00e9j\u00e0 utilis\u00e9s. Mais comme il est possible de fusionner le champs option avec le champs d\u00e9finissant de quelle option on traite, cela lib\u00e8re une champs pour une entit\u00e9 cible.<\/p>\n<p style=\"text-align: justify;\">Les liens de modification des options ont \u00e9t\u00e9 chang\u00e9s dans la biblioth\u00e8que <a title=\"nebule\" href=\"www.nebule.org\" target=\"_blank\">nebule<\/a> afin de prendre en compte ce changement. L&rsquo;entit\u00e9 est en champs source. Le hash de la valeur de l&rsquo;option est en champs cible. Et le champs m\u00e9ta contient le hash du nom de l&rsquo;option pr\u00e9fix\u00e9 par <code>nebule\/option\/<\/code>.<\/p>\n<p style=\"text-align: justify;\">Et une nouvelle option <code>subordinationEntity<\/code> permet de d\u00e9finir une entit\u00e9 de subordination, c&rsquo;est \u00e0 dire une entit\u00e9 qui peut forcer les options. C&rsquo;est utiliser typiquement pour d\u00e9finir les options d&rsquo;une instance sur un serveur distant (qui n&rsquo;est pas sous contr\u00f4le physique). Cette option est en lecture seule, c&rsquo;est \u00e0 dire qu&rsquo;elle ne peut \u00eatre modifi\u00e9e que via le fichier d&rsquo;environnement.<\/p>\n<p style=\"text-align: justify;\">L&rsquo;option doit renvoyer un identifiant d&rsquo;entit\u00e9 mais plus tard il sera possible de mettre en groupe d&rsquo;entit\u00e9s&#8230;<\/p>\n<p style=\"text-align: justify;\">Le <a title=\"bootstrap\" href=\"http:\/\/blog.nebule.org\/?page_id=2462\" target=\"_blank\">bootstrap<\/a> affiche maintenant aussi cette entit\u00e9 de subordination dans la page d&rsquo;interruption.<\/p>\n<p style=\"text-align: justify;\">La documentation d\u00e9crit cette \u00e9volution :<\/p>\n<h3 style=\"text-align: justify;\">CCOL \/ Options via Liens<\/h3>\n<p style=\"text-align: justify;\">Dans les deux m\u00e9thodes pour g\u00e9rer les options, il y a le lien d&rsquo;option. Toutes les options, \u00e0 l&rsquo;exception de celles dites en lecture seule, peuvent \u00eatre d\u00e9finies par les liens d&rsquo;options correspondants.<br \/>\nToutes les options d\u00e9finis par des liens sont attach\u00e9es \u00e0 des entit\u00e9s. C&rsquo;est \u00e0 dire que le lien d&rsquo;une option doit contenir l&rsquo;entit\u00e9 \u00e0 laquelle s&rsquo;applique le lien. L&rsquo;utilisation ou non de l&rsquo;option se fait par l&rsquo;entit\u00e9 si le lien lui appartient ou si elle est subordonn\u00e9e \u00e0 l&rsquo;entit\u00e9 signataire du lien (voir CCOS). Les liens de l&rsquo;entit\u00e9 de subordination sont prioritaires sur les liens propres.<br \/>\nToutes les options inscrites dans le fichier des options sont dites forc\u00e9es et ne peuvent \u00eatre surcharg\u00e9es par un lien d&rsquo;option.<br \/>\nLa valeur de l&rsquo;option doit \u00eatre pr\u00e9sente ou \u00e9crite dans l&rsquo;objet correspondant. Si la valeur de l&rsquo;option ne peut \u00eatre lu, elle ne sera pas prise en compte. Le nom de l&rsquo;option n&rsquo;a pas besoin d&rsquo;\u00eatre \u00e9crit dans l&rsquo;objet correspondant, il est d\u00e9j\u00e0 d\u00e9fini dans le code.<br \/>\nLes options d\u00e9finis par les liens ne sont pas prises en compte par la biblioth\u00e8que nebule en PHP proc\u00e9durale du bootstrap.<br \/>\nL&rsquo;option se d\u00e9finit en cr\u00e9ant un lien :<\/p>\n<ul>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Signature du lien<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Identifiant du signataire<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Horodatage<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 action : l<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 source : ID entit\u00e9 vis\u00e9e<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 cible : hash(valeur de l&rsquo;option)<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 m\u00e9ta : hash(\u00e2\u20ac\u02dcnebule\/option\/&rsquo; + nom de l&rsquo;option)<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Liste des options non modifiables via des liens :<\/p>\n<ul>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;puppetmaster&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitWrite&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitDeleteObjectOnUnknowHash&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitCheckSignOnVerify&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitCheckObjectHash&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitListInvalidLinks&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitInstanceEntityAsAuthority&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitDefaultEntityAsAuthority&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitRecoveryEntities&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitRecoveryRemoveEntity&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitInstanceEntityAsRecovery&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitDefaultEntityAsRecovery&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;permitJavaScript&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;modeRescue&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;displayUnsecureURL&rsquo;<\/li>\n<li style=\"text-align: justify;\">\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Option &lsquo;subordinationEntity&rsquo;<\/li>\n<\/ul>\n<h3 style=\"text-align: justify;\">CCOS \/ Subordination<\/h3>\n<p style=\"text-align: justify;\">Une entit\u00e9 peut d\u00e9finir ses propres options mais peut aussi se voir d\u00e9fini ses options par une autre entit\u00e9. C&rsquo;est principalement utilis\u00e9 afin de piloter des instances sur des serveurs distants.<br \/>\nLa mise en place de ce m\u00e9canisme permet de maintenir autant que possible le contr\u00f4le sur un serveur que l&rsquo;on ne ma\u00eetrise pas physiquement. Elle est mise en place via l&rsquo;option <code>subordinationEntity<\/code> en lecture seule \u00e9crite dans le fichier des options. Cela veut dire aussi qu&rsquo;une entit\u00e9 peut \u00eatre compromise et pilot\u00e9e \u00e0 distance si le fichier des options est modifi\u00e9 par une entit\u00e9 ti\u00e8rce.<br \/>\nLa subordination peut \u00eatre faite vers une seule entit\u00e9, d\u00e9fini par son identifiant, ou pour un groupe d&rsquo;entit\u00e9s. La gestion du groupe n&rsquo;est pas encore fonctionnel, seule une entit\u00e9 peut \u00eatre d\u00e9fini.<br \/>\nLa subordination n&rsquo;est pas prise en compte par la biblioth\u00e8que nebule en PHP proc\u00e9durale du bootstrap.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suite des articles Liens des options et Lien \u00e0 quatre champs objets. Il paraissait int\u00e9ressant de pouvoir d\u00e9finir les options d&rsquo;une entit\u00e9 sous contr\u00f4le comme une instance sur un serveur. Cela voulait dire contextualiser le lien or les trois champs des liens de d\u00e9finition des options \u00e9taient d\u00e9j\u00e0 utilis\u00e9s. Mais comme il est possible de &hellip; <a href=\"http:\/\/blog.nebule.org\/?p=3247\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Options et subordination<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[67,81,7,13,99,18,430],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/3247"}],"collection":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3247"}],"version-history":[{"count":4,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/3247\/revisions"}],"predecessor-version":[{"id":3251,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/3247\/revisions\/3251"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3247"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}