# Iscriviti per pubblicare un annuncio

**URL:** <https://meta.discourse.org/t/subscribe-to-post-an-ad/366751>\
**Category:** Product Support\
**Tags:** subscriptions, automation\
**Created:** [19 Maggio 2025, 8:21pm UTC](https://meta.discourse.org/t/subscribe-to-post-an-ad/366751 "2025-05-19T20:21:17Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)\
**Post date:** [20 Maggio 2025, 12:16am UTC](https://meta.discourse.org/t/subscribe-to-post-an-ad/366751/8 "2025-05-20T00:16:14Z")

</div>

> [@pfaffman](#):
>
> Renderebbe il plugin più complicato.

Certamente, ma sarebbe bello averlo.  
Comunque, sembra che questo farebbe il lavoro finché si codificano in modo fisso l’ID della categoria e il nome del gruppo.  
Qualche vero programmatore può espandere questo in modo da poter impostare quelle variabili dalla pagina delle impostazioni del plugin?

```plaintext
# name: discourse-auto-remove-group
# version: 0.1
# authors: tknospdr
# url: https://github.com/tknospdr/discourse-auto-remove-group

enabled_site_setting :auto_remove_group_enabled

# Impostazione del sito per abilitare/disabilitare il plugin
register_site_setting :auto_remove_group_enabled, type: :boolean, default: false
register_site_setting :auto_remove_group_category_id, type: :integer, default: 0
register_site_setting :auto_remove_group_name, type: :string, default: ""

after_initialize do
  # Ascolta gli eventi di creazione dei post
  DiscourseEvent.on(:post_created) do |post|
    next unless SiteSetting.auto_remove_group_enabled
    next unless post&.user # Assicurati che il post abbia un utente
    next unless post&.topic&.category_id # Assicurati che il post sia in una categoria

    target_category_id = SiteSetting.auto_remove_group_category_id
    group_name = SiteSetting.auto_remove_group_name

    # Controlla se il post è nella categoria configurata
    if post.topic.category_id == target_category_id
      begin
        group = Group.find_by(name: group_name)
        unless group
          Rails.logger.error("AutoRemoveGroup: Gruppo '#{group_name}' non trovato")
          next
        end

        user = post.user
        if group.users.include?(user)
          group.remove(user)
          Rails.logger.info("AutoRemoveGroup: Utente #{user.username} rimosso dal gruppo #{group_name} dopo aver postato nella categoria #{target_category_id}")
        else
          Rails.logger.info("AutoRemoveGroup: Utente #{user.username} non è nel gruppo #{group_name}, nessuna azione intrapresa")
        end
      rescue StandardError => e
        Rails.logger.error("AutoRemoveGroup: Errore durante la rimozione dell'utente dal gruppo: #{e.message}")
      end
    end
  end
end

```

---

_[View the full topic](https://meta.discourse.org/t/subscribe-to-post-an-ad/366751)._
