Index: openacs-4/packages/acs-subsite/www/admin/relations/add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/admin/relations/add.tcl,v diff -u -N -r1.15 -r1.16 --- openacs-4/packages/acs-subsite/www/admin/relations/add.tcl 27 Jun 2015 16:03:13 -0000 1.15 +++ openacs-4/packages/acs-subsite/www/admin/relations/add.tcl 7 Aug 2017 23:47:58 -0000 1.16 @@ -13,7 +13,7 @@ rel_type:notnull { party_id:naturalnum "" } { exact_p:boolean "f" } - { return_url "" } + { return_url:localurl "" } { allow_out_of_scope_p:boolean "f" } } -properties { context:onevalue @@ -44,54 +44,20 @@ set context [list "Add relation"] -set export_var_list [list group_id rel_type exact_p return_url allow_out_of_scope_p] - +set export_var_list {group_id rel_type exact_p return_url allow_out_of_scope_p} if {$party_id ne ""} { lappend export_var_list party_id } -set create_p [group::permission_p -privilege create $group_id] +group::get -group_id $group_id -array group_info - -db_1row group_info { - select group_name, join_policy - from groups - where group_id = :group_id -} - # We assume the group is on side 1... -db_1row rel_type_info { - select t.object_type_two, t.role_two as role, - acs_rel_type.role_pretty_name(t.role_two) as role_pretty_name, - acs_object_type.pretty_name(t.object_type_two) as object_type_two_name, - ancestor_rel_types.object_type as ancestor_rel_type - from acs_rel_types t, acs_object_types obj_types, - acs_object_types ancestor_rel_types - where t.rel_type = :rel_type - and t.rel_type = obj_types.object_type - and ancestor_rel_types.supertype = 'relationship' - and ancestor_rel_types.object_type in ( - select object_type from acs_object_types - start with object_type = :rel_type - connect by object_type = prior supertype - ) -} +db_1row rel_type_info {} # The role pretty names can be message catalog keys that need # to be localized before they are displayed set role_pretty_name [lang::util::localize $role_pretty_name] -if {$ancestor_rel_type eq "membership_rel"} { - if {$join_policy eq "closed" && !$create_p} { - ad_complain "You do not have permission to add elements to $group_name" - return - } - - set member_state [group::default_member_state -join_policy $join_policy -create_p $create_p] -} else { - set member_state "" -} - if { $exact_p == "f" && [subsite::util::sub_type_exists_p $rel_type] } { @@ -156,12 +122,12 @@ if { [template::form is_valid add_relation] } { - db_transaction { - set rel_id [relation_add -form_id add_relation -member_state $member_state $rel_type $group_id $party_id] - } on_error { - ad_return_error "Error creating the relation" "We got the following error message while trying to create this relation:
$errmsg
" - ad_script_abort + if {[catch { + group::add_member -group_id $group_id -user_id $party_id -rel_type $rel_type + } errorMsg]} { + ad_complain $errorMsg } + if { $return_url eq "" } { set return_url [export_vars -base one rel_id] } @@ -236,3 +202,9 @@ } ad_return_template + +# Local variables: +# mode: tcl +# tcl-indent-level: 4 +# indent-tabs-mode: nil +# End: