why dont you like declarative authorization or cancan? i dont see why you
cant do what you described with any of those




On Wed, Sep 15, 2010 at 5:50 PM, tom <[email protected]> wrote:

>
>
>
> hi, since im not fully satisfied with all the permissions-systems out there
> i was wondering if there is another way to handle the whole thing. Based on
> my experience on what i have seen in bigger systems, permissions are usually
> handled a bit different.
> The Suggestion here (or my insanity) is coming from an ERP system which
> needs to handle *many* tables for *many* users with *many* different needs &
> settings. im talking about
> userX who can do that and (NOT) see that and so and so forth. So here comes
> my suggestion as well with questions since im sure this is not fully thougth
> through.
>
> Lets assume we have something like a Sales-Order:
>
>
> SalesOrderHeader
> -belongs_to: Customer
> -belongs_to: ShippingAgent
> -belongs_to: ShippingMethod
> -has_one: Comment
> -has_one: ShippingComment
> ...........
>
>
>
> SalesOrderLine
> -belongs_to: SalesOrderHeader
> -belongs_to: Stockkeepingunit
> -belongs_to: Item
> -belongs_to: ItemDiscountGroup
> -qty: integer
> ...........
>
> as u can see, a basic SalesOrder(SO) consists of 2 basic tables. The tricky
> part are the associations & the permissions:
>
> Suggestion A:
>
> Having a 'Security'-Table (call it whatever u want), holding this data:
> - name_of _the_table(or an ID id the models are somehow enumerated): String
> (value: eg SalesOrderHeader)
> - can_create: boolean
> - can_read: boolean
> - can_delete: boolean
> - can_update: boolean
> - filter: string (a reegular (my)sql-statemnt) (Value: eg: where
> Customer.Name != 'Sony')
> - user_id
>
> >>
> + this gives the ability to set permissions for each user on what he
> can('t) do on that model, including a filter.
> - this would need to be done for each table / model defined by the
> association too
> q: just giving the user access to the salesorderheader would that be
> enough? because of all the associations the user would need (to have(?))
> access to the related tables / models too, right!?
>
>
> Suggestion B
>
> Lets define a 'virtual / verbal' Permission-Model, eg:
> "SalesOrder".Obviously, we would need to store it somewhere too, so lets do
> the same, but a bit differentlty:
> - name: String (value: eg SalesOrder)
> - can_create: boolean
> - can_read: boolean
> - can_delete: boolean
> - can_update: boolean
> - filter: string (a reegular (my)sql-statemnt) (Value: eg: where
> Customer.Name != 'Sony')
> - user_id
>
> >> by giving him access to that he gets access (wr?) to all associated
> tables / models too. This needs to be stored too then. but then somethign
> else pops into my head: some people should be able to maintain basic
> maindata and some not, which kinda redirects back to Suggestion A....
>
> >> But maybe there is a way finding a merged solution out of both
> Suggestions, havent really thought through the whole thing though.
>
> Summary:
> i know this topic is a painful one, but def an important one, especially
> when u look into erntperise-scaled apps.
>
>
> Before i go further i would like to hear whatu guys think of "one cool"
> solutions which "just" fits. maybe we can come up with somehting, if not -
> oh well.But i hope u guys got the drift.
>
>
>
> regards tom
>
>
> ps: forgot the other part: even if a user needs to have different
> permissions on different SalesORder, that would basically be covered by the
> merged in Y-Table, which represents the "security". but thats part2 anyway
>
>
>
>
>
>
>
>
>
>
>
>  --
> 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]<rubyonrails-talk%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>

-- 
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