block internal modules

Bug #988417 reported by Till Westmann on 2012-04-25
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Till Westmann

Bug Description

If one wants to limit the choice of of available modules for a user, this is very easy for external modules. One simply registers an URIMapper that disallows access to certain modules. However, this does not work for Zorba's internal modules as those are not resolved via the usual resolution mechanism.

Related branches

Till Westmann (tillw) on 2012-04-25
description: updated
Chris Hillery (ceejatec) wrote :

I saw the branch merge proposal before I noticed this bug, so I'll copy my comment from there:

I don't like that this mechanism is so different to the way you block non-internal modules (using a URIMapper with DENY_ACCESS). While it would be a bit less efficient, it would be more consistent to call static_context::resolve_uri() at translator.cpp line 2840 solely for the purpose of seeing if zerr::ZXQP0029_URI_ACCESS_DENIED is thrown.

Further note:

Actually it would be sufficient to call static_context::apply_uri_mappers() if we made that method non-private, or (probably better) added a method static_context::get_candidate_uris() which was exactly the same as static_context::get_component_uris() except for passing internal::URIMapper::CANDIDATE instead of COMPONENT.

Till Westmann (tillw) on 2012-05-04
Changed in zorba:
milestone: none → 2.5
status: New → In Progress
Changed in zorba:
status: In Progress → Fix Committed
Changed in zorba:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers