def send_error_report_as_email(e, tb): import traceback currentLang = get_language() try: activate_lang('en_US') msg = MIMEText(''.join(traceback.format_exception(e.__class__, e, tb))) msg['From'] = '*****@*****.**' msg['To'] = settings.FEEDBACK_RECIPIENT msg['Subject'] = _(u'E-Cell IDE Feedback Exception Report') conn = SMTP('localhost', 25, 'chaperone.e-cell.org') conn.sendmail('*****@*****.**', settings.FEEDBACK_RECIPIENT, msg.as_string()) finally: activate_lang(currentLang)
def decorated_view(request, *args, **kwargs): user = request.user if user_is_anonymous(user): return redirect_to_login(request) if user.has_perms(['wagtailadmin.access_admin']): if hasattr(user, 'wagtail_userprofile'): activate_lang( user.wagtail_userprofile.get_preferred_language()) return view_func(request, *args, **kwargs) messages.error(request, _('You do not have permission to access the admin')) return redirect_to_login(request)
def decorated_view(request, *args, **kwargs): user = request.user if user.is_anonymous: return reject_request(request) if user.has_perms(['wagtailadmin.access_admin']): if hasattr(user, 'wagtail_userprofile'): activate_lang(user.wagtail_userprofile.get_preferred_language()) return view_func(request, *args, **kwargs) if not request.is_ajax(): messages.error(request, _('You do not have permission to access the admin')) return reject_request(request)
def decorated_view(request, *args, **kwargs): user = request.user if user_is_anonymous(user): return reject_request(request) if user.has_perms(['tuiuiuadmin.access_admin']): if hasattr(user, 'tuiuiu_userprofile'): activate_lang(user.tuiuiu_userprofile.get_preferred_language()) return view_func(request, *args, **kwargs) if not request.is_ajax(): messages.error(request, _('You do not have permission to access the admin')) return reject_request(request)
def _generate_invoice_pdf(self, override_existing=False): """ create a PDF invoice for charge if `override_existing` is True (default: False) - regenerate PDF """ if not self.customer.subscriber.has_address: error_message = _( 'Company "{}" (ID {}) was charged but has no postal ' 'address stored').format(self.customer.subscriber, self.customer.pk) logger.exception(error_message) context = self._get_template_context() context.update(dict( from_address=settings.INVOICE_FROM_ADDRESS, from_email=settings.DEFAULT_FROM_EMAIL, )) pdf_filepath = self._get_pdf_filepath() # check if exists if os.path.exists(pdf_filepath) and not override_existing: return pdf_filepath activate_lang(settings.LANGUAGE_CODE) template = get_template(self.customer.subscriber.invoice_template) try: pdf = utils.pdf.render_pdf(template.render(context)) except Exception as ex: logger.exception(ex) pdf = None if not pdf: error_message = _( 'Invoice PDF for company "{}" (ID {}) could not be ' 'generated.').format(self.customer.subscriber, self.customer.subscriber.pk) logger.exception(error_message) return None with open(pdf_filepath, 'w') as f: f.write(pdf) return pdf_filepath
def decorated_view(request, *args, **kwargs): user = request.user if user.is_anonymous: return reject_request(request) if user.has_perms(['wagtailadmin.access_admin']): if hasattr(user, 'wagtail_userprofile'): language = user.wagtail_userprofile.get_preferred_language() l18n.set_language(language) activate_lang(language) time_zone = user.wagtail_userprofile.get_current_time_zone() activate_tz(time_zone) return view_func(request, *args, **kwargs) if not request.is_ajax(): messages.error(request, _('You do not have permission to access the admin')) return reject_request(request)
def send_feedback_as_email(form): import codecs msg = MIMEMultipart() currentLang = get_language() try: activate_lang('en_US') msg['From'] = '*****@*****.**' msg['To'] = settings.FEEDBACK_RECIPIENT msg['Subject'] = _(u'E-Cell IDE Feedback from %s') % form.cleaned_data['email'] text = _(u'*** E-Cell IDE feedback ***\n') for field in form: rendered_text = '' data = form.cleaned_data[field.name] if isinstance(field.field, forms.FileField): if data != None: rendered_text = "%s (%s)" % ( data.filename, data.content_type ) else: rendered_text = '(None)' elif isinstance(field.field, forms.ChoiceField): rendered_text = dict(field.field.choices)[data] else: rendered_text = data text += u"%s:\n%s\n\n" % ((field.label), rendered_text) msg.attach(MIMEText( codecs.getencoder('UTF-8')(text)[0], _charset = 'UTF-8')) if form.cleaned_data['screenshot'] != None: attach = MIMEImage(form.cleaned_data['screenshot'].read()) msg.attach(attach) conn = SMTP('localhost', 25, 'chaperone.e-cell.org') conn.sendmail('*****@*****.**', settings.FEEDBACK_RECIPIENT, msg.as_string()) finally: activate_lang(currentLang)
def login_complete(request): # Get addres where to redirect after the login redirect_to = sanitise_redirect_url(OpenIDBackend.get_redirect_to(request)) # Get OpenID response and test whether it is valid attribute_set, lang, openid_response = parse_openid_response(request) # Set language activate_lang(lang) if not openid_response: return render_failure(request, errors.EndpointError()) # Check whether the user is already logged in user_orig = OpenIDBackend.get_user_from_request(request) user_model = get_user_model() if openid_response.status == SUCCESS: try: if user_orig: # Send a signal to obtain HttpResponse resp = associate_user.send(sender=__name__, request=request, openid_response=openid_response, attribute_set=attribute_set, redirect=redirect_to) resp = [r[1] for r in resp if isinstance(r[1], HttpResponse)] if resp: # Return first valid response return resp[0] # Create association with currently logged in user OpenIDBackend.associate_openid_response(user_orig, openid_response) else: # Authenticate mojeID user. # Send a signal to obtain HttpResponse resp = authenticate_user.send(sender=__name__, request=request, openid_response=openid_response, attribute_set=attribute_set, redirect=redirect_to) resp = [r[1] for r in resp if isinstance(r[1], HttpResponse)] if resp: # Return first valid response return resp[0] # Perform a default action user_new = OpenIDBackend.authenticate_using_all_backends( openid_response=openid_response, attribute_set=attribute_set) if not user_new: # Failed to create a user return render_failure(request, errors.UnknownUser()) if not OpenIDBackend.is_user_active(user_new): # user is deactivated return render_failure(request, errors.DisabledAccount(user_new)) # Create an association with the new user OpenIDBackend.associate_user_with_session(request, user_new) except DjangoOpenIDException as e: # Something went wrong user_id = None try: # Try to get user id user_id = UserOpenID.objects.get(claimed_id=openid_response.identity_url).user_id except (UserOpenID.DoesNotExist, user_model.DoesNotExist): # Report an error with identity_url user_login_report.send(sender=__name__, request=request, username=openid_response.identity_url, method='openid', success=False) # Report an error with the username user_login_report.send(sender=__name__, request=request, username=openid_response.identity_url, user_id=user_id, method='openid', success=False) # Render the failure page return render_failure(request, errors.AuthenticationFailed(e)) response = HttpResponseRedirect(redirect_to) # Send signal to log the successful login attempt user_login_report.send(sender=__name__, request=request, user_id=user_orig.id if user_orig else user_new.id, method='openid', success=True) return response # Render other failures elif openid_response.status == FAILURE: user_login_report.send(sender=__name__, request=request, username=openid_response.identity_url, method='openid', success=False) return render_failure(request, errors.OpenIDAuthenticationFailed(openid_response)) elif openid_response.status == CANCEL: user_login_report.send(sender=__name__, request=request, username=openid_response.identity_url, method='openid', success=False) return render_failure(request, errors.OpenIDAuthenticationCanceled()) else: user_login_report.send(sender=__name__, request=request, username=openid_response.identity_url, method='openid', success=False) return render_failure(request, errors.OpenIDUnknownResponseType(openid_response))