Richard

Thanks for this, but I'm really trying to stay away from extra database coding.

    -Jim

On 4/19/2012 4:17 PM, Richard Vézina wrote:
If you use postgres this SQL could help if you just want something really quick :

-- View: v_permission_summary

-- DROP VIEW v_permission_summary;

CREATE OR REPLACE VIEW v_permission_summary AS
SELECT auth_permission.id <http://auth_permission.id> AS permission_summary_id, (auth_user.first_name::text || ' '::text) || auth_user.last_name::text AS user_name, auth_user.initials, auth_group.role, auth_permission.name <http://auth_permission.name>, auth_permission.table_name
   FROM auth_permission
JOIN auth_group ON auth_group.id <http://auth_group.id> = auth_permission.group_id JOIN auth_membership ON auth_membership.group_id = auth_group.id <http://auth_group.id> JOIN auth_user ON auth_user.id <http://auth_user.id> = auth_membership.user_id ORDER BY (auth_user.first_name::text || ' '::text) || auth_user.last_name::text, auth_group.role, auth_permission.name <http://auth_permission.name>, auth_permission.table_name;

ALTER TABLE v_permission_summary OWNER TO richard;

Remove the initials field, since you probably dont have it in your auth_user...

I use this view for which I define a model, that offcorse can't be update...

Richard

On Thu, Apr 19, 2012 at 5:06 PM, Jim Steil <[email protected] <mailto:[email protected]>> wrote:

    Hi

    I'm looking for the most concise syntax to get a list of users
    that have a a certain permission.

    Here is what I have:

       groups = db((db.auth_permission.name
    
<http://db.auth_permission.name>=='load')&(db.auth_permission.table_name=='railLoad'))._select(db.auth_permission.group_id)
       userids =
    
db(db.auth_membership.group_id.belongs(groups))._select(db.auth_membership.user_id)
       userQuery = db.auth_user.id.belongs(userids)

       db.railLoad.loadedById.requires = IS_IN_DB(db(userQuery),
    'auth_user.id <http://auth_user.id>',
                                                  '%(lastFirst)s',
                                                  zero='...choose one...')

    What I'm doing is filtering a dropdown.  Want to limit the
    selections to just the people with a specific permission.  This
    way works, but seems like too much code for something in web2py.

       -Jim


Reply via email to