Again pretty much the scaffold code plus the tutorial changes I think. # -*- coding: utf-8 -*- # ------------------------------------------------------------------------- # This is a sample controller # this file is released under public domain and you can use without limitations # -------------------------------------------------------------------------
# ---- example index page ---- def index(): images = db().select(db.image.ALL, orderby=db.image.title) return dict(images=images) def show(): image = db.image(request.args(0, cast=int)) or redirect(URL('index')) db.post.image_id.default = image.id form = SQLFORM(db.post) if form.process().accepted: response.flash = 'your comment is posted' comments = db(db.post.image_id == image.id).select(orderby=db.post.id) return dict(image=image, comments=comments, form=form) def download(): return response.download(request, db) def user(): return dict(form=auth()) # ---- API (example) ----- @auth.requires_login() def api_get_user_email(): if not request.env.request_method == 'GET': raise HTTP(403) return response.json({'status':'success', 'email':auth.user.email}) # ---- Smart Grid (example) ----- @auth.requires_membership('admin') # can only be accessed by members of admin groupd def grid(): response.view = 'generic.html' # use a generic view tablename = request.args(0) if not tablename in db.tables: raise HTTP(403) grid = SQLFORM.smartgrid(db[tablename], args=[tablename], deletable=False, editable=False) return dict(grid=grid) # ---- Embedded wiki (example) ---- def wiki(): auth.wikimenu() # add the wiki to the menu return auth.wiki() # ---- Action for login/register/etc (required for auth) ----- def user(): """ exposes: http://..../[app]/default/user/login http://..../[app]/default/user/logout http://..../[app]/default/user/register http://..../[app]/default/user/profile http://..../[app]/default/user/retrieve_password http://..../[app]/default/user/change_password http://..../[app]/default/user/bulk_register use @auth.requires_login() @auth.requires_membership('group name') @auth.requires_permission('read','table name',record_id) to decorate functions that need access control also notice there is http://..../[app]/appadmin/manage/auth to allow administrator to manage users """ return dict(form=auth()) # ---- action to server uploaded static content (required) --- @cache.action() def download(): """ allows downloading of uploaded files http://..../[app]/default/download/[filename] """ return response.download(request, db) On Wednesday, April 22, 2020 at 6:23:54 PM UTC-4, Jim S wrote: > > Jon > > What does your controller look like? > -Jim > > On Wed, Apr 22, 2020 at 5:13 PM Jon Paris <jonb...@partner400.com > <javascript:>> wrote: > >> Yes - I can see that now - but that was in the original scaffolding. >> >> I moved stuff around and now have this at the start: >> >> from gluon.contrib.appconfig import AppConfig >> from gluon.tools import Auth >> >> db = DAL("sqlite://storage.sqlite") >> >> auth = Auth(db) >> auth.define_tables(username=True) >> >> The removed the duplicate entry for db = later in the script. >> >> Same problem. App works but no authentication request. >> >> There's still a lot of "extra stuff" in the scaffolded code that I don't >> think I need it or not - but no duplication that I can see. >> >> >> On Wednesday, April 22, 2020 at 5:49:45 PM UTC-4, Jim S wrote: >>> >>> Jon >>> >>> You're redefining db right above your define_table for 'image'. db is >>> already assigned/defined higher up in the db.py file. We don't want to >>> redefine it. >>> >>> I've just been looking at the tutorial you're following and see that it >>> seems a bit out-dated. >>> >>> -Jim >>> >>>> >>>> -- >> Resources: >> - http://web2py.com >> - http://web2py.com/book (Documentation) >> - http://github.com/web2py/web2py (Source code) >> - https://code.google.com/p/web2py/issues/list (Report Issues) >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "web2py-users" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/web2py/51UaQT4SxbQ/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> web...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/web2py/9efdf98e-a87f-41f3-aeb2-9813ebd9679a%40googlegroups.com >> >> <https://groups.google.com/d/msgid/web2py/9efdf98e-a87f-41f3-aeb2-9813ebd9679a%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/f998f6a2-a70f-4ecc-a62a-476dedeef390%40googlegroups.com.