Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 19 additions & 11 deletions plugin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ def self.connect
def self.update_groups!
return unless SiteSetting.panel_groups_enabled

@groups_to_clear = Group.where(name: ['stazysta', 'sympatyk']).pluck(:id)

groups = JSON.parse(open(self.connect() + "/api/groups/groups?token=" + SiteSetting.panel_token).read)

groups.each_pair do |name, external_id|
Expand Down Expand Up @@ -48,20 +50,26 @@ def self.update_from_panel_entry(name, external_id)
# Find existing group or create a new one
field = GroupCustomField.find_by(name: 'external_id',
value: external_id)
if field and field.group
group = field.group
else
g_name = UserNameSuggester.suggest(name)
puts "panel_group: Creating new group '#{g_name}' for external '#{name}'"
ActiveRecord::Base.transaction do
if field and field.group
group = field.group
else
g_name = UserNameSuggester.suggest(name)
puts "panel_group: Creating new group '#{g_name}' for external '#{name}'"

group = Group.new name: g_name
group.visible = true
group.custom_fields['external_id'] = external_id
group = Group.new name: g_name
group.visible = true
group.custom_fields['external_id'] = external_id
group.save!
end
if @groups_to_clear.include? group.id
(group.users - members).each do |member|
member.title = '' if member.title = group.title
member.save!
end
group.users = members
group.save!
end

group.users = members
group.save!
end


Expand Down