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 +4 -4
- data/lib/easy_admin/permissions/dsl.rb +22 -42
- data/lib/easy_admin/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a486a14f84c7adc080acaf93dd573f6bcd2fbe6c2118e4c37d58e3b34b254ff
|
4
|
+
data.tar.gz: d7e4324d5c53c1dd23ff1c3a2cd7df00d57feecea70fa4cb5a8e8e52520bb56c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1325f6e7cf083a5a512bc8db44e3136c17dd4e4482fd7a4f08ec09d656108efe9767ed564a358cfbd5156644eeb9bb5e493b2b85254ac7e93121293dcb4875b7
|
7
|
+
data.tar.gz: 39933c874954b69d2678bc6e2128ac07d3dafa4578cd68e394156a1c5fa0f2bb923e1fb43f0b45f3dff49199208b16603855d1cef8fc4411a8645b1c57d29a0c
|
@@ -119,51 +119,31 @@ module EasyAdmin
|
|
119
119
|
}
|
120
120
|
end
|
121
121
|
|
122
|
-
# Create
|
122
|
+
# Create roles in the database (simplified - no permissions table)
|
123
123
|
def self.seed_database(data)
|
124
|
-
#
|
125
|
-
|
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
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
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
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
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
|
data/lib/easy_admin/version.rb
CHANGED