<?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>Vladzur&#039;s Blog &#187; plugin</title>
	<atom:link href="http://vladzur.sangrederosas.cl/tag/plugin/feed/" rel="self" type="application/rss+xml" />
	<link>http://vladzur.sangrederosas.cl</link>
	<description>Sobre PHP, Ubuntu, CakePHP y otras cosas</description>
	<lastBuildDate>Mon, 26 Jul 2010 19:06:54 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Plugin de seguridad para Cake</title>
		<link>http://vladzur.sangrederosas.cl/2009/09/09/plugin-de-seguridad-para-cake/</link>
		<comments>http://vladzur.sangrederosas.cl/2009/09/09/plugin-de-seguridad-para-cake/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 16:57:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://vladzur.wordpress.com/2009/09/09/plugin-de-seguridad-para-cake/</guid>
		<description><![CDATA[Para descargar el plugin sigue éste enlace http://www.4shared.com/file/131400156/e521c155/seguridad.html El plugin se instala en la carpeta /app/plugins/ El uso de este plugin es simple, primero debemos crear dos tablas en nuestra base de datos. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';&#160;CREATE&#160;&#160;TABLE IF NOT EXISTS `perfil` &#40;`id` INT NOT NULL AUTO_INCREMENT ,`nombre` VARCHAR&#40;45&#41; NULL ,PRIMARY KEY &#40;`id`&#41; [...]]]></description>
			<content:encoded><![CDATA[<p>Para descargar el plugin sigue éste enlace <a href="http://www.4shared.com/file/131400156/e521c155/seguridad.html">http://www.4shared.com/file/131400156/e521c155/seguridad.html</a><br />
El plugin se instala en la carpeta /app/plugins/<br />
El uso de este plugin es simple, primero debemos crear dos tablas en nuestra base de datos.<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="SQL"><div class="devcodeoverflow"><ol><li></li><li><span style="color: #993333; font-weight: bold;">SET</span> @OLD_UNIQUE_CHECKS<span style="color: #66cc66;">=</span>@@UNIQUE_CHECKS<span style="color: #66cc66;">,</span> UNIQUE_CHECKS<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span>;</li><li><span style="color: #993333; font-weight: bold;">SET</span> @OLD_FOREIGN_KEY_CHECKS<span style="color: #66cc66;">=</span>@@FOREIGN_KEY_CHECKS<span style="color: #66cc66;">,</span> FOREIGN_KEY_CHECKS<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span>;</li><li><span style="color: #993333; font-weight: bold;">SET</span> @OLD_SQL_MODE<span style="color: #66cc66;">=</span>@@SQL_MODE<span style="color: #66cc66;">,</span> SQL_MODE<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'TRADITIONAL'</span>;</li><li>&nbsp;</li><li><span style="color: #993333; font-weight: bold;">CREATE</span>&nbsp;&nbsp;<span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`perfil`</span> <span style="color: #66cc66;">&#40;</span></li><li><span style="color: #ff0000;">`id`</span> INT <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #66cc66;">,</span></li><li><span style="color: #ff0000;">`nombre`</span> VARCHAR<span style="color: #66cc66;">&#40;</span>45<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">,</span></li><li><span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span></li><li>ENGINE <span style="color: #66cc66;">=</span> InnoDB;</li><li>&nbsp;</li><li><span style="color: #993333; font-weight: bold;">CREATE</span>&nbsp;&nbsp;<span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`permiso`</span> <span style="color: #66cc66;">&#40;</span></li><li><span style="color: #ff0000;">`id`</span> INT <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #66cc66;">,</span></li><li><span style="color: #ff0000;">`autorizado`</span> TINYINT<span style="color: #66cc66;">&#40;</span>1<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">,</span></li><li><span style="color: #ff0000;">`perfil_id`</span> INT <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">,</span></li><li><span style="color: #ff0000;">`controlador`</span> VARCHAR<span style="color: #66cc66;">&#40;</span>45<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">,</span></li><li><span style="color: #ff0000;">`accion`</span> VARCHAR<span style="color: #66cc66;">&#40;</span>45<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">,</span></li><li><span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">,</span></li><li><span style="color: #993333; font-weight: bold;">INDEX</span> <span style="color: #ff0000;">`fk_permiso_perfil1`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`perfil_id`</span> <span style="color: #993333; font-weight: bold;">ASC</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">,</span></li><li>CONSTRAINT <span style="color: #ff0000;">`fk_permiso_perfil1`</span></li><li><span style="color: #993333; font-weight: bold;">FOREIGN</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`perfil_id`</span> <span style="color: #66cc66;">&#41;</span></li><li><span style="color: #993333; font-weight: bold;">REFERENCES</span> <span style="color: #ff0000;">`perfil`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span> <span style="color: #66cc66;">&#41;</span></li><li><span style="color: #993333; font-weight: bold;">ON</span> <span style="color: #993333; font-weight: bold;">DELETE</span> NO ACTION</li><li><span style="color: #993333; font-weight: bold;">ON</span> <span style="color: #993333; font-weight: bold;">UPDATE</span> NO ACTION<span style="color: #66cc66;">&#41;</span></li><li>ENGINE <span style="color: #66cc66;">=</span> InnoDB;</li><li>&nbsp;</li><li><span style="color: #993333; font-weight: bold;">SET</span> SQL_MODE<span style="color: #66cc66;">=</span>@OLD_SQL_MODE;</li><li><span style="color: #993333; font-weight: bold;">SET</span> FOREIGN_KEY_CHECKS<span style="color: #66cc66;">=</span>@OLD_FOREIGN_KEY_CHECKS;</li><li><span style="color: #993333; font-weight: bold;">SET</span> UNIQUE_CHECKS<span style="color: #66cc66;">=</span>@OLD_UNIQUE_CHECKS;</li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Luego, configurar en nuestro plugin el archivo app/plugins/seguridad/controllers/components/seguridad.php<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><ol><li></li><li><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$excepciones</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Pages'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>array<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'display'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Login'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>array<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'logout'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'admin_index'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'admin_logout'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Aquí debemos poner las acciones y controladores que no deben ser supervisados por el plugin con el formato array(&#8216;Controlador&#8217;=&gt;array(&#8216;accion1&#8242;, &#8216;accion2&#8242;,&#8230;,&#8217;accionN&#8217;)).<br />
Lo siguiente es añadir el plugin a nuestra aplicación, para esto, ponemos en /app/app_controller.php<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><ol><li></li><li><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$components</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Seguridad.Seguridad'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>y la función:<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><ol><li></li><li><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> beforeFilter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></li><li><span style="color: #000088;">$controlador</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>params<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'controller'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></li><li><span style="color: #000088;">$accion</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>params<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'action'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></li><li><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Seguridad<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>isException<span style="color: #009900;">&#40;</span><span style="color: #000088;">$controlador</span><span style="color: #339933;">,</span> <span style="color: #000088;">$accion</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></li><li><span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span></li><li><span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li><span style="color: #009900;">&#125;</span></li><li><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Seguridad<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>checkAuth<span style="color: #009900;">&#40;</span><span style="color: #000088;">$controlador</span><span style="color: #339933;">,</span> <span style="color: #000088;">$accion</span><span style="color: #339933;">,</span> <span style="color: #000088;">$perfil</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></li><li><span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span></li><li><span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li><span style="color: #009900;">&#125;</span></li><li><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>redirect<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/pages/denegado'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li><span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span></li><li><span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li><span style="color: #009900;">&#125;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Ahora vamos a <a href="http://nuestro-sitio.com/seguridad/seguridad_perfil">http://nuestro-sitio.com/seguridad/seguridad_perfil</a> y creamos los perfiles necesarios, al editarlos podemos darle la autorización de acceso a la acción correspondiente a cada controlador.</p>
<p><a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fvladzur.sangrederosas.cl%2F2009%2F09%2F09%2Fplugin-de-seguridad-para-cake%2F&amp;linkname=Plugin%20de%20seguridad%20para%20Cake" title="Digg" rel="nofollow" target="_blank"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fvladzur.sangrederosas.cl%2F2009%2F09%2F09%2Fplugin-de-seguridad-para-cake%2F&amp;linkname=Plugin%20de%20seguridad%20para%20Cake" title="Facebook" rel="nofollow" target="_blank"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fvladzur.sangrederosas.cl%2F2009%2F09%2F09%2Fplugin-de-seguridad-para-cake%2F&amp;linkname=Plugin%20de%20seguridad%20para%20Cake" title="Delicious" rel="nofollow" target="_blank"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fvladzur.sangrederosas.cl%2F2009%2F09%2F09%2Fplugin-de-seguridad-para-cake%2F&amp;linkname=Plugin%20de%20seguridad%20para%20Cake" title="Twitter" rel="nofollow" target="_blank"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p><p><a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fvladzur.sangrederosas.cl%2F2009%2F09%2F09%2Fplugin-de-seguridad-para-cake%2F&amp;linkname=Plugin%20de%20seguridad%20para%20Cake" title="Digg" rel="nofollow" target="_blank"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fvladzur.sangrederosas.cl%2F2009%2F09%2F09%2Fplugin-de-seguridad-para-cake%2F&amp;linkname=Plugin%20de%20seguridad%20para%20Cake" title="Facebook" rel="nofollow" target="_blank"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fvladzur.sangrederosas.cl%2F2009%2F09%2F09%2Fplugin-de-seguridad-para-cake%2F&amp;linkname=Plugin%20de%20seguridad%20para%20Cake" title="Delicious" rel="nofollow" target="_blank"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fvladzur.sangrederosas.cl%2F2009%2F09%2F09%2Fplugin-de-seguridad-para-cake%2F&amp;linkname=Plugin%20de%20seguridad%20para%20Cake" title="Twitter" rel="nofollow" target="_blank"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://vladzur.sangrederosas.cl/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://vladzur.sangrederosas.cl/2009/09/09/plugin-de-seguridad-para-cake/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
