One more thing -- you can override the default /appadmin/manage/auth by providing an "auth" key in auth.settings.manager_actions with a custom dict for that action (this makes it possible to specify a custom heading or limit which Auth tables are included). In that case, you'll still get some special Auth related customizations (re-labeling some columns and links to more user-friendly labels, hiding ID columns, setting default sort order, etc.) -- if you don't want those customizations and instead want complete control, then just create a custom manager_action with a name other than "auth".
Anthony On Friday, June 14, 2013 12:13:17 PM UTC-4, Anthony wrote: > > Trunk now includes some new functionality in appadmin to allow specially > designated administrative users of an app to manage specific tables in the > database. > > > <https://lh4.googleusercontent.com/-B1AhpU7hOFg/UbtG1BQ0I9I/AAAAAAAABf0/f4tl0Is3TN4/s1600/appadmin.png> > > First, there is /appadmin/manage/auth, which is a special page > specifically for managing Auth users, roles, and permissions (see > screenshot above). Just create an Auth group that is to be allowed access > to this page and specify the "role" of that group in > auth.settings.auth_manager_role. Then anyone assigned to that Auth group > will have access to the page. > > You can also create any number of custom db management pages much like the > /appadmin/manage/auth page via the new auth.settings.manager_actionssetting, > which is a dict of dicts. An example looks like this: > > auth.settings.manager_actions = dict( > db=dict(role='Admin', heading='Manage Database', tables=db.tables), > things=dict(role='Thing Manager', heading='Manage Things', db=other_db > , > tables=['things', 'stuff', 'more_stuff']), > content=dict(role='Content Manager', > tables=[content_db.articles, content_db.recipes,content_db > .comments]) > ) > > The keys of the auth.settings.manager_actions dict are URL args that go > after /appadmin/manage -- so the above allows /appadmin/manage/db, > /appadmin/manage/things, and /appadmin/manage/content. > > Each item in auth.settings.manager_actions is a dict with "role", > "heading", "tables", and "db" keys: > > - *role*: Specifies the "role" of the Auth group that should be > allowed to access the page. > - *heading*: Specifies the heading to appear on the page, though it is > optional -- if there is no "heading", it will use 'Manage %s' % > request.args(0).replace('_', ' ').title() instead. > - *tables*: A list of DAL tables to include on the page. It can be > either a list of table names or actual DAL table objects. > - *db*: Specifies the DAL object that contains the tables to be > managed (you can specify the DAL object itself, or its variable name, > which > will be looked up in globals()). The "db" key is optional -- if > "tables" is a list of DAL table objects, the table objects themselves > determine the db; and if "tables" is a list of table names, auth.db will > be > used if no "db" key is specified (auth.db is the database used for the > Auth > tables, which is typically the main app database). > > Note, access to these pages is controlled by the app's own Auth system, > not by the "admin" app (as with the rest of appadmin). > > Try it out and let us know if you run into any problems. > > Anthony > > > -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.