the_role 2.5.4 → 3.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.
- checksums.yaml +4 -4
- data/README.md +178 -526
- data/gem_version.rb +3 -0
- data/lib/the_role/version.rb +1 -3
- data/lib/the_role.rb +3 -41
- data/the_role.gemspec +5 -5
- metadata +20 -231
- data/.ruby-gemset.example +0 -1
- data/.ruby-version.example +0 -1
- data/.rvmrc.example +0 -1
- data/.travis.yml +0 -5
- data/Bye_bye_CanCan_I_got_the_Role.png +0 -0
- data/app/controllers/admin/role_sections_controller.rb +0 -90
- data/app/controllers/admin/roles_controller.rb +0 -74
- data/app/controllers/concerns/controller.rb +0 -23
- data/app/models/_templates_/role.rb +0 -3
- data/app/models/concerns/base.rb +0 -37
- data/app/models/concerns/role.rb +0 -156
- data/app/models/concerns/user.rb +0 -57
- data/config/locales/en.yml +0 -44
- data/config/locales/es.yml +0 -42
- data/config/locales/nl.yml +0 -44
- data/config/locales/pl.yml +0 -43
- data/config/locales/pt_BR.yml +0 -43
- data/config/locales/ru.yml +0 -43
- data/config/locales/zh_CN.yml +0 -42
- data/config/routes.rb +0 -23
- data/db/migrate/20111025025129_create_roles.rb +0 -23
- data/docs/2.1.1.png +0 -0
- data/lib/generators/the_role/USAGE +0 -32
- data/lib/generators/the_role/templates/the_role.rb +0 -11
- data/lib/generators/the_role/the_role_generator.rb +0 -64
- data/lib/tasks/roles.rake +0 -137
- data/lib/the_role/activerecord.rb +0 -11
- data/lib/the_role/config.rb +0 -30
- data/lib/the_role/hash.rb +0 -58
- data/lib/the_role/the_class_exists.rb +0 -8
- data/pic.png +0 -0
- data/spec/dummy_app/.gitignore +0 -18
- data/spec/dummy_app/.rspec +0 -1
- data/spec/dummy_app/Gemfile +0 -43
- data/spec/dummy_app/README.md +0 -39
- data/spec/dummy_app/Rakefile +0 -6
- data/spec/dummy_app/app/assets/images/.keep +0 -0
- data/spec/dummy_app/app/assets/javascripts/application.js +0 -17
- data/spec/dummy_app/app/assets/stylesheets/app/style.css.scss +0 -23
- data/spec/dummy_app/app/assets/stylesheets/application.css +0 -3
- data/spec/dummy_app/app/controllers/application_controller.rb +0 -38
- data/spec/dummy_app/app/controllers/concerns/.keep +0 -0
- data/spec/dummy_app/app/controllers/pages_controller.rb +0 -75
- data/spec/dummy_app/app/controllers/users_controller.rb +0 -32
- data/spec/dummy_app/app/controllers/welcome_controller.rb +0 -13
- data/spec/dummy_app/app/helpers/application_helper.rb +0 -2
- data/spec/dummy_app/app/mailers/.keep +0 -0
- data/spec/dummy_app/app/models/.keep +0 -0
- data/spec/dummy_app/app/models/concerns/.keep +0 -0
- data/spec/dummy_app/app/models/page.rb +0 -24
- data/spec/dummy_app/app/models/role.rb +0 -4
- data/spec/dummy_app/app/models/user.rb +0 -21
- data/spec/dummy_app/app/views/layouts/_current_user_info.html.haml +0 -17
- data/spec/dummy_app/app/views/layouts/application.html.haml +0 -68
- data/spec/dummy_app/app/views/pages/_form.html.haml +0 -19
- data/spec/dummy_app/app/views/pages/edit.html.haml +0 -7
- data/spec/dummy_app/app/views/pages/index.html.haml +0 -27
- data/spec/dummy_app/app/views/pages/manage.html.haml +0 -23
- data/spec/dummy_app/app/views/pages/my.html.haml +0 -10
- data/spec/dummy_app/app/views/pages/new.html.haml +0 -5
- data/spec/dummy_app/app/views/pages/show.html.haml +0 -15
- data/spec/dummy_app/app/views/users/edit.html.haml +0 -34
- data/spec/dummy_app/app/views/welcome/index.html.haml +0 -38
- data/spec/dummy_app/app/views/welcome/profile.html.haml +0 -2
- data/spec/dummy_app/bin/bundle +0 -3
- data/spec/dummy_app/bin/rails +0 -4
- data/spec/dummy_app/bin/rake +0 -4
- data/spec/dummy_app/config/application.rb +0 -25
- data/spec/dummy_app/config/boot.rb +0 -4
- data/spec/dummy_app/config/database.yml +0 -17
- data/spec/dummy_app/config/environment.rb +0 -5
- data/spec/dummy_app/config/environments/development.rb +0 -29
- data/spec/dummy_app/config/environments/production.rb +0 -80
- data/spec/dummy_app/config/environments/test.rb +0 -36
- data/spec/dummy_app/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/dummy_app/config/initializers/devise.rb +0 -227
- data/spec/dummy_app/config/initializers/filter_parameter_logging.rb +0 -4
- data/spec/dummy_app/config/initializers/inflections.rb +0 -16
- data/spec/dummy_app/config/initializers/mime_types.rb +0 -5
- data/spec/dummy_app/config/initializers/secret_token.rb +0 -12
- data/spec/dummy_app/config/initializers/session_store.rb +0 -3
- data/spec/dummy_app/config/initializers/the_role.rb +0 -6
- data/spec/dummy_app/config/initializers/wrap_parameters.rb +0 -14
- data/spec/dummy_app/config/locales/devise.en.yml +0 -57
- data/spec/dummy_app/config/locales/en.yml +0 -7
- data/spec/dummy_app/config/locales/ru.yml +0 -4
- data/spec/dummy_app/config/routes.rb +0 -26
- data/spec/dummy_app/config.ru +0 -4
- data/spec/dummy_app/db/migrate/20120212061952_devise_create_users.rb +0 -63
- data/spec/dummy_app/db/migrate/20120212063249_create_roles.rb +0 -18
- data/spec/dummy_app/db/migrate/20120314061307_create_pages.rb +0 -14
- data/spec/dummy_app/db/schema.rb +0 -59
- data/spec/dummy_app/db/seeds.rb +0 -85
- data/spec/dummy_app/lib/assets/.keep +0 -0
- data/spec/dummy_app/lib/tasks/.keep +0 -0
- data/spec/dummy_app/lib/tasks/assets.rake +0 -15
- data/spec/dummy_app/lib/tasks/db_bootstrap.rake +0 -16
- data/spec/dummy_app/log/.keep +0 -0
- data/spec/dummy_app/public/404.html +0 -58
- data/spec/dummy_app/public/422.html +0 -58
- data/spec/dummy_app/public/500.html +0 -57
- data/spec/dummy_app/public/favicon.ico +0 -0
- data/spec/dummy_app/public/robots.txt +0 -5
- data/spec/dummy_app/spec/controllers/admin_roles_controller_spec.rb +0 -52
- data/spec/dummy_app/spec/controllers/pages_controller_spec.rb +0 -141
- data/spec/dummy_app/spec/controllers/welcome_controller_spec.rb +0 -66
- data/spec/dummy_app/spec/factories/page.rb +0 -6
- data/spec/dummy_app/spec/factories/role.rb +0 -55
- data/spec/dummy_app/spec/factories/user.rb +0 -11
- data/spec/dummy_app/spec/models/hash_spec.rb +0 -272
- data/spec/dummy_app/spec/models/param_process_spec.rb +0 -39
- data/spec/dummy_app/spec/models/role_spec.rb +0 -218
- data/spec/dummy_app/spec/models/user_spec.rb +0 -164
- data/spec/dummy_app/spec/routing/admin_roles_routing_spec.rb +0 -41
- data/spec/dummy_app/spec/routing/pages_routing_spec.rb +0 -35
- data/spec/dummy_app/spec/spec_helper.rb +0 -68
- data/spec/dummy_app/vendor/assets/javascripts/.keep +0 -0
- data/spec/dummy_app/vendor/assets/stylesheets/.keep +0 -0
- data/the_role.yml.teamocil.example +0 -11
data/app/models/concerns/role.rb
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
module TheRole
|
|
2
|
-
module Role
|
|
3
|
-
extend ActiveSupport::Concern
|
|
4
|
-
|
|
5
|
-
include TheRole::Base
|
|
6
|
-
|
|
7
|
-
def role_hash;
|
|
8
|
-
to_hash;
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
alias_method :has?, :has_role?
|
|
12
|
-
alias_method :any?, :any_role?
|
|
13
|
-
|
|
14
|
-
def has_section? section_name
|
|
15
|
-
to_hash.key? section_name.to_slug_param(sep: '_')
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
included do
|
|
19
|
-
attr_accessor :based_on_role
|
|
20
|
-
|
|
21
|
-
has_many :users, dependent: TheRole.config.destroy_strategy
|
|
22
|
-
validates :name, presence: true, uniqueness: true
|
|
23
|
-
validates :title, presence: true, uniqueness: true
|
|
24
|
-
validates :description, presence: true
|
|
25
|
-
|
|
26
|
-
private
|
|
27
|
-
|
|
28
|
-
before_save do
|
|
29
|
-
self.name = name.to_slug_param(sep: '_')
|
|
30
|
-
|
|
31
|
-
rules_set = self.the_role
|
|
32
|
-
self.the_role = {}.to_json if rules_set.blank?
|
|
33
|
-
self.the_role = rules_set.to_json if rules_set.is_a?(Hash)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
after_create do
|
|
37
|
-
unless based_on_role.blank?
|
|
38
|
-
if base_role = self.class.where(id: based_on_role).first
|
|
39
|
-
update_role base_role.to_hash
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
module ClassMethods
|
|
46
|
-
def with_name name
|
|
47
|
-
::Role.where(name: name).first
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# C
|
|
52
|
-
|
|
53
|
-
def create_section section_name = nil
|
|
54
|
-
return false unless section_name
|
|
55
|
-
role = to_hash
|
|
56
|
-
section_name = section_name.to_slug_param(sep: '_')
|
|
57
|
-
return false if section_name.blank?
|
|
58
|
-
return true if role[section_name]
|
|
59
|
-
role[section_name] = {}
|
|
60
|
-
update(the_role: role)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def create_rule section_name, rule_name
|
|
64
|
-
return false if rule_name.blank?
|
|
65
|
-
return false unless create_section(section_name)
|
|
66
|
-
|
|
67
|
-
role = to_hash
|
|
68
|
-
rule_name = rule_name.to_slug_param(sep: '_')
|
|
69
|
-
section_name = section_name.to_slug_param(sep: '_')
|
|
70
|
-
|
|
71
|
-
return true if role[section_name][rule_name]
|
|
72
|
-
role[section_name][rule_name] = false
|
|
73
|
-
update(the_role: role)
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
# R
|
|
77
|
-
|
|
78
|
-
def to_hash
|
|
79
|
-
#return the hash if activerecord parsed the json from postgresql
|
|
80
|
-
return the_role if the_role.kind_of? Hash
|
|
81
|
-
begin
|
|
82
|
-
JSON.load(the_role) rescue {}
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def to_json
|
|
87
|
-
the_role
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
# U
|
|
91
|
-
|
|
92
|
-
# source_hash will be reset to false
|
|
93
|
-
# except true items from new_role_hash
|
|
94
|
-
# all keys will become 'strings'
|
|
95
|
-
# look at lib/the_role/hash.rb to find definition of *underscorify_keys* method
|
|
96
|
-
def update_role new_role_hash
|
|
97
|
-
new_role_hash = new_role_hash.try(:to_hash) || {}
|
|
98
|
-
new_role = new_role_hash.underscorify_keys
|
|
99
|
-
role = to_hash.underscorify_keys.deep_reset(false)
|
|
100
|
-
role.deep_merge! new_role
|
|
101
|
-
update(the_role: role)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def rule_on section_name, rule_name
|
|
105
|
-
role = to_hash
|
|
106
|
-
rule_name = rule_name.to_slug_param(sep: '_')
|
|
107
|
-
section_name = section_name.to_slug_param(sep: '_')
|
|
108
|
-
|
|
109
|
-
return false unless role[section_name]
|
|
110
|
-
return false unless role[section_name].key? rule_name
|
|
111
|
-
return true if role[section_name][rule_name]
|
|
112
|
-
|
|
113
|
-
role[section_name][rule_name] = true
|
|
114
|
-
update(the_role: role)
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def rule_off section_name, rule_name
|
|
118
|
-
role = to_hash
|
|
119
|
-
rule_name = rule_name.to_slug_param(sep: '_')
|
|
120
|
-
section_name = section_name.to_slug_param(sep: '_')
|
|
121
|
-
|
|
122
|
-
return false unless role[section_name]
|
|
123
|
-
return false unless role[section_name].key? rule_name
|
|
124
|
-
return true unless role[section_name][rule_name]
|
|
125
|
-
|
|
126
|
-
role[section_name][rule_name] = false
|
|
127
|
-
update(the_role: role)
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
# D
|
|
131
|
-
|
|
132
|
-
def delete_section section_name = nil
|
|
133
|
-
return false unless section_name
|
|
134
|
-
role = to_hash
|
|
135
|
-
section_name = section_name.to_slug_param(sep: '_')
|
|
136
|
-
|
|
137
|
-
return false if section_name.blank?
|
|
138
|
-
return false unless role[section_name]
|
|
139
|
-
|
|
140
|
-
role.delete section_name
|
|
141
|
-
update(the_role: role)
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
def delete_rule section_name, rule_name
|
|
145
|
-
role = to_hash
|
|
146
|
-
rule_name = rule_name.to_slug_param(sep: '_')
|
|
147
|
-
section_name = section_name.to_slug_param(sep: '_')
|
|
148
|
-
|
|
149
|
-
return false unless role[section_name]
|
|
150
|
-
return false unless role[section_name].key? rule_name
|
|
151
|
-
|
|
152
|
-
role[section_name].delete rule_name
|
|
153
|
-
update(the_role: role)
|
|
154
|
-
end
|
|
155
|
-
end
|
|
156
|
-
end
|
data/app/models/concerns/user.rb
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
module TheRole
|
|
2
|
-
module User
|
|
3
|
-
extend ActiveSupport::Concern
|
|
4
|
-
|
|
5
|
-
include TheRole::Base
|
|
6
|
-
|
|
7
|
-
included do
|
|
8
|
-
belongs_to :role
|
|
9
|
-
before_validation :set_default_role, on: :create
|
|
10
|
-
after_save { |user| user.instance_variable_set(:@role_hash, nil) }
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
module ClassMethods
|
|
14
|
-
def with_role name
|
|
15
|
-
::Role.where(name: name).first.users
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def role_hash;
|
|
20
|
-
@role_hash ||= role.try(:to_hash) || {}
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# FALSE if object is nil
|
|
24
|
-
# If object is a USER - check for youself
|
|
25
|
-
# Check for owner field - :user_id
|
|
26
|
-
# Check for owner _object_ if owner field is not :user_id
|
|
27
|
-
def owner? obj
|
|
28
|
-
return false unless obj
|
|
29
|
-
return true if admin?
|
|
30
|
-
|
|
31
|
-
section_name = obj.class.to_s.tableize
|
|
32
|
-
return true if moderator?(section_name)
|
|
33
|
-
|
|
34
|
-
# obj is User, simple way to define user_id
|
|
35
|
-
return id == obj.id if obj.is_a?(self.class)
|
|
36
|
-
|
|
37
|
-
# few ways to define user_id
|
|
38
|
-
return id == obj.user_id if obj.respond_to? :user_id
|
|
39
|
-
return id == obj[:user_id] if obj[:user_id]
|
|
40
|
-
return id == obj[:user][:id] if obj[:user]
|
|
41
|
-
false
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
private
|
|
45
|
-
|
|
46
|
-
def set_default_role
|
|
47
|
-
unless role
|
|
48
|
-
default_role = ::Role.find_by_name(TheRole.config.default_user_role)
|
|
49
|
-
self.role = default_role if default_role
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
if self.class.count.zero? && TheRole.config.first_user_should_be_admin
|
|
53
|
-
self.role = TheRole.create_admin_role!
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
data/config/locales/en.yml
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
en:
|
|
2
|
-
the_role:
|
|
3
|
-
role_created: Role created
|
|
4
|
-
role_updated: Role updated
|
|
5
|
-
role_deleted: Role deleted
|
|
6
|
-
section_created: Section created
|
|
7
|
-
section_not_created: Section not created
|
|
8
|
-
section_rule_created: "Section rule created"
|
|
9
|
-
section_rule_not_created: "Section rule not created"
|
|
10
|
-
section_rule_on: "Section rule is enable"
|
|
11
|
-
section_rule_off: "Section rule is disable"
|
|
12
|
-
state_not_changed: "Section rule not changed"
|
|
13
|
-
section_deleted: Section deleted
|
|
14
|
-
section_not_deleted: Section not deleted
|
|
15
|
-
section_rule_deleted: "Section rule deleted"
|
|
16
|
-
section_rule_not_deleted: "Section rule not deleted"
|
|
17
|
-
access_denied: "Access Denied"
|
|
18
|
-
|
|
19
|
-
admin:
|
|
20
|
-
roles:
|
|
21
|
-
new:
|
|
22
|
-
create: Create new Role
|
|
23
|
-
name: Name of role (underscored latin string)
|
|
24
|
-
title: Title of role (text)
|
|
25
|
-
description: Description of role (text)
|
|
26
|
-
based_on_role: "New role will be based on:"
|
|
27
|
-
role:
|
|
28
|
-
role_name: 'Role name:'
|
|
29
|
-
title: 'Title:'
|
|
30
|
-
role_description: 'Description of role:'
|
|
31
|
-
delete_section: Delete section
|
|
32
|
-
section_delete_confirm: 'Do you want to delete section?'
|
|
33
|
-
rule_delete_confirm: 'Do you want to delete rule?'
|
|
34
|
-
enable: Enable
|
|
35
|
-
disable: Disable
|
|
36
|
-
delete_rule: Delete rule
|
|
37
|
-
new_section_placeholder: New section name
|
|
38
|
-
create_section: Create new section
|
|
39
|
-
new_rule_placeholder: New rule name
|
|
40
|
-
create_rule: Create new rule
|
|
41
|
-
sidebar:
|
|
42
|
-
roles_list: Roles list
|
|
43
|
-
new_role: Create new role
|
|
44
|
-
delete_role_confirm: 'Are you sure? It can be dangerous!'
|
data/config/locales/es.yml
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
es:
|
|
2
|
-
the_role:
|
|
3
|
-
role_created: Rol creado
|
|
4
|
-
role_updated: Rol actualizado
|
|
5
|
-
role_deleted: Rol eliminado
|
|
6
|
-
section_created: Sección creada
|
|
7
|
-
section_not_created: Sección no creada
|
|
8
|
-
section_rule_created: Regla de sección creada
|
|
9
|
-
section_rule_not_created: Regla de sección no creada
|
|
10
|
-
section_rule_on: Regla de sección activada
|
|
11
|
-
section_rule_off: Regla de sección desactivada
|
|
12
|
-
state_not_changed: Regla de sección no modificada
|
|
13
|
-
section_deleted: Sección eliminada
|
|
14
|
-
section_not_deleted: Sección no eliminada
|
|
15
|
-
section_rule_deleted: Regla de sección eliminada
|
|
16
|
-
section_rule_not_deleted: Regla de sección no eliminada
|
|
17
|
-
|
|
18
|
-
admin:
|
|
19
|
-
roles:
|
|
20
|
-
new:
|
|
21
|
-
create: Crear nuevo rol
|
|
22
|
-
name: Nombre del rol (cadena de caracteres simples + guión bajo)
|
|
23
|
-
title: Título del rol
|
|
24
|
-
description: Descripción del rol
|
|
25
|
-
role:
|
|
26
|
-
role_name: 'Nombre del rol:'
|
|
27
|
-
title: 'Título:'
|
|
28
|
-
role_description: 'Descripción del rol:'
|
|
29
|
-
delete_section: Eliminar sección
|
|
30
|
-
section_delete_confirm: "¿Quieres borrar la sección?"
|
|
31
|
-
rule_delete_confirm: "¿Quieres eliminar la regla?"
|
|
32
|
-
enable: Activar
|
|
33
|
-
disable: Desactivar
|
|
34
|
-
delete_rule: Eliminar regla
|
|
35
|
-
new_section_placeholder: Nombre de la nueva sección
|
|
36
|
-
create_section: Crear nueva sección
|
|
37
|
-
new_rule_placeholder: Nombre de la nueva regla
|
|
38
|
-
create_rule: Crear nueva regla
|
|
39
|
-
sidebar:
|
|
40
|
-
roles_list: Lista de roles
|
|
41
|
-
new_role: Crear nuevo rol
|
|
42
|
-
delete_role_confirm: "¿Estás seguro? ¡Puede ser peligroso!"
|
data/config/locales/nl.yml
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
nl:
|
|
2
|
-
the_role:
|
|
3
|
-
role_created: Toegangsprofiel aangemaakt
|
|
4
|
-
role_updated: Toegangsprofiel bijgewerkt
|
|
5
|
-
role_deleted: Toegangsprofiel verwijderd
|
|
6
|
-
section_created: Sectie aangemaakt
|
|
7
|
-
section_not_created: Sectie niet aangemaakt
|
|
8
|
-
section_rule_created: "Sectieprofiel aangemaakt"
|
|
9
|
-
section_rule_not_created: "Sectieprofiel niet aangemaakt"
|
|
10
|
-
section_rule_on: "Sectieprofiel is geactiveerd"
|
|
11
|
-
section_rule_off: "Sectieprofiel is gedeactiveerd"
|
|
12
|
-
state_not_changed: "Sectieprofiel niet aangepast"
|
|
13
|
-
section_deleted: Sectie verwijderd
|
|
14
|
-
section_not_deleted: Sectie niet verwijderd
|
|
15
|
-
section_rule_deleted: "Sectieprofiel verwijderd"
|
|
16
|
-
section_rule_not_deleted: "Sectieprofiel niet verwijderd"
|
|
17
|
-
access_denied: "Toegang geweigerd"
|
|
18
|
-
|
|
19
|
-
admin:
|
|
20
|
-
roles:
|
|
21
|
-
new:
|
|
22
|
-
create: Maak nieuwe toegangsprofiel aan
|
|
23
|
-
name: Naam van toegangsprofiel (underscored latin string)
|
|
24
|
-
title: Titel van toegangsprofiel (text)
|
|
25
|
-
description: Beschrijving van toegangsprofiel (text)
|
|
26
|
-
based_on_role: "Nieuwe toegansprofiel wordt gebaseerd op:"
|
|
27
|
-
role:
|
|
28
|
-
role_name: 'Toegangsprofiel naam:'
|
|
29
|
-
title: 'Titel:'
|
|
30
|
-
role_description: 'Omschrijving van het toegangsprofiel:'
|
|
31
|
-
delete_section: Verwijder sectie
|
|
32
|
-
section_delete_confirm: 'Wil je de sectie verwijderen?'
|
|
33
|
-
rule_delete_confirm: 'Wil je het toegangsprofiel verwijderen?'
|
|
34
|
-
enable: Activeren
|
|
35
|
-
disable: Deactiveren
|
|
36
|
-
delete_rule: Verwijder toegangsprofiel
|
|
37
|
-
new_section_placeholder: Naam nieuwe sectie
|
|
38
|
-
create_section: Maak nieuwe sectie aan
|
|
39
|
-
new_rule_placeholder: Naam nieuw toegansprofiel
|
|
40
|
-
create_rule: Maak nieuw toegansprofiel
|
|
41
|
-
sidebar:
|
|
42
|
-
roles_list: Lijst toegangsprofielen
|
|
43
|
-
new_role: Maak nieuw toegansprofiel
|
|
44
|
-
delete_role_confirm: 'Weet je het zeker? Dit kan gevaarlijk zijn!'
|
data/config/locales/pl.yml
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
pl:
|
|
2
|
-
the_role:
|
|
3
|
-
role_created: Rola dodana
|
|
4
|
-
role_updated: Rola zaktualizowana
|
|
5
|
-
role_deleted: Role skasowana
|
|
6
|
-
section_created: Sekcja utworzona
|
|
7
|
-
section_not_created: Sekcja nie utworzona
|
|
8
|
-
section_rule_created: "Reguła utworzona"
|
|
9
|
-
section_rule_not_created: "Reguła nie utworzona"
|
|
10
|
-
section_rule_on: "Reguła uruchomiona"
|
|
11
|
-
section_rule_off: "Reguła wyłączona"
|
|
12
|
-
state_not_changed: "Reguła nie zmieniona"
|
|
13
|
-
section_deleted: Sekcja skasowana
|
|
14
|
-
section_not_deleted: Sekcja nie skasowana
|
|
15
|
-
section_rule_deleted: "Reguła skasowana"
|
|
16
|
-
section_rule_not_deleted: "Reguła nie skasowana"
|
|
17
|
-
access_denied: "Odmowa dostępu"
|
|
18
|
-
|
|
19
|
-
admin:
|
|
20
|
-
roles:
|
|
21
|
-
new:
|
|
22
|
-
create: Utwórz nową rolę
|
|
23
|
-
name: Nazwa roli
|
|
24
|
-
title: Tytuł roli (text)
|
|
25
|
-
description: Opis roli (text)
|
|
26
|
-
role:
|
|
27
|
-
role_name: 'Nazwa roli:'
|
|
28
|
-
title: 'Tytuł:'
|
|
29
|
-
role_description: 'Opis roli:'
|
|
30
|
-
delete_section: Skasuj sekcje
|
|
31
|
-
section_delete_confirm: 'Czy aby napewno chcesz skasować sekcję?'
|
|
32
|
-
rule_delete_confirm: 'Czy aby na pewno chcesz usunąć rolę?'
|
|
33
|
-
enable: Włącz
|
|
34
|
-
disable: Wyłącz
|
|
35
|
-
delete_rule: Skasuj regułę
|
|
36
|
-
new_section_placeholder: Nazwa nowej sekcji
|
|
37
|
-
create_section: Utwórz nową sekcję
|
|
38
|
-
new_rule_placeholder: Nazwa nowej reguły
|
|
39
|
-
create_rule: Utwórz nową regułę
|
|
40
|
-
sidebar:
|
|
41
|
-
roles_list: Lista ról
|
|
42
|
-
new_role: Utwórz nową rolę
|
|
43
|
-
delete_role_confirm: 'Czy jesteś pewien? To może być niebezpieczne!'
|
data/config/locales/pt_BR.yml
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
pt-BR:
|
|
2
|
-
the_role:
|
|
3
|
-
role_created: Papel criado
|
|
4
|
-
role_updated: Papel atualizado
|
|
5
|
-
role_deleted: Papel excluído
|
|
6
|
-
section_created: Seção criada
|
|
7
|
-
section_not_created: Sessão não foi criada
|
|
8
|
-
section_rule_created: "Regra de sessão criada"
|
|
9
|
-
section_rule_not_created: "Regra de sessão não foi criada"
|
|
10
|
-
section_rule_on: "Regra de sessão habilitada"
|
|
11
|
-
section_rule_off: "Regra de sessão desabilitada"
|
|
12
|
-
state_not_changed: "Regra de sessão não alterada"
|
|
13
|
-
section_deleted: Sessão excluída
|
|
14
|
-
section_not_deleted: Sessão não foi excluída
|
|
15
|
-
section_rule_deleted: "Regra de sessão excluída"
|
|
16
|
-
section_rule_not_deleted: "Regra de sessão não foi excluída"
|
|
17
|
-
access_denied: "Acesso negado"
|
|
18
|
-
|
|
19
|
-
admin:
|
|
20
|
-
roles:
|
|
21
|
-
new:
|
|
22
|
-
create: Criar novo Papel
|
|
23
|
-
name: "Nome do Papel (caracteres latinos, com underscore)"
|
|
24
|
-
title: Título do papel (texto)
|
|
25
|
-
description: Descrição do papel (texto)
|
|
26
|
-
role:
|
|
27
|
-
role_name: 'Nome do papel:'
|
|
28
|
-
title: 'Título:'
|
|
29
|
-
role_description: 'Descrição do papel:'
|
|
30
|
-
delete_section: Excluir sessão
|
|
31
|
-
section_delete_confirm: 'Deseja excluir a sessão?'
|
|
32
|
-
rule_delete_confirm: 'Deseja excluir a regra?'
|
|
33
|
-
enable: Habilitar
|
|
34
|
-
disable: Desabilitar
|
|
35
|
-
delete_rule: Excluir regra
|
|
36
|
-
new_section_placeholder: Nome da nova sessão
|
|
37
|
-
create_section: Criar nova sessão
|
|
38
|
-
new_rule_placeholder: Nome da nova regra
|
|
39
|
-
create_rule: Criar nova regra
|
|
40
|
-
sidebar:
|
|
41
|
-
roles_list: Lista de Papéis
|
|
42
|
-
new_role: Criar novo papel
|
|
43
|
-
delete_role_confirm: 'Tem certeza? Isto pode ser perigiso!'
|
data/config/locales/ru.yml
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
ru:
|
|
2
|
-
the_role:
|
|
3
|
-
role_created: Роль создана
|
|
4
|
-
role_updated: Роль обновлена
|
|
5
|
-
role_deleted: Роль удалена
|
|
6
|
-
section_created: Раздел создан
|
|
7
|
-
section_not_created: Раздел не создан
|
|
8
|
-
section_rule_created: Правило создано
|
|
9
|
-
section_rule_not_created: Правило не создано
|
|
10
|
-
section_rule_on: Правило доступа включено
|
|
11
|
-
section_rule_off: Правило доступа отключено
|
|
12
|
-
state_not_changed: Состояние правила не изменилось
|
|
13
|
-
section_deleted: Раздел удален
|
|
14
|
-
section_not_deleted: Раздел не удален
|
|
15
|
-
section_rule_deleted: Правило удалено
|
|
16
|
-
section_rule_not_deleted: Правило не удалено
|
|
17
|
-
|
|
18
|
-
admin:
|
|
19
|
-
roles:
|
|
20
|
-
new:
|
|
21
|
-
create: Создать новую роль
|
|
22
|
-
name: Имя роли (строка из латинских символов + нижнее подчеркивание)
|
|
23
|
-
title: Заголовок роли
|
|
24
|
-
description: Описание роли
|
|
25
|
-
based_on_role: "Новая роль будет основана на:"
|
|
26
|
-
role:
|
|
27
|
-
role_name: 'Имя роли:'
|
|
28
|
-
title: 'Заголовок:'
|
|
29
|
-
role_description: 'Описание:'
|
|
30
|
-
delete_section: Удалить раздел
|
|
31
|
-
section_delete_confirm: 'Вы хотите удалить раздел?'
|
|
32
|
-
rule_delete_confirm: 'Вы хотите удалить правило?'
|
|
33
|
-
enable: Включено
|
|
34
|
-
disable: Отключено
|
|
35
|
-
delete_rule: Удалить правило
|
|
36
|
-
new_section_placeholder: Имя нового раздела
|
|
37
|
-
create_section: Создать раздел
|
|
38
|
-
new_rule_placeholder: Имя нового правила
|
|
39
|
-
create_rule: Создать правило
|
|
40
|
-
sidebar:
|
|
41
|
-
roles_list: Список ролей
|
|
42
|
-
new_role: Создать новую Роль
|
|
43
|
-
delete_role_confirm: 'Удалить роль? Это может быть опасно! Уверены?'
|
data/config/locales/zh_CN.yml
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
zh_CN:
|
|
2
|
-
the_role:
|
|
3
|
-
role_created: 角色已创建
|
|
4
|
-
role_updated: 角色已更新
|
|
5
|
-
role_deleted: 角色已删除
|
|
6
|
-
section_created: 章节已创建
|
|
7
|
-
section_not_created: 章节没有被创建
|
|
8
|
-
section_rule_created: "章节的规则已创建"
|
|
9
|
-
section_rule_not_created: "章节的规则没有被创建"
|
|
10
|
-
section_rule_on: "章节的规则可有"
|
|
11
|
-
section_rule_off: "章节的规则不可有"
|
|
12
|
-
state_not_changed: "章节的规则没有改变"
|
|
13
|
-
section_deleted: 章节已删除
|
|
14
|
-
section_not_deleted: 章节没有被删除
|
|
15
|
-
section_rule_deleted: "章节的规则已被删除"
|
|
16
|
-
section_rule_not_deleted: "章节的规则没有被删除"
|
|
17
|
-
|
|
18
|
-
admin:
|
|
19
|
-
roles:
|
|
20
|
-
new:
|
|
21
|
-
create: 创建新角色
|
|
22
|
-
name: 角色名称 (字符串)
|
|
23
|
-
title: 角色标题 (文本)
|
|
24
|
-
description: 角色描述 (文本)
|
|
25
|
-
role:
|
|
26
|
-
role_name: '角色名称:'
|
|
27
|
-
title: '角色标题:'
|
|
28
|
-
role_description: '角色描述:'
|
|
29
|
-
delete_section: 删除章节
|
|
30
|
-
section_delete_confirm: '你想要删除章节?'
|
|
31
|
-
rule_delete_confirm: '你想删除规则?'
|
|
32
|
-
enable: 可用
|
|
33
|
-
disable: 不可用
|
|
34
|
-
delete_rule: 删除规则
|
|
35
|
-
new_section_placeholder: 新章节名称
|
|
36
|
-
create_section: 创建新章节
|
|
37
|
-
new_rule_placeholder: 新规则名称
|
|
38
|
-
create_rule: 创建新规则
|
|
39
|
-
sidebar:
|
|
40
|
-
roles_list: 角色列表
|
|
41
|
-
new_role: 创建新角色
|
|
42
|
-
delete_role_confirm: '你确定? 可能存在风险!'
|
data/config/routes.rb
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module TheRole
|
|
2
|
-
class AdminRoutes
|
|
3
|
-
def call mapper, options = {}
|
|
4
|
-
mapper.resources :roles, :except => :show do
|
|
5
|
-
mapper.patch 'change', on: :member
|
|
6
|
-
mapper.resources :sections, :controller => :role_sections, :only => :none do
|
|
7
|
-
mapper.collection do
|
|
8
|
-
mapper.post :create
|
|
9
|
-
mapper.post :create_rule
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
mapper.member do
|
|
13
|
-
mapper.put :rule_on
|
|
14
|
-
mapper.put :rule_off
|
|
15
|
-
|
|
16
|
-
mapper.delete :destroy
|
|
17
|
-
mapper.delete :destroy_rule
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
class CreateRoles < ActiveRecord::Migration
|
|
2
|
-
def self.up
|
|
3
|
-
create_table :roles do |t|
|
|
4
|
-
|
|
5
|
-
t.string :name, :null => false
|
|
6
|
-
t.string :title, :null => false
|
|
7
|
-
t.text :description, :null => false
|
|
8
|
-
#Use Postgresql's native json
|
|
9
|
-
#Remove this test if you using PostgreSQL prior to 9.2
|
|
10
|
-
if ::ActiveRecord::Base.connection.adapter_name == 'PostgreSQL'
|
|
11
|
-
t.json :the_role, :null => false
|
|
12
|
-
else
|
|
13
|
-
t.text :the_role, :null => false
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
t.timestamps
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def self.down
|
|
21
|
-
drop_table :roles
|
|
22
|
-
end
|
|
23
|
-
end
|
data/docs/2.1.1.png
DELETED
|
Binary file
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---------------------------------------
|
|
2
|
-
TheRole
|
|
3
|
-
---------------------------------------
|
|
4
|
-
|
|
5
|
-
Description:
|
|
6
|
-
This generators helps to install TheRole gem into your Application
|
|
7
|
-
|
|
8
|
-
This text:
|
|
9
|
-
> bundle exec rails g the_role --help
|
|
10
|
-
|
|
11
|
-
Generators:
|
|
12
|
-
> bundle exec rails g the_role install
|
|
13
|
-
- Install config file and models
|
|
14
|
-
|
|
15
|
-
> bundle exec rails g the_role config
|
|
16
|
-
- Install config file
|
|
17
|
-
|
|
18
|
-
> bundle exec rails g the_role models
|
|
19
|
-
- Install models
|
|
20
|
-
|
|
21
|
-
> bundle exec rails g the_role admin
|
|
22
|
-
- Create Admin Role
|
|
23
|
-
|
|
24
|
-
> rake db:roles:admin
|
|
25
|
-
- Create Admin Role
|
|
26
|
-
|
|
27
|
-
Migrations:
|
|
28
|
-
> bundle exec rake the_role_engine:install:migrations
|
|
29
|
-
|
|
30
|
-
---------------------------------------
|
|
31
|
-
~ TheRole
|
|
32
|
-
---------------------------------------
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# TheRole.config.param_name => value
|
|
2
|
-
|
|
3
|
-
TheRole.configure do |config|
|
|
4
|
-
# config.layout = :application
|
|
5
|
-
|
|
6
|
-
# config.default_user_role = nil
|
|
7
|
-
# config.first_user_should_be_admin = false
|
|
8
|
-
# config.access_denied_method = :access_denied
|
|
9
|
-
# config.login_required_method = :authenticate_user!
|
|
10
|
-
# config.destroy_strategy = :restrict_with_exception # can be nil
|
|
11
|
-
end
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
class TheRoleGenerator < Rails::Generators::NamedBase
|
|
2
|
-
source_root File.expand_path('../templates', __FILE__)
|
|
3
|
-
# argument :xname, type: :string, default: :xname
|
|
4
|
-
|
|
5
|
-
def generate_controllers
|
|
6
|
-
if gen_name == 'install'
|
|
7
|
-
cp_config
|
|
8
|
-
cp_models
|
|
9
|
-
elsif gen_name == 'config'
|
|
10
|
-
cp_config
|
|
11
|
-
elsif gen_name == 'models'
|
|
12
|
-
cp_models
|
|
13
|
-
elsif gen_name == 'admin'
|
|
14
|
-
create_admin_role
|
|
15
|
-
else
|
|
16
|
-
puts 'TheRole Generator - wrong Name'
|
|
17
|
-
puts 'Try to use install'
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
private
|
|
22
|
-
|
|
23
|
-
def root_path; TheRole::Engine.root; end
|
|
24
|
-
|
|
25
|
-
def gen_name
|
|
26
|
-
name.to_s.downcase
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def cp_models
|
|
30
|
-
copy_file "#{root_path}/app/models/_templates_/role.rb",
|
|
31
|
-
"app/models/role.rb"
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def cp_config
|
|
35
|
-
copy_file 'the_role.rb', 'config/initializers/the_role.rb'
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def create_admin_role
|
|
39
|
-
puts `clear`
|
|
40
|
-
puts '~'*40
|
|
41
|
-
puts 'TheRole'
|
|
42
|
-
puts '~'*40
|
|
43
|
-
|
|
44
|
-
unless Role.with_name(:admin)
|
|
45
|
-
role = Role.create(
|
|
46
|
-
name: :admin,
|
|
47
|
-
title: "role for admin",
|
|
48
|
-
description:"this user can do anything"
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
role.create_rule(:system, :administrator)
|
|
52
|
-
role.rule_on(:system, :administrator)
|
|
53
|
-
|
|
54
|
-
puts "Admin role created"
|
|
55
|
-
else
|
|
56
|
-
puts "Admin role exists"
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
puts "Now you can makes any user as Admin:"
|
|
60
|
-
puts "> bin/rails c"
|
|
61
|
-
puts "> User.first.update( role: Role.with_name(:admin) )"
|
|
62
|
-
puts '~'*40
|
|
63
|
-
end
|
|
64
|
-
end
|