burlesque 1.0.0 → 2.0.0
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.
- data/MIT-LICENSE +20 -0
- data/README.md +22 -3
- data/Rakefile +40 -1
- data/app/assets/javascripts/burlesque/application.js +15 -0
- data/app/assets/stylesheets/burlesque/application.css +13 -0
- data/app/controllers/burlesque/application_controller.rb +4 -0
- data/app/helpers/burlesque/application_helper.rb +4 -0
- data/app/models/burlesque/admin_group.rb +22 -0
- data/app/models/burlesque/admin_role.rb +13 -0
- data/app/models/burlesque/group.rb +87 -0
- data/app/models/burlesque/role.rb +92 -0
- data/app/models/burlesque/role_group.rb +24 -0
- data/app/views/layouts/burlesque/application.html.erb +14 -0
- data/config/routes.rb +2 -0
- data/db/migrate/20130725210208_create_burlesque_groups.rb +9 -0
- data/db/migrate/20130725210428_create_burlesque_roles.rb +9 -0
- data/db/migrate/20130725214806_create_burlesque_admin_groups.rb +15 -0
- data/db/migrate/20130725223204_create_burlesque_role_groups.rb +12 -0
- data/db/migrate/20130725223437_create_burlesque_admin_roles.rb +15 -0
- data/lib/burlesque.rb +5 -6
- data/lib/burlesque/admin.rb +14 -10
- data/lib/burlesque/engine.rb +5 -0
- data/lib/burlesque/version.rb +1 -1
- data/lib/tasks/burlesque_tasks.rake +4 -0
- data/test/burlesque_test.rb +7 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +4 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/fixtures/burlesque/admin_groups.yml +9 -0
- data/test/fixtures/burlesque/admin_roles.yml +9 -0
- data/test/fixtures/burlesque/groups.yml +7 -0
- data/test/fixtures/burlesque/role_groups.yml +9 -0
- data/test/fixtures/burlesque/roles.yml +7 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/burlesque/admin_group_test.rb +9 -0
- data/test/unit/burlesque/admin_role_test.rb +9 -0
- data/test/unit/burlesque/group_test.rb +9 -0
- data/test/unit/burlesque/role_group_test.rb +9 -0
- data/test/unit/burlesque/role_test.rb +9 -0
- metadata +123 -25
- data/.gitignore +0 -7
- data/Gemfile +0 -4
- data/burlesque.gemspec +0 -24
- data/lib/burlesque/admin_group.rb +0 -25
- data/lib/burlesque/authorization.rb +0 -13
- data/lib/burlesque/group.rb +0 -91
- data/lib/burlesque/role.rb +0 -94
- data/lib/burlesque/role_group.rb +0 -30
- data/lib/generators/burlesque/install_generator.rb +0 -85
- data/lib/generators/burlesque/templates/admin_group.rb +0 -3
- data/lib/generators/burlesque/templates/authorization.rb +0 -3
- data/lib/generators/burlesque/templates/create_admin_groups.rb +0 -13
- data/lib/generators/burlesque/templates/create_authorizations.rb +0 -13
- data/lib/generators/burlesque/templates/create_groups.rb +0 -9
- data/lib/generators/burlesque/templates/create_role_groups.rb +0 -12
- data/lib/generators/burlesque/templates/create_roles.rb +0 -9
- data/lib/generators/burlesque/templates/group.rb +0 -3
- data/lib/generators/burlesque/templates/role.rb +0 -3
- data/lib/generators/burlesque/templates/role_group.rb +0 -3
data/test/test_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# Configure Rails Environment
|
2
|
+
ENV["RAILS_ENV"] = "test"
|
3
|
+
|
4
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
5
|
+
require "rails/test_help"
|
6
|
+
|
7
|
+
Rails.backtrace_cleaner.remove_silencers!
|
8
|
+
|
9
|
+
# Load support files
|
10
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
11
|
+
|
12
|
+
# Load fixtures from the engine
|
13
|
+
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
14
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
|
15
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: burlesque
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,23 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
date: 2013-07-25 00:00:00.000000000 Z
|
13
|
-
dependencies:
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rails
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 3.2.12
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.2.12
|
14
30
|
description: Crea estructura de roles y grupos para caulquier modelo, considera ademas
|
15
31
|
las 3 tablas de join que pudiesen darse
|
16
32
|
email:
|
@@ -19,33 +35,74 @@ executables: []
|
|
19
35
|
extensions: []
|
20
36
|
extra_rdoc_files: []
|
21
37
|
files:
|
22
|
-
- .
|
23
|
-
-
|
24
|
-
-
|
25
|
-
-
|
26
|
-
- burlesque.
|
38
|
+
- app/assets/javascripts/burlesque/application.js
|
39
|
+
- app/assets/stylesheets/burlesque/application.css
|
40
|
+
- app/controllers/burlesque/application_controller.rb
|
41
|
+
- app/helpers/burlesque/application_helper.rb
|
42
|
+
- app/models/burlesque/admin_group.rb
|
43
|
+
- app/models/burlesque/admin_role.rb
|
44
|
+
- app/models/burlesque/group.rb
|
45
|
+
- app/models/burlesque/role.rb
|
46
|
+
- app/models/burlesque/role_group.rb
|
47
|
+
- app/views/layouts/burlesque/application.html.erb
|
27
48
|
- config/locales/burlesque.en.yml
|
28
49
|
- config/locales/burlesque.es-CL.yml
|
29
|
-
-
|
50
|
+
- config/routes.rb
|
51
|
+
- db/migrate/20130725210208_create_burlesque_groups.rb
|
52
|
+
- db/migrate/20130725210428_create_burlesque_roles.rb
|
53
|
+
- db/migrate/20130725214806_create_burlesque_admin_groups.rb
|
54
|
+
- db/migrate/20130725223204_create_burlesque_role_groups.rb
|
55
|
+
- db/migrate/20130725223437_create_burlesque_admin_roles.rb
|
30
56
|
- lib/burlesque/admin.rb
|
31
|
-
- lib/burlesque/
|
32
|
-
- lib/burlesque/authorization.rb
|
33
|
-
- lib/burlesque/group.rb
|
57
|
+
- lib/burlesque/engine.rb
|
34
58
|
- lib/burlesque/locale.rb
|
35
|
-
- lib/burlesque/role.rb
|
36
|
-
- lib/burlesque/role_group.rb
|
37
59
|
- lib/burlesque/version.rb
|
38
|
-
- lib/
|
39
|
-
- lib/
|
40
|
-
-
|
41
|
-
-
|
42
|
-
-
|
43
|
-
-
|
44
|
-
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
-
|
48
|
-
-
|
60
|
+
- lib/burlesque.rb
|
61
|
+
- lib/tasks/burlesque_tasks.rake
|
62
|
+
- MIT-LICENSE
|
63
|
+
- Rakefile
|
64
|
+
- README.md
|
65
|
+
- test/burlesque_test.rb
|
66
|
+
- test/dummy/app/assets/javascripts/application.js
|
67
|
+
- test/dummy/app/assets/stylesheets/application.css
|
68
|
+
- test/dummy/app/controllers/application_controller.rb
|
69
|
+
- test/dummy/app/helpers/application_helper.rb
|
70
|
+
- test/dummy/app/views/layouts/application.html.erb
|
71
|
+
- test/dummy/config/application.rb
|
72
|
+
- test/dummy/config/boot.rb
|
73
|
+
- test/dummy/config/database.yml
|
74
|
+
- test/dummy/config/environment.rb
|
75
|
+
- test/dummy/config/environments/development.rb
|
76
|
+
- test/dummy/config/environments/production.rb
|
77
|
+
- test/dummy/config/environments/test.rb
|
78
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
79
|
+
- test/dummy/config/initializers/inflections.rb
|
80
|
+
- test/dummy/config/initializers/mime_types.rb
|
81
|
+
- test/dummy/config/initializers/secret_token.rb
|
82
|
+
- test/dummy/config/initializers/session_store.rb
|
83
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
84
|
+
- test/dummy/config/locales/en.yml
|
85
|
+
- test/dummy/config/routes.rb
|
86
|
+
- test/dummy/config.ru
|
87
|
+
- test/dummy/public/404.html
|
88
|
+
- test/dummy/public/422.html
|
89
|
+
- test/dummy/public/500.html
|
90
|
+
- test/dummy/public/favicon.ico
|
91
|
+
- test/dummy/Rakefile
|
92
|
+
- test/dummy/README.rdoc
|
93
|
+
- test/dummy/script/rails
|
94
|
+
- test/fixtures/burlesque/admin_groups.yml
|
95
|
+
- test/fixtures/burlesque/admin_roles.yml
|
96
|
+
- test/fixtures/burlesque/groups.yml
|
97
|
+
- test/fixtures/burlesque/role_groups.yml
|
98
|
+
- test/fixtures/burlesque/roles.yml
|
99
|
+
- test/integration/navigation_test.rb
|
100
|
+
- test/test_helper.rb
|
101
|
+
- test/unit/burlesque/admin_group_test.rb
|
102
|
+
- test/unit/burlesque/admin_role_test.rb
|
103
|
+
- test/unit/burlesque/group_test.rb
|
104
|
+
- test/unit/burlesque/role_group_test.rb
|
105
|
+
- test/unit/burlesque/role_test.rb
|
49
106
|
homepage: ''
|
50
107
|
licenses: []
|
51
108
|
post_install_message:
|
@@ -70,4 +127,45 @@ rubygems_version: 1.8.25
|
|
70
127
|
signing_key:
|
71
128
|
specification_version: 3
|
72
129
|
summary: Roles y Grupos
|
73
|
-
test_files:
|
130
|
+
test_files:
|
131
|
+
- test/burlesque_test.rb
|
132
|
+
- test/dummy/app/assets/javascripts/application.js
|
133
|
+
- test/dummy/app/assets/stylesheets/application.css
|
134
|
+
- test/dummy/app/controllers/application_controller.rb
|
135
|
+
- test/dummy/app/helpers/application_helper.rb
|
136
|
+
- test/dummy/app/views/layouts/application.html.erb
|
137
|
+
- test/dummy/config/application.rb
|
138
|
+
- test/dummy/config/boot.rb
|
139
|
+
- test/dummy/config/database.yml
|
140
|
+
- test/dummy/config/environment.rb
|
141
|
+
- test/dummy/config/environments/development.rb
|
142
|
+
- test/dummy/config/environments/production.rb
|
143
|
+
- test/dummy/config/environments/test.rb
|
144
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
145
|
+
- test/dummy/config/initializers/inflections.rb
|
146
|
+
- test/dummy/config/initializers/mime_types.rb
|
147
|
+
- test/dummy/config/initializers/secret_token.rb
|
148
|
+
- test/dummy/config/initializers/session_store.rb
|
149
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
150
|
+
- test/dummy/config/locales/en.yml
|
151
|
+
- test/dummy/config/routes.rb
|
152
|
+
- test/dummy/config.ru
|
153
|
+
- test/dummy/public/404.html
|
154
|
+
- test/dummy/public/422.html
|
155
|
+
- test/dummy/public/500.html
|
156
|
+
- test/dummy/public/favicon.ico
|
157
|
+
- test/dummy/Rakefile
|
158
|
+
- test/dummy/README.rdoc
|
159
|
+
- test/dummy/script/rails
|
160
|
+
- test/fixtures/burlesque/admin_groups.yml
|
161
|
+
- test/fixtures/burlesque/admin_roles.yml
|
162
|
+
- test/fixtures/burlesque/groups.yml
|
163
|
+
- test/fixtures/burlesque/role_groups.yml
|
164
|
+
- test/fixtures/burlesque/roles.yml
|
165
|
+
- test/integration/navigation_test.rb
|
166
|
+
- test/test_helper.rb
|
167
|
+
- test/unit/burlesque/admin_group_test.rb
|
168
|
+
- test/unit/burlesque/admin_role_test.rb
|
169
|
+
- test/unit/burlesque/group_test.rb
|
170
|
+
- test/unit/burlesque/role_group_test.rb
|
171
|
+
- test/unit/burlesque/role_test.rb
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/burlesque.gemspec
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "burlesque/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = "burlesque"
|
7
|
-
s.version = Burlesque::VERSION
|
8
|
-
s.authors = ["mespina"]
|
9
|
-
s.email = ["mespina.icc@gmail.com"]
|
10
|
-
s.homepage = ""
|
11
|
-
s.summary = "Roles y Grupos"
|
12
|
-
s.description = "Crea estructura de roles y grupos para caulquier modelo, considera ademas las 3 tablas de join que pudiesen darse"
|
13
|
-
|
14
|
-
s.rubyforge_project = "burlesque"
|
15
|
-
|
16
|
-
s.files = `git ls-files`.split("\n")
|
17
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
-
s.require_paths = ["lib"]
|
20
|
-
|
21
|
-
# specify any dependencies here; for example:
|
22
|
-
# s.add_development_dependency "rspec"
|
23
|
-
# s.add_runtime_dependency "rest-client"
|
24
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'active_support/concern'
|
2
|
-
|
3
|
-
module Burlesque
|
4
|
-
module AdminGroup
|
5
|
-
extend ActiveSupport::Concern
|
6
|
-
|
7
|
-
included do
|
8
|
-
belongs_to :group
|
9
|
-
belongs_to :adminable, polymorphic: true
|
10
|
-
|
11
|
-
validates_uniqueness_of :group_id, scope: [:adminable_id, :adminable_type], message: I18n.t('errors.messages.group_taken')
|
12
|
-
|
13
|
-
after_create :add_new_roles_to_admin
|
14
|
-
end
|
15
|
-
|
16
|
-
module InstanceMethods
|
17
|
-
private
|
18
|
-
def add_new_roles_to_admin
|
19
|
-
group.roles.each do |role|
|
20
|
-
adminable.roles << role unless adminable.roles.include? role
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'active_support/concern'
|
2
|
-
module Burlesque
|
3
|
-
module Authorization
|
4
|
-
extend ActiveSupport::Concern
|
5
|
-
|
6
|
-
included do
|
7
|
-
belongs_to :role
|
8
|
-
belongs_to :authorizable, polymorphic: true
|
9
|
-
|
10
|
-
validates_uniqueness_of :role_id, scope: [:authorizable_id, :authorizable_type], message: I18n.t('errors.messages.role_taken')
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
data/lib/burlesque/group.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
require 'active_support/concern'
|
2
|
-
|
3
|
-
module Burlesque
|
4
|
-
module Group
|
5
|
-
extend ActiveSupport::Concern
|
6
|
-
|
7
|
-
included do
|
8
|
-
has_many :role_groups
|
9
|
-
has_many :roles, through: :role_groups, dependent: :destroy, after_remove: :remove_roles_from_admin
|
10
|
-
|
11
|
-
has_many :admin_groups, dependent: :destroy
|
12
|
-
# for has_many :admins relations see admins function
|
13
|
-
|
14
|
-
attr_accessible :name, :role_ids, :internal
|
15
|
-
|
16
|
-
validates :name, presence: true, uniqueness: true
|
17
|
-
end
|
18
|
-
|
19
|
-
module InstanceMethods
|
20
|
-
# Public: Relacion a muchos usuarios
|
21
|
-
#
|
22
|
-
# Se usa esta funcion dado que la tabla de administrador es polimorfica.
|
23
|
-
#
|
24
|
-
# Returns los administradores que tienen el rol en cuestion.
|
25
|
-
def admins
|
26
|
-
admin_groups.map &:adminable
|
27
|
-
end
|
28
|
-
|
29
|
-
# Public: Indica si el grupo tiene un rol en particular.
|
30
|
-
#
|
31
|
-
# role - el rol que se quiere consultar, puede ser un Role o Role.name
|
32
|
-
#
|
33
|
-
# Returns Boolean.
|
34
|
-
def role? role
|
35
|
-
role_name = role.respond_to?(:name) ? role.name : role
|
36
|
-
self.roles.map(&:name).include?(role_name.to_s)
|
37
|
-
end
|
38
|
-
|
39
|
-
# Public: Setea los roles que se indican al grupo.
|
40
|
-
# Eliminando los roles que no esten en la lista.
|
41
|
-
#
|
42
|
-
# ids - id's de los Roles que se desean asignar destructivamente.
|
43
|
-
#
|
44
|
-
# Returns nothing.
|
45
|
-
def role_ids=(ids)
|
46
|
-
ids.each do |ri|
|
47
|
-
if ri.presence
|
48
|
-
role = ::Role.find(ri)
|
49
|
-
self.roles << role unless self.roles.include? role
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
to_deletes = []
|
54
|
-
role_groups.each do |rg|
|
55
|
-
role = rg.role
|
56
|
-
to_deletes << role unless ids.include?(role.id.to_s) or ids.include?(role.id)
|
57
|
-
end
|
58
|
-
|
59
|
-
to_deletes.each do |role|
|
60
|
-
self.roles.delete(role) if self.roles.include?(role)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# Public: Permite agregar un grupo de Roles al Grupo
|
65
|
-
# No elimina los roles que no esten en la lista, solo agrega los que no estan.
|
66
|
-
#
|
67
|
-
# new_roles - el arreglo de roles que se quiere agregar al grupo
|
68
|
-
#
|
69
|
-
# Returns nothing.
|
70
|
-
def push_roles new_roles
|
71
|
-
new_roles.each do |role|
|
72
|
-
self.roles << role unless self.roles.include? role
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
private
|
77
|
-
# Public: Permite que al eliminar un rol de un grupo, tambien se modifiquen los roles de los administradores asociados a ese grupo.
|
78
|
-
#
|
79
|
-
# role - el rol que se elimino del grupo.
|
80
|
-
#
|
81
|
-
# Returns nothing.
|
82
|
-
def remove_roles_from_admin role
|
83
|
-
admins.each do |admin|
|
84
|
-
if admin.authorizations.map(&:role_id).include?(role.id) and not admin.role_in_groups?(role.name)
|
85
|
-
admin.authorizations.find_by_role_id(role.id).destroy
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|