The bug-tracker has this quite common problem, where we want to
provide a drop-down of users to pick from to assign bugs to, but we
don't want that list to get too long.
Here's the bug:
http://clients.museatech.net/bug-tracker/bugs/bug?bug%5fnumber=2
For now, I've implemented a very sucky solution, where I include a
call to the acs_permission__permission_p PL/pgSQL function in the
where clause, to check if each and every user in cc_users has write
permission on my bug tracker package. Baaad bad boy!
So what is the good way to solve this problem?
A few suggestions:
1) Have the package instance maintain explicit "membership",
creating some pages to handle this, possibly using acs_rels to store
the membership. Or you could create a user group for the package
instance. This sounds like a lot of work.
2) Use the members of the nearest ancestor subsite's application
group. Not that people would know how to use that user interface.
3) Let you assign anyone you want, but maintain a "most recently
used" list of users that you've assigned (we maintain this list for
each individual user). Last option in the list is "Other...",
which'll take you to another page where you can search for your
preferred user by name/email/whatever. We could make a totally
general facility for this in the core (or the templating package) if
there's a desire for this.
These three ideas could also be combined, i.e., have a MRU list, and
when you say "Other...", we only list people with write permission,
who belong to the nearest subsite's application group.
Any other suggestions out there?
This is a pretty serious issue for sites with lots of users. And we
do want sites with lots of users, no? :)
/Lars