Hi,<br><br>I&#39;m mew to this rules stuff, and although I&#39;ve looked at rules engines such as Corticon before, I got introduced to JBoss Rules through JBoss Seam&#39;s security mechanism.<br><br>I&#39;m trying to expand on Seam&#39;s built in functionality to assess a user&#39;s permissions. My use case is that a user of the system may or may not have permission to a resource based on the user&#39;s role AND the current date. The system accepts certain actions only if &quot;now&quot; is between a certain start and end date. What I&#39;d like to do is something like this:
<br><br>rule CanDoHisStuff<br>&nbsp; activation-group &quot;permissions&quot;<br>when<br>&nbsp; c: PermissionCheck(name == &quot;stuff&quot;, action == &quot;do&quot;, granted = false)<br>&nbsp; now: new Date()&nbsp; &lt;--------------------------------------------------------------How can I accomplish this?
<br>&nbsp; ap: AppProps()<br>&nbsp; Role(name == &quot;A Role&quot;)<br>&nbsp;eval(now &gt;= ap.startDate, now &lt;= ap.endDate)&nbsp; <br>then<br>&nbsp; c.grant();<br>end;<br><br>Now, I understand that in my code, I could assert an object &quot;now&quot;. However, a lot of the security is hidden behind the scenes in Seam. For example, this rules will be fired from an XML definition file. 
E.g.<br><br>&nbsp;&nbsp;&nbsp; &lt;page view-id=&quot;/restricted/doStuff.xhtml&quot;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;restrict&gt;#{s:hasPermission(&#39;stuff&#39;, &#39;do&#39;, null)}&lt;/restrict&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;navigation from-action=&quot;#{
createStuffManager.yesConfirmSave}&quot;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;end-conversation/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;redirect view-id=&quot;/restricted/viewStuff.xhtml&quot;/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/navigation&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/page&gt;<br>
<br>While I could start extending Seam&#39;s security model, that seems a bit invasive for such a simple task.<br><br>Thanks<br><br>/Kris<br><br><br><br>