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