On 7 January 2011 20:59, Alpha Blue <[email protected]> wrote:
> Colin Law wrote in post #973053:
>> What I don't immediately see is how that links in to update_attributes
>> to prevent particular columns being updated.
>>
>> Colin
>
> You can apply the same authorization on fields within models.  If you
> have for instance 3 fields that should be updatable based on particular
> action responders, you can have the model update_attributes based on the
> currently stored value in the database, or the value being sent via
> params to the model based on bitfield actions accessible to the model.

I still don't understand how you link the authorisation into
update_attributes.  Do you override update_attributes in the model, or
are you doing it in the validations or what?

Colin

>
> In laymans terms, its like saying:
>
> can_model(update_myfieldname, in_this_action, mymodel)
>
> .. if the model's bitfield allows the update of the field, matching the
> authorization bitfield within "in_this_action", it proceeds with the
> params for the field value, otherwise, it just returns the currently
> stored value.
>
> It's not difficult.  It may seem complicated at first, but it's actually
> really simple to implement.
>
> You could apply the bitfield authorization in the view (which is similar
> to what you proposed with new_model?, which keeps the field from being
> entered, but doesn't restrict a post hack.  You could add another layer
> in the controller, if you wanted to to decide which actions are usable,
> and/or apply merged params, removing the duplicated field before
> merging, and sending to the model... and/or applying bitfield
> permissions in the model.  While this is definitely overkill IMHO, with
> a system in place, you only have to add "one" line of code to the view,
> one line of code to the controller, and one line of code to the model.

I get all the rest, it is the one line of code in the model that still
is unclear.  What is the line and where does it go?

Colin

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to