Peter I agree with you. Sorry I have been slow digesting this thread but it is very interesting. The pycon registration will keep me busy for the next couple of days.
Massimo On Jan 22, 7:03 pm, Peter <peter.kleyn...@gmail.com> wrote: > Hi Massimo, > > Some feedback on utils.py from an "occasional" web2py developer. > > I found lots to like in Auth compared to the current t2.py, ie: > - increased customization in the Auth API, ie settings.mailer (eg, I > have use a html mail function) > - support for username instead of email as primary user id > > In my current app I have copied & pasted (brrrr...) several Auth > functions because it looked unwise to subclass t2 -- there being a > single t2 instance. But in this new setup I should be able to subclass > Auth and redefine only one or two specific methods. Right? > > Re Crud, you hint at onvalidation support in the new crud functions -- > that would be *really* welcome. In general, I would like to be able to > pass more SQLFORM params to crud functions (eg, fields?) -- more > customization and delegation options help to move T2 crud from a "90%" > solution closer to 98 or 99... > > Finally, I don't want to go all java on you, but wouldn't more > explicit APIs help to put some distance between interface and > implementation -- and thus easier to reimplement or modify parts that > need this? My impression is that the current APIs are primarily > function signatures, and that underlying dependencies, side effects > and interfaces to data structures are sometimes left as an exercise > for the reader. ;-) > > Web2py is evolving so fast that between the Book, epydocs, Alterego > and the current "complete" API on the website, I find am looking at > web2py source (and running dir() in a shell) much more often than I > probably should. I do realize that the docs have to catch up with > development. Isn't it time to consider a single new (collaborative?) > reference for the evolving web2py APIs? Not just the technical > interface definitions (a la epydocs), but the semantics as well. I'd > be happy to contribute where I can -- within the limitations that come > with my "occasional" status. > > Hope this helps, > Cheers, > -Peter > > On Jan 21, 10:46 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > yes but only so that you can test them and provide feedback. I hope to > > finalize the APIs and documentations within the week. > > > also I would like to change the name of the file from utils.py to > > something more catchy. Any suggestion? > > > Massimo > > > On Jan 21, 1:33 am, David Marko <dma...@tiscali.cz> wrote: > > > > These things look very nice. > > > Does it mean that described changes are available in svn trunk > > > version? > > > > David > > > > On 21 Led, 00:36, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > I have a preliminary version of inclusion if T2 functionality into > > > > web2py core. I am not yet promising backward compatibility here. The > > > > module name many change. For now it is in trunk as gluon/utils.py > > > > > Here is how you use it (assuming [app] is you application name). > > > > > 1) put this in your model > > > > > from gluon.utils import * > > > > auth=Auth(globals(),db) > > > > auth.define_tables() > > > > crud=Crud(globals(),db) > > > > > 2) put this in your "default" controller > > > > > def user(): return dict(form=auth()) > > > > def database(): return dict(form=crud()) > > > > def download(): return response.download() > > > > > def index(): > > > > response.flash=T('Welcome to web2py') > > > > return dict(message=T('Hello World')) > > > > > Now > > > > visit:http://..../[app]/default/user/registerhttp://..../[app]/default/user/loginhttp://..../[app]/default/user/profilehttp://..../[app]/default/user/change_passwordhttp://..../[app]/default/user/groupshttp://..../[app]/default/user/logouthttp://..../[app]/default/user/retrieve_password > > > > >http://..../[app]/default/database/tableshttp://..../[app]/default/database/select/[app]_eventhttp://..../[app]/default/database/create/[app]_eventhttp://..../[app]/default/database/read/[app]_event/1http://..../[app]/default/database/update/[app]_event/1http://..../[app]/default/database/delete/[app]_event/1 > > > > > now add to the model > > > > > mail=Mail() > > > > mail.settings.server='smtp.whetever.com' > > > > mail.settings.sender='....@whatever.com' > > > > mail.settings.longin='username:password' > > > > auth.settings.mail=mail > > > > > so that registration requires email verification > > > > > then add > > > > > auth.settings.captcha=RECAPTCHA > > > > (request,public_key='RECAPTCHA_PUBLIC_KEY',private_key='RECAPTCHA_PRIVATE_K > > > > EY') > > > > > so that registration will use recaptcha > > > > > then add > > > > > crud.auth=auth > > > > > so that crud will enforce role based access control.... > > > > > now you lost the permission to accesshttp://.../database/.... > > > > > now give yourself back permission *only* to select record in table > > > > [app]_user > > > > > group_id=auth.add_group(role='Manager') > > > > auth.add_membership(group_id,auth.user.id) > > > > auth.add_permission(group_id,'select','[app]_user') > > > > > or to delete users > > > > > auth.add_permission(group_id,'delete','[app]_user') > > > > > get the idea?.... I think I have been following (or tried to) the > > > > advice of some of the members here like Yarko, Ceej, Bill, Fran, and > > > > others. > > > > > There is a lot more stuff in there (like decorators that enforce > > > > permissions) that needs polishing and documenting. > > > > > Volunteers to help? > > > > > Massimo --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---