Not sure if this applies to your example but since the permission is a full 
ruby method you can use any ruby code.  You might want to separate out 
complicated logic into a helper method for one.  Secondly, early 
termination can simplify a lot of permissions code:

  return false if field.in?(blacklisted_fields)
  return true if state.active?
  # further tests below

On Tuesday, October 6, 2015 at 11:58:04 AM UTC-6, Nathan Peters wrote:
>
> I have a number of view_permitted declarations kind of like this:
>
>
> if (self.state == 'active') then
>
> return true
>
> end
>
>
> Which works but is getting a bit complicated as I have some detailed 
> permission logic. But now I am needing to *also* disable views on certain 
> fields. Something like this works:
>
>
> if (self.state == 'active') then
>
> if(field == :userdescription) then
>
> return false
>
> end
>
> return true
>
> end
>
>
> ...and records with 'active' state are shown but the :userdescription 
> field is blocked. But I have a number of fields to block. I considered 
> seeing if I can do something like field.in?(array_of_fields) and keep the 
> large field lists out of the permission code. But it's probably going to 
> leave me with some extremely non-elegant code (not that it is great now).
>
>
> Is there a better way to handle something like this?
>
>
> Thanks,
>
> Nathan
>

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to hobousers+unsubscr...@googlegroups.com.
To post to this group, send email to hobousers@googlegroups.com.
Visit this group at http://groups.google.com/group/hobousers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to