def updateFields(self, *args, **kwargs): """ Bar code image is applied here. """ if bool(api.user.is_anonymous()) is False: # Adding a proper description (with bar code image) barcode_field = self.fields.get('qr_code') if barcode_field: barcode_field.field.description = _(get_token_description()) return super(SetupForm, self).updateFields(*args, **kwargs)
def updateFields(self, *args, **kwargs): """ Here happens the following: - Signed user data is validated. If valid, the user is fetched. - Token (`signature` param) is matched to the one obtained from user records. If matched, the bar-code image is reset (security token is reset and saved in the users' profile). """ # Adding a proper description (with bar code image) barcode_field = self.fields.get('qr_code') username = self.request.get('auth_user', '') token = self.request.get('signature', '') user = api.user.get(username=username) # If valid user if user: # Getting the users' bar-code reset token saved in his profile. bar_code_reset_token = user.getProperty('bar_code_reset_token') # Validate the user data user_data_validation_result = validate_user_data(request=self.request, user=user) # If all goes well, regenerate the token (overwrite_secret=True) and show the bar code image. if barcode_field: if user_data_validation_result.result and bar_code_reset_token == token: barcode_field.field.description = _(get_token_description(user=user, overwrite_secret=False)) else: if not user_data_validation_result.result: IStatusMessage(self.request).addStatusMessage( ' '.join(user_data_validation_result.reason), 'error' ) else: IStatusMessage(self.request).addStatusMessage( _("Invalid bar-code reset token"), 'error' ) return super(ResetBarCodeForm, self).updateFields(*args, **kwargs)
def updateFields(self, *args, **kwargs): """ Here happens the following: - Signed user data is validated. If valid, the user is fetched. - Token (`signature` param) is matched to the one obtained from user records. If matched, the bar-code image is reset (security token is reset and saved in the users' profile). """ # Adding a proper description (with bar code image) barcode_field = self.fields.get('qr_code') username = self.request.get('auth_user', '') token = self.request.get('signature', '') user = api.user.get(username=username) # If valid user if user: # Getting the users' bar-code reset token saved in his profile. bar_code_reset_token = user.getProperty('bar_code_reset_token') # Validate the user data user_data_validation_result = validate_user_data( request=self.request, user=user) # If all goes well, regenerate the token (overwrite_secret=True) and show the bar code image. if barcode_field: if user_data_validation_result.result and bar_code_reset_token == token: barcode_field.field.description = _( get_token_description(user=user, overwrite_secret=False)) else: if not user_data_validation_result.result: IStatusMessage(self.request).addStatusMessage( ' '.join(user_data_validation_result.reason), 'error') else: IStatusMessage(self.request).addStatusMessage( _("Invalid bar-code reset token"), 'error') return super(ResetBarCodeForm, self).updateFields(*args, **kwargs)