Sorry I probably should have posted this in the Developer group instead.

Ron, this is a possible enhancement to the web2py framework itself, not a 
suggested application.

On Friday, May 29, 2015 at 7:38:16 AM UTC+12, Ron Chatterjee wrote:
>
> I am little confused. Isn't what bitbucket does anyway. Someone can put 
> their application there and invite others to join? How is this any 
> different?
>
>
>
> On Thursday, May 28, 2015 at 9:50:31 AM UTC-4, Anthony wrote:
>>
>> I like the idea, but I wonder if the use case is common enough to justify 
>> including in the framework (where it will have to be tested and maintained 
>> by the developers indefinitely). Instead, maybe this could be a plugin.
>>
>> Anthony
>>
>> On Thursday, May 28, 2015 at 1:19:07 AM UTC-4, Massimo Di Pierro wrote:
>>>
>>> think this is an excellent idea. Please submit a pull request.
>>>
>>> On Wednesday, 20 May 2015 03:12:24 UTC-5, James Burke wrote:
>>>>
>>>> Hi,
>>>>
>>>> I'm looking for a peer review of some code I put together for email 
>>>> inviting users to join an application. I couldn't find anything suitable 
>>>> looking around, hopefully I didn't overlook anything!
>>>>
>>>> The idea is, you enter in email addresses into a form, click submit and 
>>>> it will send an email to the email address with an invite to your 
>>>> application. The email will contain a link which the user clicks to take 
>>>> them to a form to fill in the rest of their required details, name etc.
>>>>
>>>> I've tested this and it works, but I would like to know what others 
>>>> thoughts are and there are any improvements that could be made.
>>>>
>>>> Thank you!
>>>>
>>>> *default.py controller*
>>>> def index():
>>>>     form=FORM('Enter a comma separated list of emails to send invites:',
>>>>               BR(),
>>>>               INPUT(_id='emails', _value=''),
>>>>               INPUT(_type='submit'))
>>>>
>>>>     if form.accepts(request,session):
>>>>         # send the invitations
>>>>         for email in form.vars.email.split(','):
>>>>             auth.invite_user(email=email)
>>>>         response.flash = 'Invitations sent'
>>>>
>>>>     return dict(form=form)
>>>>
>>>> def confirm_registration():
>>>>     return dict(form=auth.confirm_registration())
>>>>
>>>>
>>>>
>>>>
>>>> *gluon/tools.py*
>>>> def confirm_registration(
>>>>         self,
>>>>         next=DEFAULT,
>>>>         onvalidation=DEFAULT,
>>>>         onaccept=DEFAULT,
>>>>         log=DEFAULT,
>>>>         ):
>>>>         """
>>>>         Modified version of Auth.reset_password()
>>>>         """
>>>>
>>>>
>>>>         table_user = self.table_user()
>>>>         request = current.request
>>>>         # response = current.response
>>>>         session = current.session
>>>>
>>>>
>>>>         if next is DEFAULT:
>>>>             next = self.get_vars_next() or self.settings.
>>>> reset_password_next
>>>>
>>>>
>>>>         if self.settings.prevent_password_reset_attacks:
>>>>             key = request.vars.key
>>>>             if not key and len(request.args)>1:
>>>>                 key = request.args[-1]
>>>>             if key:
>>>>                 session._reset_password_key = key
>>>>                 redirect(self.url('confirm_registration'))
>>>>             else:
>>>>                 key = session._reset_password_key
>>>>         else:
>>>>             key = request.vars.key or getarg(-1)
>>>>         try:
>>>>             t0 = int(key.split('-')[0])
>>>>             if time.time() - t0 > 60 * 60 * 24:
>>>>                 raise Exception
>>>>             user = table_user(reset_password_key=key)
>>>>             if not user:
>>>>                 raise Exception
>>>>         except Exception as e:
>>>>             session.flash = self.messages.invalid_reset_password
>>>>             redirect(self.url('login', vars=dict(test=e)))
>>>>             redirect(next, client_side=self.settings.client_side)
>>>>         passfield = self.settings.password_field
>>>>         form = SQLFORM.factory(
>>>>             Field('first_name',
>>>>                   label='First Name',
>>>>                    required=True),
>>>>             Field('last_name',
>>>>                   label='Last Name',
>>>>                    required=True),
>>>>             Field('new_password', 'password',
>>>>                   label=self.messages.new_password,
>>>>                   requires=self.table_user()[passfield].requires),
>>>>             Field('new_password2', 'password',
>>>>                   label=self.messages.verify_password,
>>>>                   requires=[IS_EXPR(
>>>>                       'value==%s' % repr(request.vars.new_password),
>>>>                                     self.messages.mismatched_password
>>>> )]),
>>>>             submit_button='Confirm Registration',
>>>>             hidden=dict(_next=next),
>>>>             formstyle=self.settings.formstyle,
>>>>             separator=self.settings.label_separator
>>>>         )
>>>>         if form.accepts(request, session,
>>>>                         hideerror=self.settings.hideerror):
>>>>             user.update_record(
>>>>                 **{passfield: str(form.vars.new_password),
>>>>                    'first_name': str(form.vars.first_name),
>>>>                    'last_name': str(form.vars.last_name),
>>>>                    'registration_key': '',
>>>>                    'reset_password_key': ''})
>>>>             session.flash = self.messages.password_changed
>>>>             if self.settings.login_after_password_change:
>>>>                 self.login_user(user)
>>>>             redirect(next, client_side=self.settings.client_side)
>>>>         return form
>>>>
>>>>
>>>>     def email_registration(self, user):
>>>>         """
>>>>         Modified version of Auth.email_reset_password()
>>>>         """
>>>>         import
>>>> ...
>>>
>>>

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to