My architecture looks like this (simplified): I've got users with different privileges that create posts that undergo a certain lifecycle (created, reviewed, closed, stuff like that...).

Speaking in rails terms, a `class User has_many :posts`, but I want the users to see posts depending on their privileges. If a user is privileged, he should be able to see all posts, if not I want him to see only posts that have already been reviewed plus all of his own posts.

Right now, the Post model has a class method `for_user(user)` that simply checks the users privileges and returns the according posts. I understand, that's probalby not the Rails-way to do that, and I was wondering if it could be done something like that:

```
class User
  has_many :posts, :finder_sql => finder
  #[...]
  def finder
    if self.has_privileges? #simplified...
      all
    else
      where( '[...]' )
    end
  end

```

Unfortunately, this doesn't work as rails expects the :finder\_sql to be a string and a string only. Is there any other way to create the desired behaviour?