Exemplo n.º 1
0
def add_user(data):
    user = User(id=data["email"])
    user.password = data["password"]
    user.name = data["name"]
    user.email = data["email"]
    user.contacts = data["contacts"]
    user.permissions = data["permissions"]

    user.put()
    return user
Exemplo n.º 2
0
	def get(self):
		username = self.request.get('username')
	        self.response.headers['Content-Type'] = 'application/json'

		try:
			user = User.get_by_username(username)
			#logging.warning('DEBUG: %s %s' % (str(dir(user)), str(type(user))))
			returndict = {}
			newuser = False
			if user is None:
				newuser = True
				user = User()
				user.username = username
				user.active = False
				url = 'https://tom-schneider.appspot.com/api/randstring?case=all&length=128'
				result = urlfetch.fetch(url)
				if result.status_code == 200:
					user.notes = json.loads(result.content)['randstring']
					if not mail.is_email_valid(self.request.get('email')):
						raise urllib2.URLError('El email del usuario no es valido.')
					else:
						sender_address = 'Organization Management Tool Team <*****@*****.**>'
						subject = 'Organization Management Tool - Confirm your registration'
						body = """
Gracias por registrerse!
De click en la URL siguiente para confirmar su direccion de correo:
%s%s/api/user/confirm?email=%s&cc=%s
""" % (config,PROTOCOL, config.APP_HOSTNAME, self.request.get('email'), user.notes)

					logging.warning('DEBUG UserSet - Registration confirmation email: sender=%s, to=%s, subject=%s, body=%s' % (sender_address, self.request.get('email'), subject, body))
					mail.send_mail(sender=sender_address, to=self.request.get('email'), subject=subject, body=body)
				else:
					raise urllib2.URLError('Un error ocurrio. No se pudo generar codigo de seguridad.')
	
				returndict['message'] = 'Usuario creado.'
			else:
				returndict['message'] = 'Usuario modificado.'
	
			try:
				if not newuser and user.active is False:
					raise ValueError('Los datos de un usuario no verificado no pueden ser modificados.')

				if newuser and len(self.request.get('email')) == 0:
					raise ValueError('Campo email faltando para nuevo usuario.')
				elif len(self.request.get('email')) > 0:
					user.email = self.request.get('email')

				if newuser and len(self.request.get('first_name')) == 0:
					raise ValueError('Campo first_name faltando para nuevo usuario.')
				elif len(self.request.get('first_name')) > 0:
					user.first_name = self.request.get('first_name')

				if newuser and len(self.request.get('last_name')) == 0:
					raise ValueError('Campo last_name faltando para nuevo usuario.')
				elif len(self.request.get('last_name')) > 0:
					user.last_name = self.request.get('last_name')

				if len(self.request.get('active')) > 0:
					if self.request.get('active') == 'false':
						user.active = False
					elif self.request.get('active') == 'true':
						user.active = True

				# {'reader': 0, 'professor': 0, 'administrator': 0}
				permissions_type = ['reader', 'professor', 'administrator']
				if user.permissions is None:
					permissions = {'reader': False, 'professor': False, 'administrator': False}
				else:
					permissions = json.loads(user.permissions)
				for permission in permissions_type:
					if self.request.get('permissions_' + permission) == 'true':		
						permissions[permission] = True
					elif self.request.get('permissions_' + permission) == 'false':		
						permissions[permission] = False

				user.permissions = json.dumps(permissions)

				user.put()
	
				returndict['status'] = 0

				returndict ['user'] = {'username': username, 'email': user.email, 'first_name': user.first_name, 'last_name': user.last_name, 'permissions': user.permissions, 'active': str(user.active)}
	
				logging.warning('DEBUG: %s' % str(returndict))
				self.response.write(json.dumps(returndict))
			except ValueError, e:
				self.response.write(json.dumps(str(e)))
		except urllib2.URLError, e:
			self.response.write(json.dumps(str(e)))