def crud(): tablename = request.args(0) action = request.args(1) id_ = request.args(2) if session.crud and session.crud.return_page: return_page = session.crud.return_page else: return_page = URL('admin_', 'manage_users') crud = Crud(shotdb) crud.settings.controller = 'admin_' crud.settings.create_next = return_page crud.settings.update_next = return_page crud.settings.update_deletable = True crud.settings.showid = True if(action == 'add'): crud_response = crud.create(tablename) elif(action == 'edit' and id_ != None): onaccept = None if tablename == 'auth_user': shotdb['auth_user']['registration_key'].writable = True elif tablename == 'config': crud.settings.update_deletable = False shotdb['config']['name'].writable = False # update the configuration object, drop the passed argument form onaccept = lambda form: config.update(shotdb) crud_response = crud.update(tablename, id_, onaccept = onaccept) else: crud_response = 'Nothing selected!' return dict(crud_response = crud_response)
), Field("active", "boolean"), Field("value", "string"), Field("description", "string"), ) # end of config # Create all tables required for authentication and the wiki auth = ShotAuth(shotdb, controller="access", function="user") # Add custom columns auth.settings.extra_fields["auth_user"] = [Field("person", shotdb.person), Field("sale_numbers", "list:integer")] auth.define_tables(username=True, signature=True) auth.settings.create_user_groups = None auth.settings.manager_actions = dict(db_admin=dict(role="admin", heading="Manage Database", tables=shotdb.tables)) # This error message is deliberately defined here and not in controller access auth.messages.access_denied = "Zugriff verweigert!" # define the wiki database tables auth.shotwiki(resolve=False) # perform update of the configuration parameters config.update(shotdb) # version number for static assets response.static_version = "0.0.6"