Index: openacs-4/packages/acs-subsite/www/members/user-new.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/members/user-new.tcl,v
diff -u -N -r1.13 -r1.14
--- openacs-4/packages/acs-subsite/www/members/user-new.tcl 30 May 2018 11:50:38 -0000 1.13
+++ openacs-4/packages/acs-subsite/www/members/user-new.tcl 28 Sep 2018 18:43:09 -0000 1.14
@@ -5,7 +5,7 @@
@creation-date 2003-06-02
@cvs-id $Id$
} {
- email:trim
+ {email:trim ""}
}
subsite::assert_user_may_add_member
@@ -24,47 +24,69 @@
set page_title "Invite Member to [ad_conn instance_name]"
set context [list [list "." "Members"] "Invite"]
-
+#
# Check if email is already known on the system
+#
set party_id [party::get_by_email -email $email]
if { $party_id ne "" } {
+ #
# Yes, is it a user?
+ #
set user_p [db_0or1row is_user { select 1 from users where user_id = :party_id }]
if { !$user_p } {
# This is a party, but it's not a user
acs_object_type::get -object_type [acs_object_type $party_id] -array object_type
+ #
# TODO: Move this to the form, by moving the form to an include template
+ #
ad_return_complaint 1 "
This email belongs to a $object_type(pretty_name) on the system. We cannot create a new user with this email."
ad_script_abort
- } else {
- # Already a user, but not a member of this subsite, and may not be a member of the main site (registered users)
+ } else {
+ #
+ # Already a user, but not a member of this subsite, and may
+ # not be a member of the main site (registered users)
+ #
# We need to know if we're on the main site below
+ #
set main_site_p [string equal [site_node::get_url -node_id [ad_conn node_id]] "/"]
-
+
# Check to see if the user is a member of the main site (registered user)
set registered_user_p [acs_user::registered_user_p -user_id $party_id]
if { !$registered_user_p } {
+ #
# User exists, but is not member of main site. Requires SW-admin to remedy.
+ #
if { [acs_user::site_wide_admin_p] } {
set main_site_id [site_node::get_element -url / -element object_id]
group::add_member \
-group_id [application_group::group_id_from_package_id -package_id $main_site_id] \
-user_id $party_id
} else {
+ #
# TODO: Move this to the form, by moving the form to an include template
+ #
ad_return_complaint 1 "User has an acccount on the system, but has been removed from the main site. Only a site-wide administrator can re-add the user."
ad_script_abort
}
}
+ #
# The user is now a registered user (member of main site)
+ #
if { $main_site_p } {
+ #
# Already a member.
+ #
+ #
+ # TODO: Move this to the form, by moving the form to an include template
+ #
+ ad_return_complaint 1 "User is already a registered user (member of the main site)."
+ ad_script_abort
} else {
group::add_member \
-group_id $group_id \