<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.lostechies.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>new ThoughtStream("Derick Bailey"); - All Comments</title><link>http://www.lostechies.com/blogs/derickbailey/default.aspx</link><description>Question Everything. Especially Your Own Assumptions.</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>re: How To? Highly Complex Query Generating Based On Security Needs</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22542</link><pubDate>Tue, 30 Jun 2009 17:52:12 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22542</guid><dc:creator>Doug Ferguson</dc:creator><description>&lt;p&gt;You might consider using a collection of specification patterns (Evans). &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Given the fact that you need to see the difference between &amp;quot;not-authorized&amp;quot; and &amp;nbsp;&amp;quot;does not exist&amp;quot;, you may want to pull the releveant records for a vet even if the Conselor can&amp;#39;t have access to the record. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Then, you can run the results through a Specification rule, or a series of them, to determine if the conselor has access to the particular record. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;If not data is returned from the query, you know the record does not exist. &amp;nbsp;If a record IS returned, but the combination of the conselor and the vet fail the specification rule, you can return &amp;quot;not-authorized.&amp;quot;&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a link to a specification implementation using generics. &amp;nbsp;I found it helpful and modified it to accept two objects. &amp;nbsp;You could pass in your conselor and the vet dto&amp;#39;s. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://devlicio.us/blogs/jeff_perrin/archive/2006/12/13/the-specification-pattern.aspx"&gt;devlicio.us/.../the-specification-pattern.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This may or may not work from a performance standpoint depending upon how many records are being returned/evaluated. &amp;nbsp;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22542" width="1" height="1"&gt;</description></item><item><title>re: How To? Highly Complex Query Generating Based On Security Needs</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22484</link><pubDate>Sun, 28 Jun 2009 22:24:15 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22484</guid><dc:creator>JC Grubbs</dc:creator><description>&lt;p&gt;What about just building a set of composable methods that expose IQueryable&amp;lt;T&amp;gt; and then building up a query based on the current context&amp;#39;s security concerns. &amp;nbsp;As you chain these methods together the query gets more and more limiting. &amp;nbsp;It&amp;#39;s not a very &amp;quot;slick&amp;quot; way of doing it but the composability of IQueryable is extremely powerful.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22484" width="1" height="1"&gt;</description></item><item><title>Arjan&amp;#8217;s World    &amp;raquo; LINKBLOG for June 26, 2009</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22469</link><pubDate>Fri, 26 Jun 2009 20:17:58 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22469</guid><dc:creator>Arjan’s World    » LINKBLOG for June 26, 2009</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Arjan&amp;#8217;s World &amp;nbsp; &amp;nbsp;&amp;raquo; LINKBLOG for June 26, 2009&lt;/p&gt;
&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22469" width="1" height="1"&gt;</description></item><item><title>re: How To? Highly Complex Query Generating Based On Security Needs</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22452</link><pubDate>Fri, 26 Jun 2009 03:19:23 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22452</guid><dc:creator>MIke</dc:creator><description>&lt;p&gt;I wonder if you can take advantage of NHibernate Filters here and attach a security to the session at runtime to get let NH do the heavy lifting for you.&lt;/p&gt;
&lt;p&gt;Might be simpler if this is the only place in your app you have encountered this&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22452" width="1" height="1"&gt;</description></item><item><title>re: How To? Highly Complex Query Generating Based On Security Needs</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22451</link><pubDate>Fri, 26 Jun 2009 01:23:28 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22451</guid><dc:creator>Adam Tybor</dc:creator><description>&lt;p&gt;+1 to Rhino Security. &amp;nbsp;The really cool part is how it transparently attaches to your domain then applies the necessary nhibernate detached criteria so filtering can happen in the query at the db level. &amp;nbsp;No more client side filtering and applying rules on huge result sets!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22451" width="1" height="1"&gt;</description></item><item><title>re: How To? Highly Complex Query Generating Based On Security Needs</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22441</link><pubDate>Thu, 25 Jun 2009 21:51:29 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22441</guid><dc:creator>Gilligan</dc:creator><description>&lt;p&gt;Exactly. Rhino Security Permissions have three &amp;quot;dimensions&amp;quot; : User/User Groups, Operations (which are hierarchal), and optionally Entities/Entity Groups. &lt;/p&gt;
&lt;p&gt;This allows us to break any security rule down into a simple &amp;quot;this user/group either can or cannot perform these operations on this entity/entity group&amp;quot;. Rhino Security handles the aggregation of permissions (eg &amp;nbsp;a user is a member of a group but also has its own permissions for an operation) automatically. &lt;/p&gt;
&lt;p&gt;Trust me once you implement Rhino Security you will never look back and you will wonder how you ever managed with only Asp.Net&amp;#39;s role system before.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22441" width="1" height="1"&gt;</description></item><item><title>re: How To? Highly Complex Query Generating Based On Security Needs</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22439</link><pubDate>Thu, 25 Jun 2009 21:22:25 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22439</guid><dc:creator>derick.bailey</dc:creator><description>&lt;p&gt;@Gilligan,&lt;/p&gt;
&lt;p&gt;so what you&amp;#39;re saying is that the permission would be stored in a table, to say &amp;quot;this couselor (id x) can see this veteran (id y)&amp;quot; and then at the time the check needs to be made, it would look at that cached permission list? is that close to what you&amp;#39;re saying Rhino.Security does?&lt;/p&gt;
&lt;p&gt;that&amp;#39;s certainly a different concept than what I was trying to do, but is sparking some interesting thoughts in the back of my head... definately makes me want to look at Rhino Security further.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22439" width="1" height="1"&gt;</description></item><item><title>re: How To? Highly Complex Query Generating Based On Security Needs</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22438</link><pubDate>Thu, 25 Jun 2009 21:15:03 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22438</guid><dc:creator>Gilligan</dc:creator><description>&lt;p&gt;We have similar complexity in parts of our system, like only retail members can see these items but everyone can see these other items.&lt;/p&gt;
&lt;p&gt;I used Rhino security and put it in a separate bounded context. Rhino security can attach security criteria to any query. It also has the ability to relate permissions to a specific entity. So I created a set of security listeners that represent my security rules. The listeners listen to appropriate events and apply the needed security rules. Example for Rule #4. I would create listeners for the following events: Veteran added to region, veteran removed from region, Counselor added to Regional Office, and Counselor removed from regional office. When any of these events occurs the listener will add/remove the appropriate permissions for the Counselor/Veteran pair. Rhino Security handles everything else. &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22438" width="1" height="1"&gt;</description></item><item><title>re: How To? Highly Complex Query Generating Based On Security Needs</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22437</link><pubDate>Thu, 25 Jun 2009 21:09:36 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22437</guid><dc:creator>derick.bailey</dc:creator><description>&lt;p&gt;@Tuna,&lt;/p&gt;
&lt;p&gt;Thanks. I spent the last 30 minutes trying to read up on it. It seems fairly complex, off-hand, but it certainly looks like it is worth diving into, to see if it can help.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22437" width="1" height="1"&gt;</description></item><item><title>How To? Highly Complex Query Generating Based On Security Needs - Derick Bailey - Los Techies</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22436</link><pubDate>Thu, 25 Jun 2009 21:00:20 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22436</guid><dc:creator>DotNetShoutout</dc:creator><description>&lt;p&gt;Thank you for submitting this cool story - Trackback from DotNetShoutout&lt;/p&gt;
&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22436" width="1" height="1"&gt;</description></item><item><title>re: How To? Highly Complex Query Generating Based On Security Needs</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/25/how-to-highly-complex-query-generating-based-on-security-needs.aspx#22432</link><pubDate>Thu, 25 Jun 2009 20:51:28 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22432</guid><dc:creator>Tuna Toksoz</dc:creator><description>&lt;p&gt;In case you haven&amp;#39;t seen Rhino.Security&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://ayende.com/Blog/archive/2008/01/22/Rhino-Security-Overview-Part-I.aspx"&gt;ayende.com/.../Rhino-Security-Overview-Part-I.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am not sure if can do exactly what you want, but it is worth looking.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22432" width="1" height="1"&gt;</description></item><item><title>re: A Kanban Is Just A Signal To Do Work</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/18/a-kanban-is-just-a-signal-to-do-work.aspx#22359</link><pubDate>Mon, 22 Jun 2009 21:10:59 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22359</guid><dc:creator>Henrik Mårtensson</dc:creator><description>&lt;p&gt;You are right that a kanban does not necessarily imply a pull system. A kanban is just a token. However, a kanban system, which is a technical term for a process control system created by Taichi Ohno, is _always_ a pull system.&lt;/p&gt;
&lt;p&gt;It is also helpful to know that in a kanban system, there are two types of kanban:&lt;/p&gt;
&lt;p&gt;Work-In-Process kanban, i.e. the Post-It notes on your board.&lt;/p&gt;
&lt;p&gt;Withdrawal kanban, i.e. the stikki clips on your board&lt;/p&gt;
&lt;p&gt;Here is an article about defining kanban: &lt;a rel="nofollow" target="_new" href="http://kallokain.blogspot.com/2009/06/defining-kanban.html"&gt;kallokain.blogspot.com/.../defining-kanban.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The article was picked up by DZone recently.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22359" width="1" height="1"&gt;</description></item><item><title>re: Cloning Or Converting Linux VM From VMWare Workstation To ESX Server: ETH0 Gone. ETH1 Available?</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/20/cloning-or-converting-linux-vm-from-vmware-workstation-to-esx-server-eth0-gone-eth1-available.aspx#22341</link><pubDate>Sun, 21 Jun 2009 21:04:21 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22341</guid><dc:creator>Nick Leverton</dc:creator><description>&lt;p&gt;This is a product of the last few versions of udev and has bitten me equally on both Debian and Fedora (Fedora perhaps even the more so cos it&amp;#39;s hit more machines). &amp;nbsp; Both in the case where you change one interface card and in the case where you change the entire platform, I would think it more useful to enumerate new network cards into the places of those which are no longer present, rather than continuing from eth2, eth3 etc.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22341" width="1" height="1"&gt;</description></item><item><title>Cloning Or Converting Linux VM From VMWare Workstation To ESX Server: ETH0 Gone. ETH1 Available? | Debian-News.net - Your one stop for news about Debian</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/20/cloning-or-converting-linux-vm-from-vmware-workstation-to-esx-server-eth0-gone-eth1-available.aspx#22336</link><pubDate>Sun, 21 Jun 2009 13:50:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22336</guid><dc:creator>Cloning Or Converting Linux VM From VMWare Workstation To ESX Server: ETH0 Gone. ETH1 Available? | Debian-News.net - Your one stop for news about Debian</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Cloning Or Converting Linux VM From VMWare Workstation To ESX Server: ETH0 Gone. ETH1 Available? | Debian-News.net - Your one stop for news about Debian&lt;/p&gt;
&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22336" width="1" height="1"&gt;</description></item><item><title>re: A Kanban Is Just A Signal To Do Work</title><link>http://www.lostechies.com/blogs/derickbailey/archive/2009/06/18/a-kanban-is-just-a-signal-to-do-work.aspx#22255</link><pubDate>Fri, 19 Jun 2009 20:57:22 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:22255</guid><dc:creator>jdn</dc:creator><description>&lt;p&gt;I guess I&amp;#39;m not sure why it is really a concern to call it a kanban board. &amp;nbsp;I think anyone learning the very basics of kanban can easily grasp that a kanban board is a task listing thingy with queues that have numerical limits and cards/post-its/whatever that are the numerals.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s obviously only the beginning of learning Kanban/Pull/Lean/Whatever, but it is so easy to grasp and it gets at the heart of the matter, I think.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.lostechies.com/aggbug.aspx?PostID=22255" width="1" height="1"&gt;</description></item></channel></rss>