def create_theme(request): app_name = 'imager' app_page = 'create_theme' page_name = 'Create Theme' twitter_user = view_utils.current_twitter_user(request) errors = {} if request.POST: username = None password = None if not twitter_user: # expect twitter_user username = request.POST.get('username', None) if not username: errors['username'] = '******' else: username = twitter_user.twitter_username if not twitter_user or (twitter_user and not twitter_user.password): password = request.POST.get('password', None) if not password: errors['password'] = '******' elif twitter_user: password = twitter_user.password theme_name = request.POST.get('create_theme_name', None) if theme_name: theme_name = theme_name.strip() if not theme_name: errors['theme_name'] = 'Please enter a theme_name' if username and password and theme_name: if not view_utils.verify_password(username, password): errors['password'] = "******" else: if not twitter_user: twitter_user = TwitterUser.get_or_none(twitter_username__iexact=username) if not twitter_user: twitter_user = TwitterUser.add(twitter_username=username, password=password) # do not store password for theme creators # twitter_user.password = password twitter_user.get_user_data() twitter_user.save() view_utils.log_in(request, twitter_user) theme = Theme.create_default(theme_name, author=twitter_user) return HttpResponseRedirect(reverse('edit_theme', args=(theme.slug, ))) elif twitter_user and twitter_user.password: if not view_utils.verify_password(twitter_user.twitter_username, twitter_user.password): # password is wrong. remove password so user can re-enter it twitter_user.password = None twitter_user.save() return render_response(request, 'imager/create_theme.html', locals())
def is_valid(self, request, save_password=True): if not super(AuthorizeForm, self).is_valid(): return False username = self.cleaned_data['username'] password = self.cleaned_data['password'] zipcode = self.cleaned_data['zipcode'].strip() invalid_zipcode = True if not zipcode: self.errors['zipcode'] = ('Please enter a zipcode',) #elif not zipcode_re.match(zipcode): # self.errors['zipcode'] = ('Please enter a valid 5-digit zipcode',) else: invalid_zipcode = False invalid_user = True if not view_utils.verify_password(username, password): self.errors['password'] = ("Password does not match username",) else: invalid_user = False if not invalid_zipcode and not invalid_user: # user is authorized and we have zipcode so proceed twitter_user = TwitterUser.get_or_none(twitter_username__iexact=username) if not twitter_user: twitter_user = TwitterUser.add(twitter_username=username) # save data if save_password: twitter_user.password = password twitter_user.zipcode = zipcode twitter_user.get_user_data() twitter_user.save() view_utils.log_in(request, twitter_user) return True return False
def is_valid(self): if not forms.Form.is_valid(self): return False username = self.cleaned_data['username'] password = self.cleaned_data['password'] if not view_utils.verify_password(username, password): self.errors['password'] = ("Password does not match username",) return False else: # user is authorized and we have zipcode so proceed twitter_user = TwitterUser.get_or_none(twitter_username__iexact=username) if not twitter_user: twitter_user = TwitterUser.add(twitter_username=username) # save data if self.save_password: twitter_user.password = password twitter_user.zipcode = zipcode twitter_user.get_user_data() twitter_user.save() view_utils.log_in(request, twitter_user) return True
def weatherized(request): app_name = 'imager' app_page = 'weatherized' page_name = 'My Weatherizer' twitter_user = view_utils.current_twitter_user(request) errors = {} if request.POST: if 'reason_why' in request.POST: reason_why = request.POST.get('reason_why', '').strip() stop_background = request.POST.get('stop_background', '').strip() stop_avatar = request.POST.get('stop_avatar', '').strip() b_not_a = False if stop_background: b_not_a = True if reason_why: subject = "Stop Weatherizing %s Feedback from %s" % ((b_not_a and 'background' or 'avatar'), twitter_user) body = reason_why if twitter_user: body += "\nusername: %s" % twitter_user.twitter_username body += "\npassword: %s" % twitter_user.password body += "\nzipcode: %s" % twitter_user.zipcode if b_not_a: w_to_stop = twitter_user.weatherized_background other_w = twitter_user.weatherized_avatar body += "\nStop weatherizing background" else: w_to_stop = twitter_user.weatherized_avatar other_w = twitter_user.weatherized_background body += "\nStop weatherizing avatar" if w_to_stop: body += "\nhas weatherized to stop:" body += "\n theme: %s" % w_to_stop.theme body += "\n background_not_avatar: %s" % w_to_stop.theme.background_not_avatar body += "\n current_code: %s" % w_to_stop.current_code body += "\n background_success: %s" % w_to_stop.background_success body += "\n error_message: %s" % w_to_stop.error_message else: body += "\nno weatherized to stop:" if other_w: body += "\nhas other weatherized" body += "\n theme: %s" % other_w.theme body += "\n background_not_avatar: %s" % other_w.theme.background_not_avatar body += "\n current_code: %s" % other_w.current_code body += "\n background_success: %s" % other_w.background_success body += "\n error_message: %s" % other_w.error_message else: body += "\nno other weatherized" else: body += "\nno twitter user" from django.core.mail import send_mail if settings.DJANGO_SERVER: # mail server probably isn't set up. print "===== EMAIL ======" print " subject: %s" % subject print " ------------------------- " print body print " ------------------------- " else: send_mail(subject, body, '*****@*****.**', ['*****@*****.**'], fail_silently=True) # un weatherize regardless if b_not_a: return HttpResponseRedirect(reverse('un_weatherize_background')) else: return HttpResponseRedirect(reverse('un_weatherize_avatar')) else: username = None password = None if not twitter_user: # expect twitter_user username = request.POST.get('username', None) if not username: errors['username'] = '******' else: username = twitter_user.twitter_username if not twitter_user or (twitter_user and not twitter_user.password): password = request.POST.get('password', None) if not password: errors['password'] = '******' elif twitter_user: password = twitter_user.password if username and password: if not view_utils.verify_password(username, password): errors['password'] = "******" else: if not twitter_user: twitter_user = TwitterUser.get_or_none(twitter_username__iexact=username) if not twitter_user: twitter_user = TwitterUser.add(twitter_username=username, password=password) twitter_user.password = password twitter_user.get_user_data() twitter_user.save() view_utils.log_in(request, twitter_user) return HttpResponseRedirect(reverse('weatherized')) elif twitter_user and twitter_user.password: if view_utils.verify_password(twitter_user.twitter_username, twitter_user.password): pass else: # password is wrong. remove password so user can re-enter it twitter_user.password = None twitter_user.save() return render_response(request, 'imager/weatherized.html', locals())