rhino_project_core 0.22.0.beta.10 → 0.22.0.beta.12
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9ac199c14ecb97724abbfca269b74d2a723ae905f4effb3027957126608cf49
|
4
|
+
data.tar.gz: 9c99a87ff7f6f59344cbed071fac5705c44980e694452981adc03f7b81724d32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea1e868268d7086b45bcf100915382b45d5926287d8d08b7245b25a1d0ce149d31527d07b2ff2dfe4c1dea608f99bfb52dd08c305c92de02eee792e7c7048693
|
7
|
+
data.tar.gz: 320c7cbab3c8b3de38774d22a8538e4386a6de38747136590fa357beb8cc6e0ea1726fed408626f66d347d1e46758336c556592cfbaf78c0784ccb7250d97af3
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators"
|
4
|
+
|
5
|
+
module Rhino
|
6
|
+
class AdminGenerator < Rails::Generators::NamedBase
|
7
|
+
source_root File.expand_path("templates", __dir__)
|
8
|
+
|
9
|
+
def admin
|
10
|
+
template "resource.rb", "app/admin/#{file_path.tr('/', '_').pluralize}.rb" unless options[:skip_admin]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -11,6 +11,7 @@ module Rhino
|
|
11
11
|
class_option :owner, type: :string, desc: "The model is owned by the reference attribute", group: :owner
|
12
12
|
class_option :base_owner, type: :boolean, default: false, desc: "The model is owned by the base owner", group: :owner
|
13
13
|
class_option :global_owner, type: :boolean, default: false, desc: "The model is globally owned", group: :owner
|
14
|
+
class_option :skip_admin, type: :boolean, default: false, desc: "Skip generating ActiveAdmin resources", group: :admin
|
14
15
|
|
15
16
|
# Parent source paths
|
16
17
|
def source_paths
|
@@ -52,6 +53,10 @@ module Rhino
|
|
52
53
|
end
|
53
54
|
end
|
54
55
|
|
56
|
+
def active_admin_resource
|
57
|
+
generate "rhino:admin", class_name unless options[:skip_admin]
|
58
|
+
end
|
59
|
+
|
55
60
|
protected
|
56
61
|
def check_ownership
|
57
62
|
raise Thor::Error, "Exactly one owner must be defined on a reference or globally" unless base_owner? ^ global_owner? ^ reference_owner?
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rhino
|
4
|
+
module Resource
|
5
|
+
module Admin
|
6
|
+
module_function
|
7
|
+
|
8
|
+
def register(resource, options = {}, &block)
|
9
|
+
ActiveAdmin.register resource, options do
|
10
|
+
resource.ransackable_filters.each do |attr|
|
11
|
+
filter attr.to_sym
|
12
|
+
end
|
13
|
+
|
14
|
+
permit_params do
|
15
|
+
permitted = []
|
16
|
+
|
17
|
+
permitted = resource.creatable_properties.map(&:to_sym) if params[:action] == "create"
|
18
|
+
permitted = resource.updatable_properties.map(&:to_sym) if params[:action] == "update"
|
19
|
+
|
20
|
+
# Allow owner and other references to be assigned or changed by admin
|
21
|
+
# All possible relations
|
22
|
+
references = resource.describe[:properties].select { |_p, d| d[:type] == :reference }.keys
|
23
|
+
|
24
|
+
# Restrict to the valid create/update properties
|
25
|
+
references.select! { |r| permitted.include?(r.to_sym) }
|
26
|
+
permitted += references.map { |r| m.reflections[r].foreign_key }
|
27
|
+
|
28
|
+
permitted.uniq
|
29
|
+
end
|
30
|
+
|
31
|
+
instance_eval(&block) if block
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/rhino/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhino_project_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.22.0.beta.
|
4
|
+
version: 0.22.0.beta.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JP Rosevear
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -426,6 +426,8 @@ files:
|
|
426
426
|
- lib/commands/rhino/module/new_command.rb
|
427
427
|
- lib/commands/rhino/module/rails_command.rb
|
428
428
|
- lib/commands/rhino/module/test_command.rb
|
429
|
+
- lib/generators/rhino/admin/admin_generator.rb
|
430
|
+
- lib/generators/rhino/admin/templates/resource.rb.tt
|
429
431
|
- lib/generators/rhino/dev/setup/setup_generator.rb
|
430
432
|
- lib/generators/rhino/dev/setup/templates/env.tt
|
431
433
|
- lib/generators/rhino/dev/setup/templates/prepare-commit-msg
|
@@ -475,6 +477,7 @@ files:
|
|
475
477
|
- lib/rhino/resource/active_record_extension/super_admin.rb
|
476
478
|
- lib/rhino/resource/active_record_tree.rb
|
477
479
|
- lib/rhino/resource/active_storage_extension.rb
|
480
|
+
- lib/rhino/resource/admin.rb
|
478
481
|
- lib/rhino/resource/describe.rb
|
479
482
|
- lib/rhino/resource/owner.rb
|
480
483
|
- lib/rhino/resource/params.rb
|