gustafn
committed
on 13 Feb 21
2 new API functions acs_user::promote_person_to_user and acs_user::demote_user (see issue #3461)

acs_user::promote_person_to_user

Promo… Show more
2 new API functions acs_user::promote_person_to_user and acs_user::demote_user (see issue #3461)

acs_user::promote_person_to_user

  Promotes a person/party to an ACS user.

   @param person_id the person_id in the acs system that should be promoted to a user.

   @param username the username to be used for this user.

          Defaults to the person's email

   @param password the password to be used for this user.

          Defaults to a randomly generated password.

   @param authority_id the authority that will be used for the user.

   @param locale locale to be used in user preferences.

          Defaults to the site wide locale is taken.

   @return The user_id of the person promoted to user

   @error  An error is thrown

           if the username is already in use,

           or the person_id has no email address,

           or if person_id is not in the persons table.

acs_user::demote_user

   Demotes an ACS user to a person/party.

   This will fail if other tables have content referencing the users

   table.  It is probably best for tables created in other packages

   to reference persons, parties, or acs_objects instead.  This proc

   could be extended with an option to find all referenced tables and

   remove rows referencing this user.

   See the following FK relationship in basic OpenACS installations:

   TABLE "acs_objects" CONSTRAINT "acs_objects_creation_user_fk" FOREIGN KEY (creation_user) REFERENCES users(user_id)

   TABLE "acs_objects" CONSTRAINT "acs_objects_modifying_user_fk" FOREIGN KEY (modifying_user) REFERENCES users(user_id)

   TABLE "ad_locale_user_prefs" CONSTRAINT "ad_locale_user_prefs_users_fk" FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE

   TABLE "auth_batch_job_entries" CONSTRAINT "auth_batch_job_entries_user_fk" FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE SET NULL

   TABLE "auth_batch_jobs" CONSTRAINT "auth_batch_jobs_user_fk" FOREIGN KEY (creation_user) REFERENCES users(user_id) ON DELETE SET NULL

   TABLE "cr_news" CONSTRAINT "cr_news_approval_user_fk" FOREIGN KEY (approval_user) REFERENCES users(user_id)

   TABLE "email_images" CONSTRAINT "email_images_user_id_fk" FOREIGN KEY (user_id) REFERENCES users(user_id)

   TABLE "forums_messages" CONSTRAINT "forums_mess_last_poster_fk" FOREIGN KEY (last_poster) REFERENCES users(user_id)

   TABLE "forums_messages" CONSTRAINT "forums_mess_user_id_fk" FOREIGN KEY (user_id) REFERENCES users(user_id)

   TABLE "forums_reading_info" CONSTRAINT "forums_read_user_id_fk" FOREIGN KEY (user_id) REFERENCES users(user_id)

   TABLE "lang_messages_audit" CONSTRAINT "lang_messages_audit_ou_fk" FOREIGN KEY (overwrite_user) REFERENCES users(user_id)

   TABLE "lang_messages" CONSTRAINT "lang_messages_creation_user_fk" FOREIGN KEY (creation_user) REFERENCES users(user_id)

   TABLE "lang_user_timezone" CONSTRAINT "lang_user_timezone_user_id_fk" FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE

   TABLE "notification_replies" CONSTRAINT "notif_repl_from_fk" FOREIGN KEY (from_user) REFERENCES users(user_id)

   TABLE "notification_user_map" CONSTRAINT "notif_user_map_user_id_fk" FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE

   TABLE "notifications" CONSTRAINT "notifications_notif_user_fk" FOREIGN KEY (notif_user) REFERENCES users(user_id)

   TABLE "notification_requests" CONSTRAINT "notifications_request_user_id_fk" FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE

   TABLE "proctoring_examination_statement_acceptance" CONSTRAINT "proctoring_examination_statement_acceptance_user_id_fkey" FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE

   TABLE "user_portraits" CONSTRAINT "user_portraits_user_id_fk" FOREIGN KEY (user_id) REFERENCES users(user_id)

   TABLE "user_preferences" CONSTRAINT "user_preferences_user_id_fk" FOREIGN KEY (user_id) REFERENCES users(user_id)

   TABLE "xowiki_tags" CONSTRAINT "xowiki_tags_user_id_fkey" FOREIGN KEY (user_id) REFERENCES users(user_id)

Show less