diff --git a/lib/galaxy/datatypes/test/YbCuAs2.den_fmt b/lib/galaxy/datatypes/test/YbCuAs2.den_fmt new file mode 100644 index 00000000000..febd3b42025 --- /dev/null +++ b/lib/galaxy/datatypes/test/YbCuAs2.den_fmt @@ -0,0 +1,14 @@ + BEGIN header + + Real Lattice(A) Lattice parameters(A) Cell Angles + 3.8420000 0.0000000 0.0000000 a = 3.842000 alpha = 90.000000 + 0.0000000 3.8420000 0.0000000 b = 3.842000 beta = 90.000000 + 0.0000000 0.0000000 9.7430000 c = 9.743000 gamma = 90.000000 + + 2 ! nspins + 32 32 90 ! fine FFT grid along + END header: data is " charge spin" in units of electrons/grid_point * nu + mber of grid_points + + 1 1 1 47.798968 0.000070 + diff --git a/lib/galaxy/datatypes/text.py b/lib/galaxy/datatypes/text.py index 2121d2aeed5..ecd579db9af 100644 --- a/lib/galaxy/datatypes/text.py +++ b/lib/galaxy/datatypes/text.py @@ -1393,6 +1393,9 @@ class FormattedDensity(Text): >>> fname = get_test_fname('Si.den_fmt') >>> FormattedDensity().sniff(fname) True + >>> fname = get_test_fname('YbCuAs2.den_fmt') + >>> FormattedDensity().sniff(fname) + True >>> fname = get_test_fname('Si.param') >>> FormattedDensity().sniff(fname) False @@ -1400,6 +1403,11 @@ class FormattedDensity(Text): begin_header = "BEGIN header" end_header = 'END header: data is " charge" in units of electrons/grid_point * number' grid_points = "of grid_points" + end_header_spin = 'END header: data is " charge spin" in units of electrons/grid_point * nu' + grid_points_spin = "mber of grid_points" handle = file_prefix.string_io() lines = handle.readlines() - return lines[0].strip() == begin_header and lines[9].strip() == end_header and lines[10].strip() == grid_points + return lines[0].strip() == begin_header and ( + (lines[9].strip() == end_header and lines[10].strip() == grid_points) + or (lines[9].strip() == end_header_spin and lines[10].strip() == grid_points_spin) + ) diff --git a/lib/galaxy/webapps/galaxy/controllers/page.py b/lib/galaxy/webapps/galaxy/controllers/page.py index c039fe1ef04..b985580db95 100644 --- a/lib/galaxy/webapps/galaxy/controllers/page.py +++ b/lib/galaxy/webapps/galaxy/controllers/page.py @@ -375,8 +375,9 @@ class PageController(BaseUIController, SharableMixin, UsesStoredWorkflowMixin, U operation = kwargs["operation"].lower() ids = util.listify(kwargs["id"]) for id in ids: - item = session.query(model.Page).get(self.decode_id(id)) if operation == "delete": + item = session.query(model.Page).get(self.decode_id(id)) + self.security_check(trans, item, check_ownership=True) item.deleted = True session.flush() @@ -478,6 +479,7 @@ class PageController(BaseUIController, SharableMixin, UsesStoredWorkflowMixin, U decoded_id = self.decode_id(id) user = trans.get_user() p = trans.sa_session.query(model.Page).get(decoded_id) + p = self.security_check(trans, p, check_ownership=True) if trans.request.method == "GET": if p.slug is None: self.slug_builder.create_item_slug(trans.sa_session, p) diff --git a/lib/galaxy/webapps/galaxy/controllers/visualization.py b/lib/galaxy/webapps/galaxy/controllers/visualization.py index 248b777ef90..6a06b54b9e8 100644 --- a/lib/galaxy/webapps/galaxy/controllers/visualization.py +++ b/lib/galaxy/webapps/galaxy/controllers/visualization.py @@ -362,8 +362,8 @@ class VisualizationController( operation = kwargs["operation"].lower() ids = util.listify(kwargs["id"]) for id in ids: - item = session.query(model.Visualization).get(self.decode_id(id)) if operation == "delete": + item = self.get_visualization(trans, id) item.deleted = True if operation == "copy": self.copy(trans, **kwargs) @@ -404,7 +404,7 @@ class VisualizationController( @web.expose @web.require_login() def copy(self, trans, id, **kwargs): - visualization = self.get_visualization(trans, id, check_ownership=False) + visualization = self.get_visualization(trans, id, check_ownership=False, check_accessible=True) user = trans.get_user() owner = visualization.user == user new_title = f"Copy of '{visualization.title}'" @@ -452,7 +452,7 @@ class VisualizationController( # Do import. session = trans.sa_session - visualization = self.get_visualization(trans, id, check_ownership=False) + visualization = self.get_visualization(trans, id, check_ownership=False, check_accessible=True) if visualization.importable is False: return trans.show_error_message( f"The owner of this visualization has disabled imports via this link.
You can {referer_message}",