<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Amicalement Web - Astuces et Bons plans dans le développement web &#187; snippet</title>
	<atom:link href="http://www.amicalement-web.net/tag/snippet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.amicalement-web.net</link>
	<description>Astuces et bons plans d&#039;un web developpeur</description>
	<lastBuildDate>Wed, 04 Jan 2012 14:54:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>De l&#8217;art de bien configurer vos credentials dans Symfony</title>
		<link>http://www.amicalement-web.net/configurer-vos-credentials-dans-symfony/2009/05/05/</link>
		<comments>http://www.amicalement-web.net/configurer-vos-credentials-dans-symfony/2009/05/05/#comments</comments>
		<pubDate>Tue, 05 May 2009 11:35:49 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[credential]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=216</guid>
		<description><![CDATA[J&#8217;ai été confronté récemment à un problème tout bête dans ma gestion de droits sous Symfony. En effet, je voulais pouvoir configurer dans mes security.yml, une autorisation d&#8217;accès pour un certain niveau d&#8217;utilisateur ou en étant admin. Tout naturellement j&#8217;ai opté pour l&#8217;écriture: editArticle: credentials: [ admin, editor ] Mais l&#8217;accès devenait impossible pour les [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-38" title="system-run" src="http://www.amicalement-web.net/wp-content/uploads/system-run.png" alt="system-run" width="48" height="48" /> J&#8217;ai été confronté récemment à un problème tout bête dans ma gestion de droits sous Symfony. En effet, je voulais pouvoir configurer dans mes security.yml, une autorisation d&#8217;accès pour un certain niveau d&#8217;utilisateur ou en étant admin.</p>
<p>Tout naturellement j&#8217;ai opté pour l&#8217;écriture:</p>

<div class="wp_syntax"><div class="code"><pre class="yaml" style="font-family:monospace;">editArticle:
credentials: [ admin, editor ]</pre></div></div>

<p>Mais l&#8217;accès devenait impossible pour les deux, alors que l&#8217;un ou l&#8217;autre fonctionnait. J&#8217;ai donc décidé d&#8217;appliquer tous les groupes au groupe admin pour régler le problème, manque de temps pour me documenter. Après coup, le problème m&#8217;étant revenu pendant que je naviguais sur le site du framework, j&#8217;ai tenté une recherche et la forcément la réponse devant mes yeux.<br />
<span id="more-216"></span></p>
<p>Et dans la <a  href="http://www.symfony-project.org/book/1_2/06-Inside-the-Controller-Layer#chapter_06_sub_complex_credentials">documentation officielle, chapitre 6</a>, un petit passage qui expliquait clairement l&#8217;art de bien configurer ses credentials:</p>

<div class="wp_syntax"><div class="code"><pre class="yaml" style="font-family:monospace;">editArticle:
  credentials: [ admin, editor ]              # admin AND editor
&nbsp;
publishArticle:
  credentials: [ admin, publisher ]           # admin AND publisher
&nbsp;
userManagement:
  credentials: [[ admin, superuser ]]         # admin OR superuser</pre></div></div>

<p>Comme quoi la règle RTFM règle toujours autant de problèmes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/configurer-vos-credentials-dans-symfony/2009/05/05/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony: Automatiser la navigation dans votre admin-generator</title>
		<link>http://www.amicalement-web.net/symfony-automatiser-la-navigation-dans-votre-admin-generator/2009/03/19/</link>
		<comments>http://www.amicalement-web.net/symfony-automatiser-la-navigation-dans-votre-admin-generator/2009/03/19/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 12:07:57 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=174</guid>
		<description><![CDATA[Petite reprise d&#8217;activité du blog après quelques journée assez chargées. Et me voilà vous proposer une pré alpha d&#8217;un petit snippet pour symfony 1.2 qui vise à automatiser la génération d&#8217;un menu pour l&#8217;admin générator qui malheureusement ne propose rien de semblable à l&#8217;heure actuelle. Et combien il devient vite barbant de rajouter les liens [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/accessories-text-editor.png" alt="accessories-text-editor" title="accessories-text-editor" width="48" height="48" class="alignleft size-full wp-image-28" /> Petite reprise d&#8217;activité du blog après quelques journée assez chargées. Et me voilà vous proposer une pré alpha d&#8217;un petit snippet pour symfony 1.2 qui vise à automatiser la génération d&#8217;un menu pour l&#8217;admin générator qui malheureusement ne propose rien de semblable à l&#8217;heure actuelle.<br />
Et combien il devient vite barbant de rajouter les liens de vos nouveaux modules à la main dans votre layout.</p>
<p>Voici donc une solution possible et facile à mettre en place en se basant sur le fichier de routing.<br />
<span id="more-174"></span><br />
En effet, à chaque ajout de module d&#8217;admin via la célèbre:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">php symfony propel:generate-admin backend MonModel</pre></div></div>

<p>Le fichier de routing.yml de l&#8217;application en question est modifié avec quelque chose qui ressemble à ça par défaut:</p>

<div class="wp_syntax"><div class="code"><pre class="yml" style="font-family:monospace;">offres:
  class: sfPropelRouteCollection
  options:
    model:               Offres
    module:              offres
    prefix_path:         offres
    column:              oid
    with_wildcard_routes: true</pre></div></div>

<p>J&#8217;ai donc fait un petit snippet qui parse ce yml:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> myAdminMenu 
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> getLinks<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> sfYaml<span style="color: #339933;">::</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span>sfConfig<span style="color: #339933;">::</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sf_app_config_dir'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/routing.yml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$links</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$k</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #666666; font-style: italic;">// On n'affiche pas les infos présentes par défaut dans le routing</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$k</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'homepage'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$k</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'default'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$k</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'default_index'</span><span style="color: #009900;">&#41;</span>
      <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$links</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$k</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #990000;">sort</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$links</span><span style="color: #339933;">,</span>SORT_STRING<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// On trie par ordre alphabétique</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$links</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Et il ne reste plus qu&#8217;à boucler dessus dans votre layout.php:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&lt;ul id=&quot;menu&quot;&gt;
  	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span>myAdminMenu<span style="color: #339933;">::</span><span style="color: #004000;">getLinks</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
  		&lt;li&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> url_for<span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/index'</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #990000;">ucfirst</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;&lt;/li&gt;
  	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endforeach</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/ul&gt;</pre></div></div>

<p>Bon j&#8217;imagine bien qu&#8217;il est perfectible au possible surtout si on configure un nom différent du module à la génération du module mais on fera avancer les choses quand le besoin s&#8217;en fera sentir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/symfony-automatiser-la-navigation-dans-votre-admin-generator/2009/03/19/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
