لا يمكن إضافة مستخدم في الوضع المجهول إلى مجموعة تلقائيًا

على أي حال، لقد “حللت” هذه المشكلة على مستوى قاعدة البيانات في منتدى أديره. استخدمه فقط إذا لم تتمكن من الحصول على حلول أخرى، ذات مستوى أعلى، للعمل (هل كان هناك أي تقدم في هذا، أم يجب تمييز رد موجود على أنه “تم حله”؟). إليك كود PostgreSQL:

create or replace function anon_insert_copy_groups_to_anon_user()
  RETURNS TRIGGER
  LANGUAGE PLPGSQL
  AS $$
declare
  anon_user_id integer = new.user_id;
  master_user_id integer = new.master_user_id;
  active boolean = new.active;
  created_at timestamp = new.created_at;
  updated_at timestamp = new.updated_at;
BEGIN
  insert into group_users
        (group_id,                user_id,       created_at,        updated_at,        owner, notification_level,     first_unread_pm_at)
  select group_users.group_id, anon_user_id , current_timestamp, current_timestamp, false, 3 as notification_level, current_timestamp
  from group_users
  where group_users.user_id=master_user_id
  and   group_users.group_id not in (select group_id from group_users where group_users.user_id=anon_user_id)
  and   group_users.group_id not in (1, 2, 3); -- exlude admins, moderators and staff!

  return new;
end;
$$;

-- Create the trigger
CREATE TRIGGER anon_insert_trigger
AFTER INSERT ON anonymous_users
  FOR EACH ROW
    EXECUTE FUNCTION anon_insert_copy_groups_to_anon_user();