antoniop in OpenACS

Port of downstream logic: do not use a hardcoded list of local authorities, but rather check if the authority implementation is local, which would handle also other downstream local authorities

Rework the idiom to perform cheap checks first and improve documentation

Piggyback some more api to existing tests

Whitespace cleanup

Fix var name

Creating a user without a username is possible if the authority is local, include the test authority among those for which we generate a username, as it is also local as in "hosted locally"

Fixes acs-authentication.auth_use_email_for_login_p automated test

Make api public

Add a new subsite::parameter_changed implementation for xowiki, reacting to the switching of the use_hstore parameter

This way it won't be necessary for other packages to generate the hstore manually using private api

    • -11
    • +24
    /openacs-4/packages/xowiki/tcl/package-procs.tcl
Add documentation

Reinstate api as private, downstream cases need to be adapted

Make api public: uses public api internally and downstream packages use it

Make api public: downstream xowiki-like packages use it to extend uninstantiation logics

Make proc public: many downstream packages use it e.g. in their upgrade scripts

Make api public

Make api public

We cannot use bind variables here, as the query is not executed at this time, but later at bulk mail sweeping

    • -1
    • +1
    /openacs-4/packages/dotlrn/www/spam.xql
Provide a public general-comments solution to empty messages from a specific package: other xowiki-like packages downstream would otherwise need to call a xowiki private api

Formatting changes

Reduce divergency between oracle and postgres codebase

Whitespace cleanup

Make api public as other packages might need to retrieve the portlet name

Flush also the threaded cache whenever we flush the permission cache, so that one does not need to call this private api directly

Reinstate get_portal_id_not_cached as private, replace occurrences with public api

Reinstate get_portal_id_not_cached as private, flush the cache before calling public api instead

    • -1
    • +1
    /openacs-4/packages/dotlrn/tcl/dotlrn-procs.tcl
Fix api:

upstream dotlrn mounts dotlrn-forums at /dotlrn/forums/, but testcase dotlrn_forums__applet_portlet (dotlrn-forums) deletes such node and replaces it with a new one at /dotlrn/applets/forums/. As site_node::get_package_url does not get flushed, the api will expect to find the mounted instance at the old URL, which now resolves to the parent dotlrn instead! Fix this by not relying on the cache to retrieve the applet node id.

Provide a cached public api, reinstate uncached api as private, replace occurrences

Do not invoke service contract implementations directly, use the public interface

    • -13
    • +18
    /openacs-4/packages/acs-tcl/tcl/install-procs.tcl
Replace deprecated api

- Rework acs-api-browser.callgraph__bad_calls automated test so that acs-service-contract calling contract implementation is considered OK

- Reinstate authentication service contracts as private

- Move test authority implementation to acs-authentication to remove intra-package dependency

acs-api-browser.callgraph__bad_call still fails because proc acs-tcl.install::xml::action::create-user calls private acs-authentication.auth::local::registration::Register... to be continued

file test-authority-procs.tcl was initially added on branch oacs-5-10.

Reinstate apis as public, as they hold the current definition of an all-day event