def forgot_password(request): """ http://localhost/forgot_password """ params = {'SETTINGS': settings} if request.method == HTTP_METHOD_POST: email = request.POST.get('account_id') api = IndivoClient(settings.CONSUMER_KEY, settings.CONSUMER_SECRET, settings.INDIVO_SERVER_LOCATION) # get account id from email (which we are assuming is contact email) res = api.account_forgot_password(account_id=email).response status = res.get('response_status', 0) # password was reset, show secondary secret if 200 == status: e = ET.fromstring(res.get('response_data', '<root/>')) params['SECONDARY_SECRET'] = e.text # error resetting, try to find out why else: if 404 == status: params['ERROR'] = ErrorStr('Unknown account') else: params['ERROR'] = ErrorStr(res.get('response_data') or 'Password reset failed') params['ACCOUNT_ID'] = email if 'Account has not been initialized' == res.get('response_data'): params['UNINITIALIZED'] = True return utils.render_template('ui/forgot_password', params)
def forgot_password(request): if request.method == HTTP_METHOD_GET: return utils.render_template('ui/forgot_password', {}) if request.method == HTTP_METHOD_POST: email = request.POST['email'] errors = {'generic': 'There was a problem resetting your password. Please try again. If you are unable to set up your account please contact support.', 'multiple_accounts': 'There was a problem resetting your password. Please contact support.'} api = IndivoClient(settings.CONSUMER_KEY, settings.CONSUMER_SECRET, settings.INDIVO_SERVER_LOCATION) # get account id from email (which we are assuming is contact email) ret = api.account_forgot_password(parameters={'contact_email':email}) if ret.response['response_status'] == 200: e = ET.fromstring(ret.response['response_data']) SECONDARY_SECRET = e.text SECONDARY_SECRET_1 = SECONDARY_SECRET[0:3] SECONDARY_SECRET_2 = SECONDARY_SECRET[3:6] return utils.render_template('ui/forgot_password_2', {'SECONDARY_SECRET_1': SECONDARY_SECRET_1, 'SECONDARY_SECRET_2': SECONDARY_SECRET_2}) else: return utils.render_template('ui/forgot_password', {'ERROR': errors['generic']})