<?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>Technócil &#187; cakephp</title>
	<atom:link href="http://technocil.com/category/cakephp/feed/" rel="self" type="application/rss+xml" />
	<link>http://technocil.com</link>
	<description></description>
	<lastBuildDate>Tue, 20 Apr 2010 22:15:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Introdução ao ACL do CakePHP</title>
		<link>http://technocil.com/2010/04/20/introducao-ao-acl-do-cakephp/</link>
		<comments>http://technocil.com/2010/04/20/introducao-ao-acl-do-cakephp/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 22:15:05 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Desenvolvimento web]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ACL]]></category>
		<category><![CDATA[ACO]]></category>
		<category><![CDATA[ARO]]></category>
		<category><![CDATA[controle de acesso]]></category>

		<guid isPermaLink="false">http://technocil.com/?p=343</guid>
		<description><![CDATA[E ae blz?
Novamente, como sempre, igual todas vezes anteriores, mais um post meu saiu de uma conversa que tive no gtalk/msn com alguém, dessa vez foi uma sugestão do João que escreve aqui no technócil comigo, falar sobre o Access Control Lists do CakePHP.
Então vamo lá, 
Eu comecei esse post planejando falar sobre ACL num [...]]]></description>
			<content:encoded><![CDATA[<p>E ae blz?</p>
<p>Novamente, como sempre, igual todas vezes anteriores, mais um post meu saiu de uma conversa que tive no gtalk/msn com alguém, dessa vez foi uma sugestão do <a href="http://www.joaovagner.com.br/">João</a> que escreve aqui no technócil comigo, falar sobre o <strong><a href="http://book.cakephp.org/view/171/Access-Control-Lists">Access Control Lists</a></strong> do <strong><a href="http://cakephp.org/">CakePHP</a></strong>.</p>
<p>Então vamo lá, </p>
<p>Eu comecei esse post planejando falar sobre ACL num post só, mas vi que seria impossível por que o post ia ficar imenso e no final dele você já teria esquecido o começo então resolvi separar o post em partes.</p>
<p>&#8211;Introdução ao ACL do CakePHP<br />
&#8211;ACL na prática, controla os acesso tudo amigo!&#8230; (hehe o final é título provisório, to criativo hoje)</p>
<p>O objetivo deste post é só introduzir <del datetime="2010-04-20T21:12:57+00:00">huhuhu!</del> os programadores aos conceitos do ACL, <del datetime="2010-04-20T21:12:57+00:00">até por que postar tudo deixaria o post grande pra c@#%&#038;*#, etc, etc&#8230;</del> que são na verdade o mais complicado de se entender, depois que os conceitos já estão, digamos, entendidos, a implementação é bem mais rápida&#8230;</p>
<p>O Access Control Lists, <strong>O mano ACL</strong> para os íntimos, <strong>é um componente que faz parte do core do framework CakePHP</strong>, e tem por finalidade <strong>oferecer uma forma poderosa de controle e níveis de acesso</strong> a determinadas áreas das aplicações. </p>
<p>Uma coisa <strong>muito importante que confunde muito</strong> quem está estudando o ACL pela primeira vez é, <strong>o ACL não faz autenticação ele só facilita a gerência dos níveis, usuários e áreas de acesso</strong>.</p>
<p><strong>Resumindo, o que ele faz é dizer quem pode acessar o que, e só. </strong></p>
<p>O ACL usa dois tipos de definições como convenção para facilitar o controle de acesso, são elas:</p>
<p><strong>ACO</strong> = Access Control Object, algo que é acessado.</p>
<p><strong>ARO</strong> = Access Request Object, quem ou o que acessa algo.</p>
<p>Fazendo uma analogia ao modelo que é geralmente usado pela grande maioria dos programadores, um exemplo de como seriam identificados os controles e níveis de acesso do blog usando ACL, você teria o seguinte cenário.</p>
<p><strong>AROs &#8211; Tipos/Grupos de usuários, usuários</strong><br />
Tipos de Usuários:<br />
&#8211;Admin<br />
&#8211;Editors<br />
&#8211;Guest</p>
<p>Usuários:<br />
&#8211;Tobias<br />
&#8211;João Vagner<br />
&#8211;Editor<br />
&#8211;Visitante</p>
<p><strong>ACOs &#8211; Áreas protegidas</strong><br />
&#8211;Posts<br />
&#8211;Páginas<br />
&#8211;Links<br />
&#8211;Plug-ins<br />
&#8211;Ferramentas<br />
&#8211;Usuários<br />
&#8211;Configurações</p>
<p>O ACL tem uma estrutura do tipo árvore e que pode aceitar heranças de permissões de acesso.</p>
<p>Seguindo o exemplo acima poderia ter uma árvore de permissões da seguinte maneira.<br />
<code><br />
Admins (permissões de acesso: todas as áreas)<br />
--João Vagner (herda todas as permissões do grupo)<br />
--Tobias (herda todas as permissões do grupo)</p>
<p>Editors ( permissões de acesso: ( posts (read,add,edit) )<br />
--editor (herda permissões do grupo, usuários (edit:id = editor.id)) </p>
<p>Guest (posts,pages,links(read))<br />
--visitante(herda permissões)<br />
</code></p>
<p>WTF? É o que você que nunca mexeu com ACL deve estar no momento né? Relaxa vou explicar o que eu quis dizer com o texto em negrito acima.</p>
<p>Do ponto de vista do ACL tanto os <strong>grupos de usuário</strong>, quanto os <strong>usuários</strong> são coisas do mesmo tipo,  <strong>são coisas que acessam coisas</strong>, e graças a metodologia de árvore essas coisas <strong>podem herdar</strong> permissões de acesso.</p>
<p>No caso do primeiro grupo, Admins, não há nada de especial ou misterioso, o grupo admin tem acesso a tudo e todos os usuários pertencentes a esse grupo herda suas permissões, moleza se você precisa de um controle de acesso simples assim você nem precisa de ACL.</p>
<p>Vamos ao segundo exemplo, esse sim tem algo de interessante e pra alguns pode ter sido meio confuso.</p>
<p><code>Editors ( permissões de acesso: ( posts (read,add,edit) )</code><br />
Traduzindo: O grupo Editors tem acesso ao controle posts e tem permissões para efetuar read, add, edit.</p>
<p>O que são essas permissões de read, add, edit? São permissões que você define de acordo com a sua necessidade, eu usei essas por que são as mais básicas, quase um default para exemplos.</p>
<p>Continuando&#8230;<br />
<code>--editor (herda permissões do grupo, usuários (edit:id = editor.id))</code><br />
Traduzindo: O usuário (ARO) editor <strong>herda as permissões</strong> do grupo editors e tem a permissão específica de edit a determinada id do controllers usuários, o que significa que <strong>ele pode editar as próprias informações de usuário, mas não pode editar os dados de outros usuários</strong>.</p>
<p><code>Guest (posts,pages,links(read))<br />
--visitante(herda permissões)</code><br />
E para todos os visitantes a permissão de ler posts, pages e links.</p>
<p>Como o objetivo desse post é fazer os conceitos serem entendidos não vou postar códigos eles ficam pro próximo post, bom feriado pra todos, e novamente, como sempre, igual a todas as vezes, dúvidas, sugestões e puxões de orelha os comentários tão ai pra isso.</p>
<p>flw ae :)</p>
]]></content:encoded>
			<wfw:commentRss>http://technocil.com/2010/04/20/introducao-ao-acl-do-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encontro de desenvolvedores CAKE Sao Paulo</title>
		<link>http://technocil.com/2009/06/17/encontro-de-desenvolvedores-cake-sao-paulo/</link>
		<comments>http://technocil.com/2009/06/17/encontro-de-desenvolvedores-cake-sao-paulo/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 20:53:30 +0000</pubDate>
		<dc:creator>João Vagner</dc:creator>
				<category><![CDATA[Desenvolvimento web]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://technocil.com/?p=321</guid>
		<description><![CDATA[Bom dia pessoal, 
Estive presente no Encontro de desenvolvedores CAKE em Sao Paulo, e posso dizer que foi um bom encontro, palestras de nivel muito bom, aonde foi abordado desde a criação de um helper ate a criação, plugins, ambiente de testes, brincadeiras e criação com o bake. 
Algumas palestras em destaques para  TDD [...]]]></description>
			<content:encoded><![CDATA[<p>Bom dia pessoal, </p>
<p>Estive presente no Encontro de desenvolvedores CAKE em Sao Paulo, e posso dizer que foi um bom encontro, palestras de nivel muito bom, aonde foi abordado desde a criação de um helper ate a criação, plugins, ambiente de testes, brincadeiras e criação com o bake. </p>
<p>Algumas palestras em destaques para  TDD &#8211; Test-Driven Development e Testes Automatizados com CakePHP, aonde foram abordados assuntos que vem ja a algum tempo sendo levado em conta que e desde a engenharia de software ate a cobertura de testes dos codigos. Abordados tipos de testes: Unitarios, Aceitação, entre outros.  Palestras de <a href="http://blog.rodrigorm.com.br/">Rodrigo Moyle</a> e José Pedrini. </p>
<p>Apos isso uma outra palestra de nivel incrivel sobre criação e consumo de webservices com CAKEPHP que foi criado e desenvolvido um webservive utilizando REST. Parabéns ao Carlos Pires da <a href="http://2km.com.br/">2KM</a> que veio de Minas para nos prestegiar com sua palestra e sua participação no evento.</p>
<p>Um grade destaque também a palestra do Rafael Santos, que nos mostrou como construir uma plataforma RAD para Flex com CakePHP e Fake, apresentando inovações como o FAKE e integrações bem legais entre Flex e CAKEPHP, aonde se utiliza todos os recursos, desde validations, ate os models e controllers, nao deixando a desejar nem um pouco. </p>
<p>Parabéns aos Organizadores, ao Renan Gonçalves que se esforçou e fez acontecer e valer a pena o evento. Troca de conhecimentose fortalecimento da comunidade CAKEPHP e PHP no Brasil e em São Paulo.</p>
<p><strong>Minha Palestra:<br />
</strong></p>
<div style="width:425px;text-align:left" id="__ss_1599402"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/JoaoVagner/slide-cake-sp?type=powerpoint" title="Criando e Usando Helpers">Criando e Usando Helpers</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slidecakesp-090617150924-phpapp02&#038;rel=0&#038;stripped_title=slide-cake-sp" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slidecakesp-090617150924-phpapp02&#038;rel=0&#038;stripped_title=slide-cake-sp" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">PDF documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/JoaoVagner">JoaoVagner</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://technocil.com/2009/06/17/encontro-de-desenvolvedores-cake-sao-paulo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
