def put(self, id): data = get_json() user = self.get_user(id) if user is None: return create_response( 404, create_message_error(404, 'USER_NOT_ACTIVATED')) response = self.keystone.change_password(user['keystone_user_id'], data) if response.status_code is not 204: self.status_code = response.status_code self.item = create_message_error(self.status_code, json.loads(response.text)) else: self.u.update(id, {"password": False}) return create_response(self.status_code, self.item)
def get(self, id): user = self.get_user(id) if user is None: return create_response( 404, create_message_error(404, 'USER_NOT_ACTIVATED')) new_password = generate_password() response = self.keystone.patch_user(user['keystone_user_id'], new_password) if response.status_code == 200: self.smm.change_password(user['email'], new_password) self.u.update(id, {"password": True}) else: self.status_code = response.status_code self.item = create_message_error(self.status_code, json.loads(response.text)) return create_response(self.status_code, self.item)
def post(self): data = get_json() user = self.u.get_by_field('email', data['email']) if user is None: self.item = create_message_error(404, '') return create_response(404, self.item) new_password = generate_password() response = self.keystone.patch_user(user['keystone_user_id'], new_password) if response.status_code == 200: self.smm.change_password(user['email'], new_password) self.u.update(str(user['_id']), {"password": True}) else: self.status_code = response.status_code self.item = create_message_error(self.status_code, json.loads(response.text)) return create_response(self.status_code, self.item)
def delete(self, id): self.u.update(id, self.data_delete) user = self.u.get(id) response = self.keystone.patch_user(user['keystone_user_id'], False) if response.status_code == 200: status_code = 204 item = None else: status_code = 404 item = create_message_error(404, "USER_NOT_FOUND") return create_response(status_code, item)
def user_login(self, email, password): self.keystone.keystone_admin = email self.keystone.keystone_admin_pass = password response = self.keystone.get_login() if response.status_code == 201: # Encontrado el usuario en Keystone. Lo buscamos en mongo data = find_one_in_collection( 'users', { 'keystone_user_id': json.loads(response.text)['token']['user']['id'] }) if data is not None: self.create_role_user(data) response.status_code = 200 else: response.status_code = 404 self.item = create_message_error(response.status_code, "USER_NOT_FOUND") return create_response(response.status_code, self.item)
def put(self, id): data = get_json() user = find_one_in_collection(self.collection, {"_id": ObjectId(id)}) if 'activated' in data: response = self.keystone.patch_user(user['keystone_user_id'], data['activated']) if response.status_code == 200: if user['activated'] and not data['activated']: self.smm.ban(user['email']) if data['activated'] and not user['activated']: self.smm.welcome(user['email']) if '_id' in data: del data['_id'] try: self.u.update(id, data) status_code = 204 except Exception as e: print e status_code = 400 self.item = create_message_error(status_code, "USER_NOT_FOUND") if 'activated' in data: self.keystone.patch_user(user['keystone_user_id'], not (data['activated'])) return create_response(status_code, self.item)