easy-admin-rails 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e27a938d7c68cc803a52c941ab073b82d077d2019a09d1dab636e92016f2ae78
4
- data.tar.gz: 94c16e1bd8b00dbcbddee3adad22dc0122eb50d118e6aa815f7d28dd437d0404
3
+ metadata.gz: 5a486a14f84c7adc080acaf93dd573f6bcd2fbe6c2118e4c37d58e3b34b254ff
4
+ data.tar.gz: d7e4324d5c53c1dd23ff1c3a2cd7df00d57feecea70fa4cb5a8e8e52520bb56c
5
5
  SHA512:
6
- metadata.gz: 3d55741831c57254342bb1ef6546ffb1913070219896775251059f4dffdfa50b72af935d8d2fd47f103698d986a6b7eb56c67f9e318a706ecdf5bb430f955ba8
7
- data.tar.gz: 663d5266e79bcb4a6ba283924f5edefd0b7c7dea0a56a9112789e6010513da638ad15a747d82c0328832412f4f12acbc7f4f9d6ab7b20724abf967f161e3a407
6
+ metadata.gz: 1325f6e7cf083a5a512bc8db44e3136c17dd4e4482fd7a4f08ec09d656108efe9767ed564a358cfbd5156644eeb9bb5e493b2b85254ac7e93121293dcb4875b7
7
+ data.tar.gz: 39933c874954b69d2678bc6e2128ac07d3dafa4578cd68e394156a1c5fa0f2bb923e1fb43f0b45f3dff49199208b16603855d1cef8fc4411a8645b1c57d29a0c
@@ -119,51 +119,31 @@ module EasyAdmin
119
119
  }
120
120
  end
121
121
 
122
- # Create permissions and roles in the database
122
+ # Create roles in the database (simplified - no permissions table)
123
123
  def self.seed_database(data)
124
- # Check if models are available (avoid running during migrations)
125
- begin
126
- EasyAdmin::Permissions::Permission
127
- EasyAdmin::Permissions::Role
128
- EasyAdmin::Permissions::RolePermission
129
- rescue NameError => e
130
- Rails.logger.info "EasyAdmin::Permissions models not yet loaded: #{e.message}"
131
- return
132
- end
124
+ # Skip if tables don't exist yet (during migrations or first setup)
125
+ return unless ActiveRecord::Base.connection.table_exists?(:easy_admin_roles)
133
126
 
134
- ActiveRecord::Base.transaction do
135
- # Create permissions
136
- data[:permissions].each do |perm_data|
137
- EasyAdmin::Permissions::Permission.find_or_create_by(name: perm_data[:name]) do |permission|
138
- permission.resource_type = perm_data[:resource_type]
139
- permission.action = perm_data[:action]
140
- permission.description = perm_data[:description]
141
- permission.conditions = perm_data[:conditions]
127
+ # Defer execution until Rails is fully initialized
128
+ if defined?(Rails) && Rails.application && !Rails.application.initialized?
129
+ Rails.application.config.after_initialize do
130
+ # Check if models are available (avoid loading during initialization)
131
+ begin
132
+ role_class = "EasyAdmin::Permissions::Role".constantize
133
+ rescue NameError => e
134
+ Rails.logger.debug "EasyAdmin::Permissions models not yet loaded: #{e.message}"
135
+ return
142
136
  end
143
- end
144
-
145
- # Create roles and assign permissions
146
- data[:roles].each do |role_data|
147
- role = EasyAdmin::Permissions::Role.find_or_create_by(slug: role_data[:slug]) do |r|
148
- r.name = role_data[:name]
149
- r.description = role_data[:description]
150
- r.active = role_data[:active]
151
- r.metadata = role_data[:metadata]
152
- end
153
-
154
- # Clear existing permissions for this role
155
- role.role_permissions.destroy_all
156
137
 
157
- # Assign new permissions
158
- role_data[:permissions].each do |permission_name|
159
- permission = EasyAdmin::Permissions::Permission.find_by(name: permission_name)
160
- if permission
161
- EasyAdmin::Permissions::RolePermission.find_or_create_by(
162
- role: role,
163
- permission: permission
164
- )
165
- else
166
- Rails.logger.warn "Permission '#{permission_name}' not found for role '#{role_data[:name]}'"
138
+ ActiveRecord::Base.transaction do
139
+ # Create roles only (permissions are managed via JSON field)
140
+ data[:roles].each do |role_data|
141
+ role = role_class.find_or_initialize_by(slug: role_data[:slug])
142
+ role.assign_attributes(
143
+ name: role_data[:name],
144
+ description: role_data[:description],
145
+ )
146
+ role.save! if role.changed?
167
147
  end
168
148
  end
169
149
  end
@@ -177,4 +157,4 @@ module EasyAdmin
177
157
  DSL.seed_database(data)
178
158
  end
179
159
  end
180
- end
160
+ end
@@ -1,3 +1,3 @@
1
1
  module EasyAdmin
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy-admin-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Slaurmagan