Index: openacs-4/packages/acs-subsite/www/permissions/perm-modify.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/permissions/perm-modify.tcl,v diff -u -N -r1.8 -r1.8.2.1 --- openacs-4/packages/acs-subsite/www/permissions/perm-modify.tcl 23 Apr 2018 21:32:46 -0000 1.8 +++ openacs-4/packages/acs-subsite/www/permissions/perm-modify.tcl 26 Oct 2022 14:20:35 -0000 1.8.2.1 @@ -8,23 +8,28 @@ permission::require_permission -object_id $object_id -privilege admin -# entried in 'perm' have the form "${party_id}_${privilege}" +set mainsite_p [expr {$object_id eq [subsite::main_site_id]}] +# +# Entries in 'perm' have the form "${party_id}_${privilege}" +# foreach elm $perm { - set elmv [split $elm ","] - lassign $elmv party_id priv + lassign [split $elm ","] party_id priv if { $priv ne "remove" } { set perm_array($elm) add - } + } } foreach elm $perm { - set elmv [split $elm ","] - lassign $elmv party_id priv + lassign [split $elm ","] party_id priv if {$priv eq "remove"} { - foreach priv $privs { + foreach priv $privs { if { [info exists perm_array(${party_id},${priv})] } { - unset perm_array(${party_id},${priv}) + if {$mainsite_p && $party_id == "-1"} { + util_user_message "#acs-kernel.The_Public# $priv: #acs-subsite.perm_cannot_be_removed#" + } else { + unset perm_array(${party_id},${priv}) + } } } } @@ -53,8 +58,7 @@ # nothing: Do nothing # add: Add the privilege foreach elm [array names perm_array] { - set elmv [split $elm ","] - lassign $elmv party_id privilege + lassign [split $elm ","] party_id privilege switch -- $perm_array($elm) { remove { @@ -72,7 +76,7 @@ ad_script_abort } -set message [expr {$changes_p ? [_ acs-subsite.Information_Updated] : ""}] +set message [expr {$changes_p ? [_ acs-subsite.Permissions_Updated] : ""}] ad_returnredirect -message $message $return_url ad_script_abort