def test_write_auth_ignores_r_users_field(self): user2 = User('test2', 'sdfsdf', 'sdfsdf') doc = Doc('docid', 'title', ['test1'], ['test'], None, None, None, False) with app.test_request_context("/"): self.assertRaises(AuthenticationException, BokehServerTransaction, user2, doc, 'rw')
def test_publish(self): sess = Session(client=app.test_client()) sess.register('testuser', 'testpassword') sess.use_doc('test_cow') sess.publish() doc = Doc.load(bokeh_app.servermodel_storage, sess.docid) assert doc.title == 'test_cow' assert doc.published == True
def test_read_auth_checks_both_fields(self): user2 = User('test2', 'sdfsdf', 'sdfsdf') user = User('test1', 'sdfsdf', 'sdfsdf') doc = Doc('docid', 'title', ['test1'], ['test2'], None, None, None, False) with app.test_request_context("/"): BokehServerTransaction(user, doc, 'r') with app.test_request_context("/"): BokehServerTransaction(user2, doc, 'r')
def test_permissions_with_temporary_docid(self): user = User('test1', 'sdfsdf', 'sdfsdf') doc = Doc('docid', 'title', [], ['test2'], None, None, None, False) # with temporary docid, a user must be able to read in order to get write access # this call should fail with app.test_request_context("/"): self.assertRaises(AuthenticationException, BokehServerTransaction, user, doc, 'rw', temporary_docid="foobar")
import redis from bokeh.server.models.user import User from bokeh.server.models.docs import Doc, prune_and_get_valid_models from bokeh.server import serverbb import json import copy server_model_redis = redis.Redis(host="127.0.0.1", db=3) bbmodel_redis = redis.Redis(host="127.0.0.1", db=2) for userkey in server_model_redis.keys("model:user*"): userid = userkey.split(":")[-1] User.load(server_model_redis, userkey) for dockey in server_model_redis.keys("model:doc*"): docid = dockey.split(":")[-1] doc = Doc.load(server_model_redis, docid) for modelkey in bbmodel_redis.keys(): if len(modelkey.split(":")) == 3: _, typename, modelid = modelkey.split(":") data = json.loads(bbmodel_redis.get(modelkey)) docid = data['docs'][0] newkey = serverbb.modelkey(typename, docid, modelid) bbmodel_redis.set(newkey, json.dumps(data)) bbmodel_redis.delete(modelkey) for dockey in bbmodel_redis.keys("doc:*"): docid = dockey.split(":")[-1] members = bbmodel_redis.smembers(dockey) new_members = [] for key in members: