• last updated 14 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fixes for Oracle 19c: quick port of missing tables in acs-mail-lite from PostgreSQL

This is q quick port of the table available from PostgreSQL, which

assures that a new instance of OpenACS on Oracle can run without

spitting out frequent error messages. In essence, the sequence

handling was adjusted, and datatype "text" was replaced by

"varchar(4000)" and in one case by "clob". Probably, some of the

lengths and the update operations have to be adjusted.

Fixes for Oracle 19c: boolean types in query

This fixes the following bug for Oracle:

[13/Feb/2022:17:53:36][8701.7f9f62f0b700][-conn:oacs-5-10-0:default:0:0-] Error: nsoracle.c:1367:OracleSelect: error in `OCIStmtExecute ()': ORA-00920: invalid relational operator

:

: SQL:

:

: select p.package_id,

: p.instance_name,

: n.node_id,

: n.name,

: :subsite_url || n.name as url,

: (select count(*)

: from group_approved_member_map m

: where m.rel_type = 'membership_rel'

: and m.group_id = ag.group_id) as num_members,

: (select min(r2.member_state)

: from group_member_map m2,

: membership_rels r2

: where m2.group_id = ag.group_id

: and m2.member_id = :untrusted_user_id

: and r2.rel_id = m2.rel_id) as member_state,

: g.group_id,

: g.join_policy

: from site_nodes n,

: apm_packages p,

: application_groups ag,

: groups g

: where n.parent_id = :subsite_node_id

: and p.package_id = n.object_id

: and p.package_key in ('acs-subsite')

: and ag.package_id = p.package_id

: and g.group_id = ag.group_id

: and (g.join_policy !>>>!!= 'closed' or acs_permission.permission_p(p.package_id, :untrusted_user_id, 'read'))

: order by lower(instance_name)

:

Fixes for Oracle 19c: boolean types in query

This fixes the following bug for Oracle:

': ORA-00920: invalid relational operator

:

: SQL:

: select p.package_id,

: p.instance_name,

: n.node_id,

: n.name

: from site_nodes n,

: apm_packages p,

: apm_package_types t

: where n.parent_id = :subsite_node_id

: and p.package_id = n.object_id

: and t.package_key = p.package_key

: and t.package_type = 'apm_application'

: and acs_permission.permission_p(p.package_id, :user_id, 'read')

: !>>>!order by upper(instance_name)

:

Fixes for Oracle 19c: invalid cast to integer

This fixes the following bug for Oracle:

: invalid positional variable `:', valid values start with 1

: while executing

: "ns_ora 0or1row nsdb0 {

: select acs_permission.permission_p(:object_id, :party_id, :privilege)::integer from dual

: }"

fix editing bug

V: ----------------------------------------------------------------------

Fixes for Oracle 19c boolean types in query

This fixes the following bug for Oracle:

: select u.user_id,

: u.authority_id,

: u.username,

: u.screen_name,

: u.priv_name,

: u.priv_email,

: u.email_verified_p,

: u.email_bouncing_p,

: u.no_alerts_until,

: u.last_visit,

: to_char(last_visit, 'YYYY-MM-DD HH24:MI:SS') as last_visit_ansi,

: u.second_to_last_visit,

: to_char(second_to_last_visit, 'YYYY-MM-DD HH24:MI:SS') as second_to_last_visit_ansi,

: u.n_sessions,

: u.password,

: u.salt,

: u.password_question,

: u.password_answer,

: u.password_changed_date,

: extract(day from current_timestamp - password_changed_date) as password_age_days,

: u.auth_token,

: mm.rel_id,

: mr.member_state !>>>!= 'approved' as registered_user_p,

: mr.member_state

: from users u

: left join group_member_map mm on mm.member_id = u.user_id

: and mm.group_id = mm.container_id

: and mm.group_id = :registered_users_group_id

: and mm.rel_type = 'membership_rel'

: left join membership_rels mr on mr.rel_id = mm.rel_id

: where u.user_id = :user_id

improved error message

Fixes for Oracle 19c boolean types in query

This fixes the following bug for Oracle:

: SQL:

: select locale

: from ad_locales l

: where language = :language

: and enabled_p

: !>>>!and (default_p or not exists (select 1 from ad_locales

: where language = :language

: and locale <> l.locale))

:

Subst commands as well, include the artifact is in the websocket message

Formatting changes

Port the downstream only websocket enpoint

file proctoring-websocket.tcl was initially added on branch oacs-5-10.

file websocket.tcl was initially added on branch oacs-5-10.

file websocket.adp was initially added on branch oacs-5-10.

Rename the file so it actually has an extension

Add extension to the filename so it is preserved

Improve upgrade:

- make output more visible when executed in the apm

- when atjobs are available, schedule the upgrade to run in the background at the next restart

Dodument a rather convoluted query

Improve doc

Improve doc

Improve doc

Provide a showcase example of proctoring: admins will see the UI to examine results, regular users will start a proctored session

might be extended in the future

file display.adp was initially added on branch oacs-5-10.

file proctored-index.adp was initially added on branch oacs-5-10.

file index.tcl was initially added on branch oacs-5-10.

file index.adp was initially added on branch oacs-5-10.

file display.tcl was initially added on branch oacs-5-10.

Fix typos in message keys

fix cut&paste issue

Fixes for Oracle 19c recursive query

Oracle has a slightly differnt syntax for CTEs require arguments, keyword "recursive" is not allowed.

This fixes the following error during initial installation:

nsoracle.c:1367:OracleSelect: error in `OCIStmtExecute ()': ORA-00905: missing keyword

SQL:

with recursive !>>>!object_hierarchy as (

select object_type, supertype

from acs_object_types

where object_type = coalesce(:object_type, (select object_type

from acs_objects

where object_id = :object_id))

union all

select t.object_type, t.supertype

from acs_object_types t,

object_hierarchy s

where t.object_type = s.supertype

)

select distinct callback, callback_type as type

from subsite_callbacks

where event_type = :event_type

and object_type in (select object_type from object_hierarchy)