Index: openacs-4/packages/curriculum-central/catalog/curriculum-central.en_US.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/catalog/curriculum-central.en_US.ISO-8859-1.xml,v diff -u -r1.13 -r1.14 --- openacs-4/packages/curriculum-central/catalog/curriculum-central.en_US.ISO-8859-1.xml 18 Dec 2005 13:28:21 -0000 1.13 +++ openacs-4/packages/curriculum-central/catalog/curriculum-central.en_US.ISO-8859-1.xml 19 Dec 2005 11:55:25 -0000 1.14 @@ -1,6 +1,7 @@ + Only stream coordinators may create Units of Study. All Pending Units of Study Your Pending Units of Study List of all pending Units of Study: Index: openacs-4/packages/curriculum-central/tcl/staff-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/tcl/staff-procs-postgresql.xql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/curriculum-central/tcl/staff-procs-postgresql.xql 18 Dec 2005 13:28:21 -0000 1.1 +++ openacs-4/packages/curriculum-central/tcl/staff-procs-postgresql.xql 19 Dec 2005 11:55:25 -0000 1.2 @@ -12,4 +12,10 @@ AND s.staff_id = :staff_id + + + + SELECT * FROM cc_stream WHERE coordinator_id = :user_id LIMIT 1 + + Index: openacs-4/packages/curriculum-central/tcl/staff-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/tcl/staff-procs.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/curriculum-central/tcl/staff-procs.tcl 18 Dec 2005 13:28:21 -0000 1.1 +++ openacs-4/packages/curriculum-central/tcl/staff-procs.tcl 19 Dec 2005 11:55:25 -0000 1.2 @@ -24,3 +24,19 @@ } { return [db_string get_pretty_name {}] } + + +ad_proc -public curriculum_central::staff::stream_coordinator_p { + user_id +} { + Checks if the given user is a stream coordinator or not. + + @param user_id ID of a user. + @return Returns 1 if the user is a stream coordinator, otherwise + 0 is returned. +} { + + # If the user is a stream coordinator for at least one + # stream, then the user is a stream coordinator. + return [db_0or1row is_stream_coordinator {}] +} Index: openacs-4/packages/curriculum-central/www/coordinate/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/www/coordinate/index.adp,v diff -u -r1.2 -r1.3 --- openacs-4/packages/curriculum-central/www/coordinate/index.adp 18 Dec 2005 13:28:22 -0000 1.2 +++ openacs-4/packages/curriculum-central/www/coordinate/index.adp 19 Dec 2005 11:55:25 -0000 1.3 @@ -3,7 +3,9 @@ @context;noquote@ Index: openacs-4/packages/curriculum-central/www/coordinate/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/www/coordinate/index.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/curriculum-central/www/coordinate/index.tcl 15 Dec 2005 06:27:41 -0000 1.1 +++ openacs-4/packages/curriculum-central/www/coordinate/index.tcl 19 Dec 2005 11:55:25 -0000 1.2 @@ -10,5 +10,9 @@ set page_title [_ curriculum-central.coordinate] set context [list $page_title] +set user_id [ad_conn user_id] +set stream_coordinator_p \ + [curriculum_central::staff::stream_coordinator_p $user_id] + ad_return_template Index: openacs-4/packages/curriculum-central/www/coordinate/uos-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/www/coordinate/uos-add.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/curriculum-central/www/coordinate/uos-add.tcl 19 Dec 2005 10:14:54 -0000 1.4 +++ openacs-4/packages/curriculum-central/www/coordinate/uos-add.tcl 19 Dec 2005 11:55:25 -0000 1.5 @@ -22,10 +22,10 @@ auth::require_login set user_id [ad_conn user_id] -# Check that the user has the required permissions for adding a Unit of -# Study. -permission::require_permission -object_id [ad_conn package_id] \ - -privilege create +# Only stream coordinators can create a unit of study. +if { ![curriculum_central::staff::stream_coordinator_p $user_id] } { + ad_returnredirect -message [_ curriculum-central.only_stream_coordinators_may_create_uos] index +} # Set some common variables set package_id [ad_conn package_id]