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 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, auth_permission.table_name FROM auth_permission JOIN auth_group ON auth_group.id = auth_permission.group_id JOIN auth_membership ON auth_membership.group_id = auth_group.id JOIN auth_user ON 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, 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]> 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=='**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', > '%(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 > >

