Lars Pind
Authentication, account management, and related functionality.
- 2017-08-06
+ 2019-01-16
Collaboraid
3
GPL version 2
Implements authentication-related security functions for OpenACS, including password, account and session management, bulk account creation etc. Provides a contract based interface for different authentication methods such as PAM or LDAP based authentication.
-
+
Index: openacs-4/packages/acs-authentication/catalog/acs-authentication.de_DE.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/catalog/acs-authentication.de_DE.ISO-8859-1.xml,v
diff -u -r1.8 -r1.8.2.1
--- openacs-4/packages/acs-authentication/catalog/acs-authentication.de_DE.ISO-8859-1.xml 1 Mar 2018 13:35:13 -0000 1.8
+++ openacs-4/packages/acs-authentication/catalog/acs-authentication.de_DE.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.8.2.1
@@ -4,8 +4,10 @@
Zur Gemeinschaft hinzuf�gen
Zu %system_name% hinzuf�gen
Hat kein Benutzerkonto auf %system_name%
+ Falls Sie gerade ein Formular bearbeitet haben, bitte den Zur�ck-Button verwenden und dieses erneut einreichen.
Hat ein Benutzerkonto auf %system_name%
Benutzeridentifikation oder Passwort ist falsch
+ Ihre Sitzung ist abgelaufen. Die ermittelte Return-URL ist zu lange um automatisch fortfahren zu k�nnen.
Nicht die Resultate, die Sie erwartet haben? Suchen Sie nach:
Zugriff aufgrund zu vieler fehlgeschlagener Anmeldeversuche tempor�r gesperrt. Versuchen Sie es sp�ter erneut!
Index: openacs-4/packages/acs-authentication/catalog/acs-authentication.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/catalog/acs-authentication.en_US.ISO-8859-1.xml,v
diff -u -r1.12 -r1.12.2.1
--- openacs-4/packages/acs-authentication/catalog/acs-authentication.en_US.ISO-8859-1.xml 22 Jun 2018 08:33:48 -0000 1.12
+++ openacs-4/packages/acs-authentication/catalog/acs-authentication.en_US.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.12.2.1
@@ -4,8 +4,10 @@
Add to Community
Add to %system_name%
Does not have an account on %system_name%
+ If you were editing a form, please use the back button after logging in and resubmit the form.
Has an account on %system_name%
Invalid username or password
+ Your login expired and the computed URL for automated continuation is too long.
Not getting the results you expected? Try searching:
Access rejected because of too many invalid login attempts. Try again later!
Index: openacs-4/packages/acs-authentication/catalog/acs-authentication.es_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/catalog/acs-authentication.es_ES.ISO-8859-1.xml,v
diff -u -r1.9 -r1.9.2.1
--- openacs-4/packages/acs-authentication/catalog/acs-authentication.es_ES.ISO-8859-1.xml 22 Jun 2018 10:46:50 -0000 1.9
+++ openacs-4/packages/acs-authentication/catalog/acs-authentication.es_ES.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.9.2.1
@@ -4,8 +4,10 @@
A�adir a comunidad
A�adir a %system_name%
No tiene cuenta en %system_name%
+ Si estaba editando un formulario, pulse el bot�n de volver tras registrarse y vuelva a enviarlo, por favor.
Tiene cuenta en %system_name%
Usuario o contrase�a erroneo
+ Su registro ha expirado y la URL computada para continuar autom�ticamente es demasiado larga.
Si no ha obtenido los resultados esperados, intente buscar:
Acceso denegado: demasiados intentos err�neos. Int�ntelo de nuevo mas tarde.
Index: openacs-4/packages/acs-authentication/catalog/acs-authentication.it_IT.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/catalog/acs-authentication.it_IT.ISO-8859-1.xml,v
diff -u -r1.8 -r1.8.2.1
--- openacs-4/packages/acs-authentication/catalog/acs-authentication.it_IT.ISO-8859-1.xml 22 Jun 2018 08:33:48 -0000 1.8
+++ openacs-4/packages/acs-authentication/catalog/acs-authentication.it_IT.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.8.2.1
@@ -4,8 +4,10 @@
Aggiungi alla Comunit�
Aggiungi a %system_name%
Non ha un account su %system_name%
+ Se stavi editando una form, clicca il tasto indietro dopo esserti loggato e re-invia la form.
Ha un account su %system_name%
Nome utente o password non sono corretti
+ Il tuo login � scaduto e lo URL generato per continuare automaticamente � troppo lungo.
Non stai ottenendo i risultati che ti aspettavi? Prova a cercare:
Accesso negato a causa di troppi tentativi di login falliti. Riprova pi� tardi!
Index: openacs-4/packages/acs-bootstrap-installer/installer/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-bootstrap-installer/installer/index.tcl,v
diff -u -r1.32 -r1.32.2.1
--- openacs-4/packages/acs-bootstrap-installer/installer/index.tcl 31 Jan 2018 20:45:38 -0000 1.32
+++ openacs-4/packages/acs-bootstrap-installer/installer/index.tcl 14 Feb 2019 10:02:36 -0000 1.32.2.1
@@ -80,7 +80,7 @@
append body [subst {
For more information about the $acs_application(pretty_name) application visit the
$acs_application(pretty_name) home page
- }
+ }]
}
} else {
set acs_application(name) openacs
Index: openacs-4/packages/acs-kernel/acs-kernel.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/acs-kernel.info,v
diff -u -r1.150 -r1.150.2.1
--- openacs-4/packages/acs-kernel/acs-kernel.info 28 Jan 2019 21:44:12 -0000 1.150
+++ openacs-4/packages/acs-kernel/acs-kernel.info 14 Feb 2019 10:02:36 -0000 1.150.2.1
@@ -9,15 +9,15 @@
f
t
-
+
OpenACS Core Team
Routines and data models providing the foundation for OpenACS-based Web services.
2017-08-06
OpenACS
The OpenACS kernel contains the core datamodel create and drop scripts for such things as objects, groups, partiies and the supporting PL/SQL and PL/pgSQL procedures.
3
-
+
Index: openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql,v
diff -u -r1.4 -r1.4.2.1
--- openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql 7 Aug 2017 23:47:56 -0000 1.4
+++ openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql 14 Feb 2019 10:02:36 -0000 1.4.2.1
@@ -36,6 +36,42 @@
function index_exists (
name in varchar2)
return boolean;
+
+ function foreign_key_exists (
+ table IN varchar2,
+ column IN varchar2,
+ reftable IN varchar2,
+ refcolumn IN varchar2)
+ return boolean;
+
+ function unique_exists (
+ table IN varchar2,
+ column IN varchar2,
+ single_p IN boolean default true)
+ return boolean;
+
+ function primary_key_exists (
+ table IN varchar2,
+ column IN varchar2,
+ single_p IN boolean default true)
+ return boolean;
+
+ function not_null_exists (
+ table IN varchar2,
+ column IN varchar2)
+ return boolean;
+
+ function get_default (
+ table IN varchar2,
+ column IN varchar2)
+ return LONG;
+
+ TYPE primary_keys IS TABLE OF varchar2;
+
+ function get_primary_keys(table IN varchar2)
+ return primary_keys
+ PIPELINED;
+
end util;
/
show errors
@@ -168,6 +204,156 @@
return v_exists;
END index_exists;
+ function foreign_key_exists (
+ table IN varchar2,
+ column IN varchar2,
+ reftable IN varchar2,
+ refcolumn IN varchar2)
+ return boolean
+ as
+ v_count integer;
+ v_exists boolean;
+
+ begin
+ select decode(count(*),0,0,1) into v_count
+ from user_constraints cons
+ left join user_cons_columns cols on cols.constraint_name = cons.constraint_name
+ left join user_constraints cons_r on cons_r.constraint_name = cons.r_constraint_name
+ left join user_cons_columns cols_r on cols_r.constraint_name = cons.r_constraint_name
+ where cons.constraint_type = 'R'
+ and cons.table_name = foreign_key_exists.table
+ and cols.column_name = foreign_key_exists.column
+ and cons_r.table_name = foreign_key_exists.reftable
+ and cols_r.column_name = foreign_key_exists.refcolumn;
+
+ if v_count = 1 then
+ v_exists := true;
+ else
+ v_exists := false;
+ end if;
+
+ return v_exists;
+ end foreign_key_exists;
+
+ function unique_exists (
+ table IN varchar2,
+ column IN varchar2,
+ single_p IN boolean default true)
+ return boolean
+ as
+ v_count integer;
+ v_exists boolean;
+
+ begin
+ select decode(count(*),0,0,1) into v_count
+ from all_constraints c
+ join all_cons_columns cc on (c.owner = cc.owner
+ and c.constraint_name = cc.constraint_name)
+ where c.constraint_type = 'U'
+ and c.table_name = unique_exists.table
+ and cc.column_name = unique_exists.column
+ and (not unique_exists.single_p or (
+ select count(*) from all_cons_columns
+ where constraint_name = c.constraint_name) = 1);
+ if v_count = 1 then
+ v_exists := true;
+ else
+ v_exists := false;
+ end if;
+
+ return v_exists;
+ END unique_exists;
+
+ function primary_key_exists (
+ table IN varchar2,
+ column IN varchar2,
+ single_p IN boolean default true)
+ return boolean
+ as
+ v_count integer;
+ v_exists boolean;
+
+ begin
+ select decode(count(*),0,0,1) into v_count
+ from all_constraints c
+ join all_cons_columns cc on (c.owner = cc.owner
+ and c.constraint_name = cc.constraint_name)
+ where c.constraint_type = 'P'
+ and c.table_name = primary_key_exists.table
+ and cc.column_name = primary_key_exists.column
+ and (not primary_key_exists.single_p or (
+ select count(*) from all_cons_columns
+ where constraint_name = c.constraint_name
+ and owner = c.owner) = 1);
+
+ if v_count = 1 then
+ v_exists := true;
+ else
+ v_exists := false;
+ end if;
+
+ return v_exists;
+ END primary_key_exists;
+
+ function not_null_exists (
+ table IN varchar2,
+ column IN varchar2)
+ return boolean
+ as
+ v_count integer;
+ v_exists boolean;
+
+ begin
+ select decode(count(*),0,0,1) into v_count
+ from all_tab_columns
+ where table_name = not_null_exists.table
+ and column_name = not_null_exists.column
+ and nullable = 'N';
+
+ if v_count = 1 then
+ v_exists := true;
+ else
+ v_exists := false;
+ end if;
+
+ return v_exists;
+ END not_null_exists;
+
+ function get_default (
+ table in varchar2,
+ column in varchar2)
+ return long
+ as
+ v_value long;
+
+ begin
+ select data_default into v_value
+ from all_tab_columns
+ where table_name = get_default.table
+ and column_name = get_default.column;
+
+ return v_value;
+ end get_default;
+
+ function get_primary_keys(
+ table in varchar2)
+ return primary_keys
+ as
+ v_rec primary_keys;
+
+ begin
+ select cols.column_name
+ bulk collect into v_rec
+ from all_constraints cons, all_cons_columns cols
+ where cols.table_name = get_primary_keys.table
+ and cons.constraint_type = 'P'
+ and cons.constraint_name = cols.constraint_name
+ and cons.owner = cols.owner
+ order by cols.table_name, cols.position;
+
+ return v_rec;
+ end get_primary_keys;
+
end util;
/
show errors
Index: openacs-4/packages/acs-lang/tcl/localization-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/tcl/localization-procs.tcl,v
diff -u -r1.29 -r1.29.2.1
--- openacs-4/packages/acs-lang/tcl/localization-procs.tcl 3 Nov 2018 19:47:34 -0000 1.29
+++ openacs-4/packages/acs-lang/tcl/localization-procs.tcl 14 Feb 2019 10:02:36 -0000 1.29.2.1
@@ -201,7 +201,7 @@
ad_proc -public clock_to_ansi {
seconds
} {
- Convert a time in the Tcl internal clock seeconds format to ANSI format, usable by lc_time_fmt.
+ Convert a time in the Tcl internal clock seconds format to ANSI format, usable by lc_time_fmt.
@author Lars Pind (lars@pinds.com)
@return ANSI (YYYY-MM-DD HH24:MI:SS) formatted date.
@@ -530,7 +530,7 @@
ad_proc -public lc_list_all_timezones { } {
- @return list of pairs containing all timezone names and offsets.
+ @return list of pairs containing all timezone names and offsets.
Data drawn from acs-reference package timezones table
} {
return [db_list_of_lists all_timezones {}]
Index: openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl,v
diff -u -r1.33 -r1.33.2.1
--- openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl 4 Oct 2018 09:53:51 -0000 1.33
+++ openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl 14 Feb 2019 10:02:36 -0000 1.33.2.1
@@ -1,6 +1,6 @@
ad_library {
- Support library for acs service contracts.
-
+ Support library for acs service contracts.
+
@author Neophytos Demetriou
@creation-date 2001-09-01
@cvs-id $Id$
@@ -28,15 +28,15 @@
the contract you passed in. If you supply both impl_id and impl, we throw an error.
Additional documentation and commentary at http://openacs.org/forums/message-view?message_id=108614.
-
+
@param contract The name of the contract you wish to use.
@param operation The name of the operation in the contract you wish to call.
@param impl The name of the implementation you wish to use.
@param impl_id The ID of the implementation you wish to use.
@param call_args The arguments you want to pass to the proc.
@param error If specified, will throw an error if the operation isn't implemented.
-
+
@author Lars Pind (lars@collaboraid.biz)
@see acs_sc_call
} {
@@ -58,13 +58,13 @@
set proc_name [acs_sc_generate_name $contract $impl $operation]
if { [info commands $proc_name] ne "" } {
- return [ad_apply $proc_name $call_args]
- }
+ return [ad_apply $proc_name $call_args]
+ }
if { $error_p } {
- error "Operation $operation is not implemented in '$impl' implementation of contract '$contract'"
+ error "Operation $operation is not implemented in '$impl' implementation of contract '$contract'"
} else {
- ns_log warning "ACS-SC: Function Not Found: $proc_name [info commands $proc_name]"
+ ns_log warning "ACS-SC: Function Not Found: $proc_name [info commands $proc_name]"
}
return
}
@@ -80,14 +80,14 @@
contract
impl
} {
- Returns a boolean depending on whether or not the binding between
+ Returns a boolean depending on whether or not the binding between
the contract and implementation exists.
- @param contract the contract name
- @param impl the implementation name
+ @param contract the contract name
+ @param impl the implementation name
@return 0 or 1
-
+
@author Neophytos Demetriou
} {
@@ -113,10 +113,10 @@
operation
impl
} {
- Returns the implementation alias (the
- proc defined to handle a given operation
- for a given implementation).
-
+ Returns the implementation alias (the
+ proc defined to handle a given operation
+ for a given implementation).
+
@author Neophytos Demetriou
} {
# LARS
@@ -125,7 +125,7 @@
#set exists_p [util_memoize [list acs_sc_binding_exists_p $contract $impl]]
if {![set exists_p]} {return ""}
-
+
db_0or1row get_alias {
select impl_alias, impl_pl
from acs_sc_impl_aliases
@@ -145,7 +145,7 @@
{impl_alias {}}
{impl_pl {}}
} {
- Builds the proc used by acs_sc::invoke, generally only called
+ Builds the proc used by acs_sc::invoke, generally only called
in acs-service-contract-init.tcl at startup.
@return 0 on failure, 1 on success.
@@ -157,26 +157,26 @@
set proc_name [acs_sc_generate_name $contract $impl $operation]
acs_sc_log SCDebug "ACS_SC_PROC: proc_name = $proc_name"
-
+
if { $impl_alias eq "" } {
- lassign [acs_sc_get_alias $contract $operation $impl] impl_alias impl_pl
+ lassign [acs_sc_get_alias $contract $operation $impl] impl_alias impl_pl
}
if { $impl_alias eq "" } {
- error "ACS-SC: Cannot find alias for $proc_name"
+ error "ACS-SC: Cannot find alias for $proc_name"
}
if {![db_0or1row get_operation_definition {
- select
- operation_desc,
- coalesce(operation_iscachable_p,'f') as operation_iscachable_p,
- operation_nargs,
- operation_inputtype_id,
- operation_outputtype_id
- from acs_sc_operations
- where contract_name = :contract
- and operation_name = :operation
- }]} {
+ select
+ operation_desc,
+ coalesce(operation_iscachable_p,'f') as operation_iscachable_p,
+ operation_nargs,
+ operation_inputtype_id,
+ operation_outputtype_id
+ from acs_sc_operations
+ where contract_name = :contract
+ and operation_name = :operation
+ }]} {
ns_log warning "ACS-SC: operation definition not found for contract $contract operation $operation"
return 0
}
@@ -185,27 +185,27 @@
set msg_type_id $operation_inputtype_id
db_foreach operation_msgtype_element {} {
- lappend arguments "$element_name"
- append docblock "\n@param $element_name $element_msg_type_name"
- if { $element_msg_type_isset_p } {
- append docblock " \[\]"
- }
+ lappend arguments "$element_name"
+ append docblock "\n@param $element_name $element_msg_type_name"
+ if { $element_msg_type_isset_p } {
+ append docblock " \[\]"
+ }
}
- set msg_type_id $operation_outputtype_id
+ set msg_type_id $operation_outputtype_id
db_foreach operation_msgtype_element {} {
- append docblock "\n@return $element_name - $element_msg_type_name"
- if { $element_msg_type_isset_p } {
- append docblock " \[\]"
- }
+ append docblock "\n@return $element_name - $element_msg_type_name"
+ if { $element_msg_type_isset_p } {
+ append docblock " \[\]"
+ }
}
append docblock "\n@see $impl_alias\n@see acs_sc::invoke"
set full_statement [acs_sc_get_statement $impl_alias $impl_pl $arguments]
if { $operation_iscachable_p } {
- set full_statement "util_memoize \"$full_statement\""
+ set full_statement "util_memoize \"$full_statement\""
}
#FIX ME: CALL BY NAME USING UPVAR
@@ -214,18 +214,20 @@
set arguments [join $arguments]
acs_sc_log SCDebug "ACS-SC: ad_proc $proc_name $arguments\n$docblock\n$body\n"
ad_proc -private $proc_name $arguments $docblock $body
-
+
return 1
}
ad_proc acs_sc_update_alias_wrappers {} {
Loop over actual bindings, finding every impl alias for each contract operation
- and adfine a "acs_sc_proc" for all of these.
-
+ and call "acs_sc_proc" for all of these.
+
+ @see acs_sc_proc
+
} {
db_foreach impl_operation {
- select ia.impl_contract_name,
+ select ia.impl_contract_name,
ia.impl_operation_name,
ia.impl_name,
ia.impl_alias,
@@ -249,7 +251,7 @@
}
} errorMsg]} {
ns_log error "Service contract initialization failed, call was:\n\
- acs_sc_proc $impl_contract_name $impl_operation_name $impl_name $impl_alias $impl_pl"
+ acs_sc_proc $impl_contract_name $impl_operation_name $impl_name $impl_alias $impl_pl"
}
}
}
@@ -270,24 +272,24 @@
switch $impl_pl {
- TCL {
- set full_statement [list $impl_alias]
- for {set __i 0} {$__i < [llength $arguments]} {incr __i} {
- lappend full_statement "\$[lindex $arguments $__i]"
- }
- set full_statement [join $full_statement]
- }
- PLPGSQL {
- set args_list [list]
- for {set __i 0} {$__i < [llength $arguments]} {incr __i} {
- lappend args_list "\$[lindex $arguments $__i]"
- }
- set args_final [join $args_list ,]
- set full_statement "db_exec_plsql full_statement \"select ${impl_alias}(${args_final})\""
- }
- default {
- error "ACS-SC: Unknown impl_pl: $impl_pl"
- }
+ TCL {
+ set full_statement [list $impl_alias]
+ for {set __i 0} {$__i < [llength $arguments]} {incr __i} {
+ lappend full_statement "\$[lindex $arguments $__i]"
+ }
+ set full_statement [join $full_statement]
+ }
+ PLPGSQL {
+ set args_list [list]
+ for {set __i 0} {$__i < [llength $arguments]} {incr __i} {
+ lappend args_list "\$[lindex $arguments $__i]"
+ }
+ set args_final [join $args_list ,]
+ set full_statement "db_exec_plsql full_statement \"select ${impl_alias}(${args_final})\""
+ }
+ default {
+ error "ACS-SC: Unknown impl_pl: $impl_pl"
+ }
}
return $full_statement
@@ -302,7 +304,7 @@
} {
Additional documentation and commentary at http://openacs.org/forums/message-view?message_id=108614.
- @param contract the contract name
+ @param contract the contract name
@param operation the method to invoke
@param arguments list of arguments to pass to the method
@param impl the implementation name.
@@ -313,10 +315,9 @@
@see acs_sc::invoke
} {
acs_sc::invoke -contract $contract -operation $operation -impl $impl -call_args $arguments -error=$error_p
-}
+}
-
##
## Logging
##
@@ -326,7 +327,7 @@
# If you want to debug the SC, uncomment the Debug log below
if { "SCDebug" ne $level } {
ns_log $level "$msg"
- } else {
+ } else {
# ns_log Debug "$msg"
}
}
Index: openacs-4/packages/acs-templating/acs-templating.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/acs-templating.info,v
diff -u -r1.66 -r1.66.2.1
--- openacs-4/packages/acs-templating/acs-templating.info 26 Jun 2018 19:31:20 -0000 1.66
+++ openacs-4/packages/acs-templating/acs-templating.info 14 Feb 2019 10:02:36 -0000 1.66.2.1
@@ -9,10 +9,10 @@
f
t
-
+
OpenACS
Templating library.
- 2017-08-06
+ 2019-01-23
OpenACS
The templating system provides the tag library and support routines
that allow developers and graphic designers to work
@@ -27,7 +27,7 @@
GPL version 2
3
-
+
Index: openacs-4/packages/intermedia-driver/tcl/intermedia-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/intermedia-driver/tcl/intermedia-procs.tcl,v
diff -u -r1.4 -r1.4.4.1
--- openacs-4/packages/intermedia-driver/tcl/intermedia-procs.tcl 27 Oct 2014 16:41:45 -0000 1.4
+++ openacs-4/packages/intermedia-driver/tcl/intermedia-procs.tcl 14 Feb 2019 10:02:36 -0000 1.4.4.1
@@ -6,37 +6,37 @@
Search Index Callback for Oracle Intermedia
@author Dave Bauer (dave@thedesignexperience.org)
@creation-date 2005-06-12
-
+
} {
# we want the datasource array reference in case we want to do something clever
if {$datasource ne ""} {
- upvar $datasource _datasource
+ upvar $datasource _datasource
}
set content "${title} ${content}"
# if storage type is file, store the text in the site_wide_index table
if {![db_string index_exists "select 1 from site_wide_index where object_id=:object_id" -default 0]} {
- db_dml index "insert into site_wide_index
- (object_id, object_name, package_id, relevant_date, community_id, indexed_content)
- values
- (:object_id, :title, :package_id, :relevant_date, :community_id, empty_clob() )
- returning indexed_content into :1" -clobs [list $content]
+ db_dml index "insert into site_wide_index
+ (object_id, object_name, package_id, relevant_date, community_id, indexed_content)
+ values
+ (:object_id, :title, :package_id, :relevant_date, :community_id, empty_clob() )
+ returning indexed_content into :1" -clobs [list $content]
} else {
- # call the update index proc since this object is already indexed
- callback -impl intermedia-driver search::update_index \
- -object_id $object_id \
- -content $content \
- -title $title \
- -keywords $keywords \
- -community_id $community_id \
- -relevant_date $relevant_date \
- -description $description \
- -datasource $datasource \
- -package_id $package_id
+ # call the update index proc since this object is already indexed
+ callback -impl intermedia-driver search::update_index \
+ -object_id $object_id \
+ -content $content \
+ -title $title \
+ -keywords $keywords \
+ -community_id $community_id \
+ -relevant_date $relevant_date \
+ -description $description \
+ -datasource $datasource \
+ -package_id $package_id
}
-
+
}
ad_proc -public -callback search::update_index -impl intermedia-driver {} {
@@ -45,29 +45,29 @@
@creation-date 2005-08-01
} {
if {$datasource ne ""} {
- upvar $datasource _datasource
- }
+ upvar $datasource _datasource
+ }
if {![db_string index_exists "select 1 from site_wide_index where object_id=:object_id" -default 0]} {
- callback -impl intermedia-driver search::index \
- -object_id $object_id \
- -content $content \
- -title $title \
- -keywords $keywords \
- -community_id $community_id \
- -relevant_date $relevant_date \
- -description $description \
- -datasource $datasource \
- -package_id $package_id
- return
+ callback -impl intermedia-driver search::index \
+ -object_id $object_id \
+ -content $content \
+ -title $title \
+ -keywords $keywords \
+ -community_id $community_id \
+ -relevant_date $relevant_date \
+ -description $description \
+ -datasource $datasource \
+ -package_id $package_id
+ return
} else {
- db_dml index "update site_wide_index
- set object_name=:title,
- package_id=:package_id,
- community_id=:community_id,
- relevant_date=:relevant_date,
- indexed_content=empty_clob()
- where object_id=:object_id
- returning indexed_content into :1" -clobs [list $content]
+ db_dml index "update site_wide_index
+ set object_name=:title,
+ package_id=:package_id,
+ community_id=:community_id,
+ relevant_date=:relevant_date,
+ indexed_content=empty_clob()
+ where object_id=:object_id
+ returning indexed_content into :1" -clobs [list $content]
}
}
@@ -94,19 +94,19 @@
@param object_type
} {
if {[info exists package_ids] && [llength $package_ids]} {
- set package_ids_clause " and swi.package_id in ([template::util::tcl_to_sql_list $package_ids]) "
+ set package_ids_clause " and swi.package_id in ([template::util::tcl_to_sql_list $package_ids]) "
} else {
- set package_ids_clause ""
+ set package_ids_clause ""
}
if {[info exists object_type] && $object_type eq "forums"} {
- set object_type_clause " and o.object_type in ('forums_forum', 'forums_message') "
+ set object_type_clause " and o.object_type in ('forums_forum', 'forums_message') "
} elseif {[info exists object_type] && $object_type ne "all" } {
- set object_type_clause " and o.object_type = :object_type "
+ set object_type_clause " and o.object_type = :object_type "
} else {
- set object_type_clause ""
+ set object_type_clause ""
}
-
+
set weighted_score "score(10) - case when object_type='faq'
then nvl(months_between(sysdate,relevant_date)/4,20)
when object_type='forums'
@@ -127,7 +127,7 @@
set people_search_clause { o.object_type = 'phb_person' or }
if {[apm_package_installed_p "dotlrn"]} {
- set is_guest_p [search::is_guest_p]
+ set is_guest_p [db_string get_is_guest_p {select dotlrn_privacy.guest_p(:user_id) from dual}]
if {$is_guest_p} {
set people_search_clause { and }; # doesn't look like legal SQL
}
@@ -144,33 +144,33 @@
set member_clause {}
}
- set results_ids [db_list search "select s.object_id from
+ set results_ids [db_list search "select s.object_id from
(select rownum as r,o.object_id
- from site_wide_index swi, acs_objects o
- where swi.object_id= o.object_id
+ from site_wide_index swi, acs_objects o
+ where swi.object_id= o.object_id
$object_type_clause
- and contains (swi.indexed_content,:query, 10)> 0
+ and contains (swi.indexed_content,:query, 10)> 0
and (
- $people_search_clause
+ $people_search_clause
(exists (select 1
from acs_object_party_privilege_map m
where m.object_id = o.object_id
and m.party_id = :user_id
- and m.privilege = 'read')
+ and m.privilege = 'read')
$community_id_clause))
$package_ids_clause
order by $weighted_score desc) s where r > $offset and r <= $offset + $limit"]
# TODO implement stopwords reporting for user query
- set count [db_string count "select count(swi.object_id) from site_wide_index swi, acs_objects o where o.object_id=swi.object_id $object_type_clause and contains (swi.indexed_content,:query)> 0
+ set count [db_string count "select count(swi.object_id) from site_wide_index swi, acs_objects o where o.object_id=swi.object_id $object_type_clause and contains (swi.indexed_content,:query)> 0
and (
- $people_search_clause
+ $people_search_clause
(exists (select 1
from acs_object_party_privilege_map m
where m.object_id = o.object_id
and m.party_id = :user_id
- and m.privilege = 'read')
+ and m.privilege = 'read')
$member_clause))
$package_ids_clause "]
set stop_words ""
@@ -206,7 +206,13 @@
@author Dave Bauer (dave@thedesignexperience.org)
@creation-date 2005-05-29
-
+
} {
return [list package_key intermedia-driver version 1 automatic_and_queries_p 1 stopwords_p 1]
}
+
+# Local variables:
+# mode: tcl
+# tcl-indent-level: 4
+# indent-tabs-mode: nil
+# End:
Index: openacs-4/packages/notifications/catalog/notifications.it_IT.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/catalog/notifications.it_IT.ISO-8859-1.xml,v
diff -u -r1.14 -r1.14.2.1
--- openacs-4/packages/notifications/catalog/notifications.it_IT.ISO-8859-1.xml 7 Aug 2017 23:48:13 -0000 1.14
+++ openacs-4/packages/notifications/catalog/notifications.it_IT.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.14.2.1
@@ -30,6 +30,8 @@
Annulla Iscrizione
Richiedi notifiche
Regola le notifiche
+ Nessuna notifica
+ Nessuno ha sottoscritto le notifiche per questo oggetto
Notifica
Risposte a Notifica
Risposta a Notifica
Index: openacs-4/packages/openacs-default-theme/lib/plain-master.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/openacs-default-theme/lib/plain-master.tcl,v
diff -u -r1.6 -r1.6.2.1
--- openacs-4/packages/openacs-default-theme/lib/plain-master.tcl 7 Aug 2017 23:48:13 -0000 1.6
+++ openacs-4/packages/openacs-default-theme/lib/plain-master.tcl 14 Feb 2019 10:02:36 -0000 1.6.2.1
@@ -4,7 +4,7 @@
Properties allowed
doc(title) HTML title
head code to be entered into head of document
- body
+ body
focus HTML id of form element to focus
skip_link href of link to skip to. Should be of format #skip_link
main_content_p if true wrap in the main content divs (if false, provide your own
@@ -53,7 +53,7 @@
}
}
-#
+#
# User information and top level navigation links
#
set user_id [ad_conn user_id]
@@ -96,7 +96,7 @@
#
util_get_user_messages -multirow user_messages
-#
+#
# Set acs-lang urls
#
set acs_lang_url [apm_package_url_from_key "acs-lang"]
@@ -144,6 +144,7 @@
} else {
set context_tmp {}
}
+# ns_log notice "context_tmp <$context_tmp>"
ad_context_bar_multirow -- $context_tmp
@@ -153,7 +154,7 @@
#
# Curriculum specific bar
-# TODO: remove this and add a more systematic / package independent way
+# TODO: remove this and add a more systematic / package independent way
# TODO of getting this content here
#
set curriculum_bar_p [expr {
Index: openacs-4/tcl/zz-postload.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/tcl/zz-postload.tcl,v
diff -u -r1.7 -r1.7.2.1
--- openacs-4/tcl/zz-postload.tcl 7 Aug 2017 23:48:31 -0000 1.7
+++ openacs-4/tcl/zz-postload.tcl 14 Feb 2019 10:02:36 -0000 1.7.2.1
@@ -12,7 +12,7 @@
ns_log "Notice" "Done."
# This should probably be moved to the end of bootstrap.tcl once all files are
-# weeded out of the tcl directory.
+# weeded out of the Tcl directory.
ns_log "Notice" "Executing initialization code blocks..."
foreach init_item [nsv_get ad_after_server_initialization .] {
array set init $init_item
@@ -36,7 +36,7 @@
proc __is_xql {arg} {
return [expr {[file isdirectory $arg] || [file extension $arg] eq ".xql"}]}
-# We need to load query files for the top-level stuff in www and tcl
+# We need to load query files for the top-level stuff in www and Tcl
# dirs is the list of directories to walk for xql files. Packages .xql
# files are parsed elsewhere in the bootstrap process.
Index: openacs-4/www/blank-master.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/www/blank-master.tcl,v
diff -u -r1.57 -r1.57.2.1
--- openacs-4/www/blank-master.tcl 7 Aug 2017 23:48:31 -0000 1.57
+++ openacs-4/www/blank-master.tcl 14 Feb 2019 10:02:36 -0000 1.57.2.1
@@ -1,5 +1,5 @@
ad_page_contract {
- This is the top level master template. It allows the basic parts of an HTML
+ This is the top-level master template. It allows the basic parts of an HTML
document to be set through convenient data structures without introducing
anything site specific.
@@ -16,7 +16,7 @@
@property doc(title_lang) The language of the document title, if different
from the document language.
- The document output can be customised by supplying the following variables:
+ The document output can be customized by supplying the following variables:
@property doc(type) The declared xml DOCTYPE.
@property doc(charset) The document character set.
@@ -26,7 +26,7 @@
ad_conn -set language Must be used to override the document language
if necessary.
- To add a CSS or Javascripts to the section of the document you can
+ To add CSS or JavaScript files to the section of the document you can
call the corresponding template::head::add_* functions within your page.
@see template::head::add_css
@@ -40,7 +40,7 @@
@see template::head::add_link
@see template::head::add_script
- Javascript event handlers, such as onload, an be added to the tag by
+ JavaScript event handlers, such as onload, an be added to the tag by
calling template::add_body_handler within your page.
@see template::add_body_handler
@@ -73,14 +73,26 @@
-lang en \
-content "OpenACS version [ad_acs_version]"
-# Add standard javascript
+# Add standard JavaScript
#
# Include core.js inclusion to the bottom of the body.
template::add_body_script -type "text/javascript" -src "/resources/acs-subsite/core.js"
#
-# Add css for the current subsite, defaulting to the old list/form css which was
+# Add page plugin specific code
+#
+# The check is transitional code (until the release of OpenACS 5.11 or
+# 5.12) and is just upgrading the package from earlier versions, where
+# e.g. the blank master is installed before the subsite definitions
+# for the page_plugin callback. Templates are required to be very
+# robust.
+if {[info commands ::callback::subsite::page_plugin::*] ne ""} {
+ callback subsite::page_plugin
+}
+
+#
+# Add CSS for the current subsite, defaulting to the old list/form CSS which was
# hard-wired in previous versions of OpenACS.
set cssList [parameter::get -package_id [ad_conn subsite_id] -parameter ThemeCSS -default ""]
@@ -153,14 +165,7 @@
# page (that might require a list of the HTML IDs of all affected
# textareas).
#
-# We check whether render_widgets command exists, as during a release
-# upgrade this could be missing and would prevent any further action
-# on the system after installing new code
-if {[info proc ::template::util::richtext::render_widgets] ne ""} {
- ::template::util::richtext::render_widgets
-} else {
- ns_log warning "::template::util::richtext::render_widgets not defined. Richtext widgets won't work. Try restarting the server."
-}
+::template::util::richtext::render_widgets
#
# Get the basic content info like title and charset for the head of
@@ -190,7 +195,7 @@
-content "text/html; charset=$doc(charset)" \
-http_equiv "content-type"
#
-# The following meta tags are unknwon for HTML5, therefore discouraged
+# The following meta tags are unknown for HTML5, therefore discouraged
#
# template::head::add_meta \
# -content "text/css" \
@@ -233,7 +238,9 @@
document.forms[form_name].elements[element_name].focus();
};
}
- append focus_script "acs_Focus('${form_name}', '${element_name}');\n"
+ append focus_script "window.addEventListener('load', function() {
+ acs_Focus('${form_name}', '${element_name}');
+ }, false);"
template::add_body_script -script $focus_script
} else {
ns_log warning "blank-master: variable focus has invalid value '$focus'"