class UserField(wtforms.Field): """ A field that alls WTForms to produce a field that can be used to edit a db.UserProperty or ndb.UserProperty. Displays as a text field with an Email. """ widget = wtforms.widgets.TextInput() __temporary_data = None def _value(self): if self.data: return self.data.email() else: return u'' def process_formdata(self, valuelist): if valuelist and valuelist[0]: self.data = User(valuelist[0]) else: self.data = None def pre_validate(self, form): if self.data: self.__temporary_data = self.data self.data = self.data.email() def post_validate(self, form, validation_stopped): if self.__temporary_data: self.data = self.__temporary_data
def post(self): from google.appengine.api.users import User error = None success = None dnzo_user = None dnzo_user_already = None google_user_to = None try: from_email = self.request.get('user_from', None) dnzo_user = get_dnzo_user_by_email(from_email) google_user_to = User(self.request.get('user_to', None)) dnzo_user_already = get_dnzo_user(invalidate_cache=True, google_user=google_user_to) except: pass if dnzo_user is None: error = "Could not find existing DNZO user. Whoops!" elif dnzo_user_already is not None: error = "User exists already with that e-mail address! Delete him first." elif google_user_to is None: error = "Couldn't find the new Google user. Whoops!" else: clear_user_memcache(dnzo_user) dnzo_user.user = google_user_to save_user(dnzo_user) success = "Success! %s is now %s." % (from_email, google_user_to.email()) self.render("admin/modify_user.html", error=error, success=success)
class UserField(wtforms.Field): """ A field that alls WTForms to produce a field that can be used to edit a db.UserProperty or ndb.UserProperty. Displays as a text field with an Email. """ widget = wtforms.widgets.TextInput() __temporary_data = None def _value(self): if self.data: return self.data.email() else: return u'' def process_formdata(self, valuelist): if valuelist and valuelist[0]: self.data = User(valuelist[0]) else: self.data = None def pre_validate(self, form): if self.data: self.__temporary_data = self.data self.data = self.data.email() def post_validate(self, form, validation_stopped): if self.__temporary_data: self.data = self.__temporary_data
def post(self): from google.appengine.api.users import User error = None success = None dnzo_user = None dnzo_user_already = None google_user_to = None try: from_email = self.request.get('user_from', None) dnzo_user = get_dnzo_user_by_email(from_email) google_user_to = User(self.request.get('user_to', None)) dnzo_user_already = get_dnzo_user(invalidate_cache=True, google_user=google_user_to) except: pass if dnzo_user is None: error = "Could not find existing DNZO user. Whoops!" elif dnzo_user_already is not None: error = "User exists already with that e-mail address! Delete him first." elif google_user_to is None: error = "Couldn't find the new Google user. Whoops!" else: clear_user_memcache(dnzo_user) dnzo_user.user = google_user_to save_user(dnzo_user) success = "Success! %s is now %s." % (from_email, google_user_to.email()) self.render("admin/modify_user.html", error=error, success=success)