def practitioners_edit(*args, **kwargs): print request.method if request.method == 'PUT': data = json.loads(request.data) user = User.by_id(kwargs.get('user_id')) if not user or not user.activated: response = jsonify( request=request.json, response={'error': 'Invalid Practitioner.'}) response.status_code = 404 return response user.map_data(data) db.session.add(user) db.session.commit() response = jsonify( request=data, response={ 'practitioner_id': user.id, 'active': user.active } ) response.status_code = 200 return response elif request.method == 'DELETE': data = json.loads(request.data) user = User.by_id(int(kwargs.get('user_id'))) requester = User.by_email(request.headers.get('key')) if user == requester: status = 'Success' status_code = 200 db.session.delete(user) db.session.commit() else: status = 'Not Authorized' status_code = 401 response = jsonify( request=data, response={ 'status': status } ) response.status_code = status_code return response else: print request.method response = jsonify( request=request.json, response={'error': 'This request type not supported'}) response.status_code = 400 return response
def practitioners_get(*args, **kwargs): user = User.by_id(kwargs.get('user_id')) if not user or not user.activated: response = jsonify( request=request.json, response={'error': 'Invalid Practitioner.'}) response.status_code = 404 return response practice = None if user.practice: practice = practice.id response = jsonify( request={ 'practitioner_id': user.id, }, response={ 'active': user.active, 'first_name': user.first_name, 'last_name': user.last_name, 'address_one': user.address_one, 'address_two': user.address_two, 'city': user.city, 'state': user.state, 'zip_code': user.zip_code, 'email': user.email, 'activation_code': user.activation_code, 'primary_color': user.primary_color, 'secondary_color': user.secondary_color, 'practice': practice, } ) response.status_code = 200 return response
def users_delete(id): """This function handles the /users/delete endpoint for the blueprint It allows PNT-Admins to delete a user. It is called via a button on the ``users/edit.html`` template :param id: The id of the user being deleted :type id: int :returns: users.users_home :rtype: redirect """ user = User.by_id(id) if not user: abort(404) db.session.delete(user) db.session.commit() return redirect(url_for('users.users_home'))
def users_edit(id): """This function handles the /users/edit endpoint for the bcornerstone/users/views.py It allows PNT-Admins to edit users. It uses the :ref:`users-forms-label` to display UsersEditForm :param id: The id of the user being edited :type id: int :returns: users/edit.html :rtype: template """ user = User.by_id(id) if not user: abort(404) form = UserEditForm(obj=user) if form.validate_on_submit(): form.populate_obj(user) db.session.add(user) db.session.commit() return redirect(url_for('users.users_home')) return render_template('users/edit.html', form=form, user_id=user.id, admin=True)
def users_changepassword(id): """This function handles the /users/changepassword endpoint for the blueprint It allows PNT-Admins to change a users password. It uses the :ref:`users-forms-label` to display UsersChangePasswordForm :param id: The id of the user being edited :type id: int :returns: users/change_password.html :rtype: template """ user = User.by_id(id) if not user: abort(404) form = UserChangePasswordForm(obj=user) if form.validate_on_submit(): form.populate_obj(user) user.password = encrypt_password(user.password) db.session.add(user) db.session.commit() return redirect(url_for('users.users_home')) return render_template('users/change_password.html', form=form, user_id=user.id, admin=True)