the_role 1.5.1 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Bye_bye_CanCan_I_got_the_Role.png +0 -0
- data/README.md +82 -92
- data/app/assets/javascripts/admin_the_role.js +3 -0
- data/app/assets/javascripts/bootstrap-dropdown.js +100 -0
- data/app/assets/stylesheets/admin_the_role.css +7 -0
- data/app/assets/stylesheets/alerts.less +58 -0
- data/app/assets/stylesheets/button-groups.less +191 -0
- data/app/assets/stylesheets/buttons.less +191 -0
- data/app/assets/stylesheets/custom.scss +3 -0
- data/app/assets/stylesheets/dropdowns.less +143 -0
- data/app/assets/stylesheets/forms.less +583 -0
- data/app/assets/stylesheets/grid.less +5 -0
- data/app/assets/stylesheets/headers.scss +15 -0
- data/app/assets/stylesheets/layouts.less +17 -0
- data/app/assets/stylesheets/mix.scss +41 -0
- data/app/assets/stylesheets/mixins.less +646 -0
- data/app/assets/stylesheets/reset.css +117 -0
- data/app/assets/stylesheets/role_set.less +136 -0
- data/app/assets/stylesheets/scaffolding.less +29 -0
- data/app/assets/stylesheets/variables.less +206 -0
- data/app/assets/stylesheets/wells.less +27 -0
- data/app/controllers/admin/role_sections_controller.rb +40 -17
- data/app/controllers/admin/roles_controller.rb +8 -6
- data/app/views/admin/roles/_role.html.haml +53 -0
- data/app/views/admin/roles/_sidebar.html.haml +8 -0
- data/app/views/admin/roles/edit.html.haml +2 -42
- data/app/views/admin/roles/index.haml +2 -15
- data/app/views/admin/roles/new.html.haml +5 -4
- data/app/views/layouts/the_role.html.haml +24 -0
- data/config/routes.rb +5 -1
- data/lib/the_role/engine.rb +2 -2
- data/lib/the_role/hash.rb +50 -14
- data/lib/the_role/modules/base.rb +4 -4
- data/lib/the_role/modules/controller_requires.rb +4 -15
- data/lib/the_role/modules/role_model.rb +14 -13
- data/lib/the_role/param_helper.rb +15 -0
- data/lib/the_role/version.rb +1 -1
- data/lib/the_role.rb +13 -11
- data/pic.png +0 -0
- data/the_role.gemspec +5 -2
- metadata +58 -16
- data/app/assets/stylesheets/the_role/form.css +0 -57
- data/app/assets/stylesheets/the_role/headers.css.scss +0 -15
- data/app/assets/stylesheets/the_role/style.css.scss +0 -75
- data/lib/the_role/modules/param_helper.rb +0 -7
@@ -1,42 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
- content_for :css do
|
5
|
-
= stylesheet_link_tag 'the_role/style'
|
6
|
-
= stylesheet_link_tag 'the_role/headers'
|
7
|
-
= stylesheet_link_tag 'the_role/form'
|
8
|
-
|
9
|
-
.the_role
|
10
|
-
%p= flash[:notice]
|
11
|
-
|
12
|
-
%h1= t('.title')
|
13
|
-
|
14
|
-
%p= link_to raw(t('.back')), admin_roles_path
|
15
|
-
|
16
|
-
%h2
|
17
|
-
= @role.name
|
18
|
-
\-
|
19
|
-
= @role.title
|
20
|
-
|
21
|
-
= form_for :role, :url => {:action=> :update }, :html => {:method => :put, :class => :the_form } do |f|
|
22
|
-
= render :partial => 'form', :locals => {:f => f, :button => t('.update')}
|
23
|
-
|
24
|
-
%h4= t('.create_section')
|
25
|
-
- role = @role.to_hash
|
26
|
-
= form_tag(admin_role_sections_path(@role), :method => :post, :class => :new_rule) do
|
27
|
-
= text_field_tag :section_name
|
28
|
-
= submit_tag t('.create_section')
|
29
|
-
|
30
|
-
%h4= t('.create_access_rule')
|
31
|
-
- unless @role.to_hash.empty?
|
32
|
-
= form_tag(create_rule_admin_role_sections_path(@role), :method => :post, :class => :new_rule) do
|
33
|
-
= text_field_tag :section_rule
|
34
|
-
|
35
|
-
%select{ :name => :section_name }
|
36
|
-
-role.each do |name, set|
|
37
|
-
%option{ :value => name }
|
38
|
-
= name
|
39
|
-
|
40
|
-
%input{ :type => :submit, :value => t('.create_rule') }
|
41
|
-
- else
|
42
|
-
%p= t('.section_needs')
|
1
|
+
= render :partial => 'sidebar'
|
2
|
+
= render :partial => 'role', :locals => { :role => @role }
|
@@ -1,15 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
= stylesheet_link_tag 'the_role/headers'
|
4
|
-
= stylesheet_link_tag 'the_role/form'
|
5
|
-
|
6
|
-
.the_role
|
7
|
-
%h3= t('.list')
|
8
|
-
%ul.index
|
9
|
-
- @roles.each do |role|
|
10
|
-
%li
|
11
|
-
%p
|
12
|
-
= link_to role.title, edit_admin_role_url(role)
|
13
|
-
= link_to t('.delete'), admin_role_url(role), :method => :delete, :title => role.title, :confirm => t('the_role.delete_role'), :class => :delete
|
14
|
-
|
15
|
-
%p= link_to t('.new'), new_admin_role_path
|
1
|
+
= render :partial => 'sidebar'
|
2
|
+
= render :partial => 'role', :locals => { :role => @roles.first }
|
@@ -1,6 +1,6 @@
|
|
1
|
-
|
2
|
-
%p= link_to raw(t('.back')), admin_roles_path
|
1
|
+
= render :partial => 'sidebar'
|
3
2
|
|
3
|
+
.well
|
4
4
|
- @role.errors.each do |field, message|
|
5
5
|
%p
|
6
6
|
= field
|
@@ -8,7 +8,8 @@
|
|
8
8
|
= message
|
9
9
|
|
10
10
|
.form
|
11
|
-
%
|
11
|
+
%h3= raw t('.create')
|
12
|
+
|
12
13
|
= form_for(@role, :url => admin_roles_path) do |f|
|
13
14
|
%label= t('.name')
|
14
15
|
%p= f.text_field :name
|
@@ -19,4 +20,4 @@
|
|
19
20
|
%label= t('.description')
|
20
21
|
%p= f.text_field :description
|
21
22
|
|
22
|
-
= f.submit t('.new')
|
23
|
+
= f.submit t('.new'), :class => :btn
|
@@ -0,0 +1,24 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{ :charset => 'utf-8' }
|
5
|
+
%title Bye bye, CanCan, I got the Role!
|
6
|
+
= stylesheet_link_tag 'admin_the_role'
|
7
|
+
= javascript_include_tag 'admin_the_role'
|
8
|
+
= csrf_meta_tags
|
9
|
+
%body
|
10
|
+
.the_role
|
11
|
+
%h3
|
12
|
+
= link_to 'The Role', 'https://github.com/the-teacher/the_role'
|
13
|
+
\|
|
14
|
+
Role system for Rails Apps
|
15
|
+
\|
|
16
|
+
User: #{current_user.try(:name) || current_user.id}
|
17
|
+
.crusty
|
18
|
+
.container
|
19
|
+
.row
|
20
|
+
.span3
|
21
|
+
.sidebar= yield :sidebar
|
22
|
+
.span9
|
23
|
+
.content= yield
|
24
|
+
|
data/config/routes.rb
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
namespace :admin do
|
3
|
-
resources :roles do
|
3
|
+
resources :roles, :except => :show do
|
4
4
|
resources :sections, :controller => :role_sections, :only => :none do
|
5
5
|
collection do
|
6
6
|
post :create
|
7
7
|
post :create_rule
|
8
8
|
end
|
9
|
+
|
9
10
|
member do
|
11
|
+
put :rule_on
|
12
|
+
put :rule_off
|
13
|
+
|
10
14
|
delete :destroy
|
11
15
|
delete :destroy_rule
|
12
16
|
end
|
data/lib/the_role/engine.rb
CHANGED
data/lib/the_role/hash.rb
CHANGED
@@ -1,29 +1,65 @@
|
|
1
|
+
# load 'the_role/hash.rb' - UPDATE, BUT NOT RELOAD [for console testing]
|
2
|
+
|
1
3
|
class Hash
|
2
|
-
#
|
4
|
+
# Puts message about potential compatibility problem
|
5
|
+
if respond_to? :underscorify_keys
|
6
|
+
puts "\nWARNING!\nHASH#underscorify_keys detected.\nIf now it's native active_support/core_ext/hash method,\nyou should to create new issue for https://github.com/the-teacher/the_role\n\n"
|
7
|
+
end
|
3
8
|
|
4
|
-
#
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
9
|
+
# RAILS 4 like methods for RAILS 3
|
10
|
+
# DEEP TRANSFORM HELPER METHODS
|
11
|
+
unless respond_to? :deep_transform_keys
|
12
|
+
def deep_transform_keys(&block)
|
13
|
+
result = {}
|
14
|
+
each do |key, value|
|
15
|
+
result[yield(key)] = value.is_a?(Hash) ? value.deep_transform_keys(&block) : value
|
16
|
+
end
|
17
|
+
result
|
10
18
|
end
|
11
|
-
|
19
|
+
|
20
|
+
def deep_transform_keys!(&block)
|
21
|
+
keys.each do |key|
|
22
|
+
value = delete(key)
|
23
|
+
self[yield(key)] = value.is_a?(Hash) ? value.deep_transform_keys!(&block) : value
|
24
|
+
end
|
25
|
+
self
|
26
|
+
end
|
27
|
+
puts "TheRole => RAILS 4 like method **deep_transform_keys** mixed to HASH class"
|
12
28
|
end
|
13
29
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
30
|
+
# RAILS 4 like methods for RAILS 3
|
31
|
+
# DEEP TRANSFORM HELPER METHODS
|
32
|
+
unless respond_to? :deep_stringify_keys
|
33
|
+
def deep_stringify_keys
|
34
|
+
deep_transform_keys{ |key| key.to_s }
|
18
35
|
end
|
19
|
-
|
36
|
+
|
37
|
+
def deep_stringify_keys!
|
38
|
+
deep_transform_keys!{ |key| key.to_s }
|
39
|
+
end
|
40
|
+
puts "TheRole => RAILS 4 like method **deep_stringify_keys** mixed to HASH class"
|
41
|
+
end
|
42
|
+
|
43
|
+
# Potential compatibility problem with RAILS_VERSION > 4.0
|
44
|
+
# But I hope nobody will create function with this name
|
45
|
+
def underscorify_keys
|
46
|
+
deep_transform_keys{ |key| TheRole::ParamHelper.prepare(key) }
|
20
47
|
end
|
21
48
|
|
22
49
|
def underscorify_keys!
|
23
50
|
replace underscorify_keys
|
24
51
|
end
|
25
52
|
|
26
|
-
|
53
|
+
# DEEP RESET VALUES
|
54
|
+
def deep_reset(default = nil)
|
55
|
+
hash = dup
|
56
|
+
hash.each do |key, value|
|
57
|
+
hash[key] = hash[key].is_a?(Hash) ? hash[key].deep_reset(default) : default
|
58
|
+
end
|
59
|
+
hash
|
60
|
+
end
|
61
|
+
|
62
|
+
def deep_reset!(default = nil)
|
27
63
|
replace deep_reset(default)
|
28
64
|
end
|
29
65
|
end
|
@@ -4,8 +4,8 @@ module TheRole
|
|
4
4
|
hash = role_hash
|
5
5
|
section_name = param_prepare(section_name)
|
6
6
|
rule_name = param_prepare(rule_name)
|
7
|
-
return true if hash[
|
8
|
-
return true if hash[
|
7
|
+
return true if hash['system'] and hash['system']['administrator']
|
8
|
+
return true if hash['moderator'] and hash['moderator'][section_name]
|
9
9
|
return false unless hash[section_name]
|
10
10
|
return false unless hash[section_name].key? rule_name
|
11
11
|
hash[section_name][rule_name]
|
@@ -13,11 +13,11 @@ module TheRole
|
|
13
13
|
|
14
14
|
def moderator? section_name
|
15
15
|
section_name = param_prepare(section_name)
|
16
|
-
has_role? section_name,
|
16
|
+
has_role? section_name, 'any_crazy_name'
|
17
17
|
end
|
18
18
|
|
19
19
|
def admin?
|
20
|
-
has_role?
|
20
|
+
has_role? 'any_crazy_name', 'any_crazy_name'
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -1,28 +1,17 @@
|
|
1
1
|
module TheRole
|
2
2
|
module Requires
|
3
3
|
private
|
4
|
-
|
5
4
|
def role_access_denied
|
6
5
|
flash[:error] = t('the_role.access_denied')
|
7
6
|
redirect_to root_path
|
8
7
|
end
|
9
|
-
|
10
|
-
# before_filter :role_require
|
11
|
-
def role_require
|
12
|
-
role_access_denied unless current_user.has_role?(controller_name, action_name)
|
13
|
-
end
|
14
8
|
|
15
|
-
|
16
|
-
|
17
|
-
# @object_for_ownership_checking = @article
|
18
|
-
def simple_object_finder
|
19
|
-
variable_name = self.class.to_s.tableize.split('_').first.singularize.split('/').last
|
20
|
-
@object_for_ownership_checking = self.instance_variable_get("@#{variable_name}")
|
9
|
+
def role_required
|
10
|
+
role_access_denied unless current_user.has_role?(controller_name, action_name)
|
21
11
|
end
|
22
12
|
|
23
|
-
|
24
|
-
|
25
|
-
role_access_denied unless current_user.owner?(@object_for_ownership_checking)
|
13
|
+
def owner_required
|
14
|
+
role_access_denied unless current_user.owner?(@ownership_checking_object)
|
26
15
|
end
|
27
16
|
end
|
28
17
|
end
|
@@ -17,9 +17,10 @@ module TheRole
|
|
17
17
|
validates :name, :presence => true, :uniqueness => true
|
18
18
|
validates :title, :presence => true, :uniqueness => true
|
19
19
|
validates :description, :presence => true
|
20
|
+
|
20
21
|
before_create do
|
21
|
-
self.name = param_prepare(name)
|
22
|
-
self.the_role = {}.
|
22
|
+
self.name = param_prepare(name)
|
23
|
+
self.the_role = {}.to_json if self.the_role.blank?
|
23
24
|
end
|
24
25
|
|
25
26
|
# C
|
@@ -31,7 +32,7 @@ module TheRole
|
|
31
32
|
return false if section_name.blank?
|
32
33
|
return true if role[section_name]
|
33
34
|
role[section_name] = {}
|
34
|
-
update_attributes(:the_role => role.
|
35
|
+
update_attributes(:the_role => role.to_json)
|
35
36
|
end
|
36
37
|
|
37
38
|
def create_rule section_name, rule_name
|
@@ -41,16 +42,16 @@ module TheRole
|
|
41
42
|
section_name = param_prepare(section_name)
|
42
43
|
return true if role[section_name][rule_name]
|
43
44
|
role[section_name][rule_name] = false
|
44
|
-
update_attributes(:the_role => role.
|
45
|
+
update_attributes(:the_role => role.to_json)
|
45
46
|
end
|
46
47
|
|
47
48
|
# R
|
48
49
|
|
49
50
|
def to_hash
|
50
|
-
begin
|
51
|
+
begin JSON.load(the_role) rescue {} end
|
51
52
|
end
|
52
53
|
|
53
|
-
def
|
54
|
+
def to_json
|
54
55
|
the_role
|
55
56
|
end
|
56
57
|
|
@@ -62,14 +63,14 @@ module TheRole
|
|
62
63
|
|
63
64
|
# source_hash will be reset to false
|
64
65
|
# except true items from new_role_hash
|
65
|
-
# all keys will become
|
66
|
+
# all keys will become 'strings'
|
66
67
|
# look at lib/the_role/hash.rb to find definition of *underscorify_keys* method
|
67
68
|
def update_role new_role_hash
|
68
69
|
new_role_hash = new_role_hash.try(:to_hash) || {}
|
69
70
|
new_role = new_role_hash.underscorify_keys
|
70
|
-
role = to_hash.underscorify_keys.deep_reset
|
71
|
+
role = to_hash.underscorify_keys.deep_reset(false)
|
71
72
|
role.deep_merge! new_role
|
72
|
-
update_attributes(:the_role => role.
|
73
|
+
update_attributes(:the_role => role.to_json)
|
73
74
|
end
|
74
75
|
|
75
76
|
def rule_on section_name, rule_name
|
@@ -80,7 +81,7 @@ module TheRole
|
|
80
81
|
return false unless role[section_name].key? rule_name
|
81
82
|
return true if role[section_name][rule_name]
|
82
83
|
role[section_name][rule_name] = true
|
83
|
-
update_attributes(:the_role => role.
|
84
|
+
update_attributes(:the_role => role.to_json)
|
84
85
|
end
|
85
86
|
|
86
87
|
def rule_off section_name, rule_name
|
@@ -91,7 +92,7 @@ module TheRole
|
|
91
92
|
return false unless role[section_name].key? rule_name
|
92
93
|
return true unless role[section_name][rule_name]
|
93
94
|
role[section_name][rule_name] = false
|
94
|
-
update_attributes(:the_role => role.
|
95
|
+
update_attributes(:the_role => role.to_json)
|
95
96
|
end
|
96
97
|
|
97
98
|
# D
|
@@ -103,7 +104,7 @@ module TheRole
|
|
103
104
|
return false if section_name.blank?
|
104
105
|
return false unless role[section_name]
|
105
106
|
role.delete section_name
|
106
|
-
update_attributes(:the_role => role.
|
107
|
+
update_attributes(:the_role => role.to_json)
|
107
108
|
end
|
108
109
|
|
109
110
|
def delete_rule section_name, rule_name
|
@@ -113,7 +114,7 @@ module TheRole
|
|
113
114
|
return false unless role[section_name]
|
114
115
|
return false unless role[section_name].key? rule_name
|
115
116
|
role[section_name].delete rule_name
|
116
|
-
update_attributes(:the_role => role.
|
117
|
+
update_attributes(:the_role => role.to_json)
|
117
118
|
end
|
118
119
|
end
|
119
120
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "active_support/inflector"
|
2
|
+
|
3
|
+
# TheRole::ParamHelper.prepare 'hello world'
|
4
|
+
|
5
|
+
module TheRole
|
6
|
+
module ParamHelper
|
7
|
+
def param_prepare param
|
8
|
+
param.to_s.parameterize.underscore
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.prepare param
|
12
|
+
param.to_s.parameterize.underscore
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/the_role/version.rb
CHANGED
data/lib/the_role.rb
CHANGED
@@ -1,16 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'haml'
|
2
|
+
require 'sass'
|
3
|
+
require 'less-rails'
|
3
4
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require "the_role/version"
|
7
|
-
require "the_role/the_class_exists"
|
5
|
+
require 'the_role/param_helper'
|
6
|
+
require 'the_role/hash'
|
8
7
|
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
|
13
|
-
require
|
8
|
+
require 'the_role/engine'
|
9
|
+
require 'the_role/version'
|
10
|
+
require 'the_role/the_class_exists'
|
11
|
+
|
12
|
+
require 'the_role/modules/base'
|
13
|
+
require 'the_role/modules/user_model'
|
14
|
+
require 'the_role/modules/role_model'
|
15
|
+
require 'the_role/modules/controller_requires'
|
14
16
|
|
15
17
|
module TheRole
|
16
18
|
# include TheRole::Base
|
data/pic.png
CHANGED
Binary file
|
data/the_role.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.authors = ["Ilya N. Zykin"]
|
9
9
|
s.email = ["zykin-ilya@ya.ru"]
|
10
10
|
s.homepage = "https://github.com/the-teacher/the_role"
|
11
|
-
s.summary = %q{
|
12
|
-
s.description = %q{
|
11
|
+
s.summary = %q{Authorization lib for Rails 3 with Web Interface, aka CanCan killer}
|
12
|
+
s.description = %q{Authorization lib for Rails 3 with Web Interface, aka CanCan killer}
|
13
13
|
|
14
14
|
s.rubyforge_project = "the_role"
|
15
15
|
|
@@ -22,4 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.add_dependency 'sass'
|
23
23
|
s.add_dependency 'sass-rails'
|
24
24
|
s.add_dependency 'coffee-rails'
|
25
|
+
# less for tw bootstrap
|
26
|
+
s.add_dependency 'therubyracer'
|
27
|
+
s.add_dependency 'less-rails'
|
25
28
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: the_role
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: haml
|
16
|
-
requirement: &
|
16
|
+
requirement: &20233640 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *20233640
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: sass
|
27
|
-
requirement: &
|
27
|
+
requirement: &20327080 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *20327080
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sass-rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &20326120 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *20326120
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: coffee-rails
|
49
|
-
requirement: &
|
49
|
+
requirement: &20324120 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,8 +54,30 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
58
|
-
|
57
|
+
version_requirements: *20324120
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: therubyracer
|
60
|
+
requirement: &20323460 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *20323460
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: less-rails
|
71
|
+
requirement: &20322540 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *20322540
|
80
|
+
description: Authorization lib for Rails 3 with Web Interface, aka CanCan killer
|
59
81
|
email:
|
60
82
|
- zykin-ilya@ya.ru
|
61
83
|
executables: []
|
@@ -64,19 +86,39 @@ extra_rdoc_files: []
|
|
64
86
|
files:
|
65
87
|
- .gitignore
|
66
88
|
- .rvmrc.example
|
89
|
+
- Bye_bye_CanCan_I_got_the_Role.png
|
67
90
|
- Gemfile
|
68
91
|
- MIT-LICENSE
|
69
92
|
- README.md
|
70
93
|
- Rakefile
|
71
|
-
- app/assets/
|
72
|
-
- app/assets/
|
73
|
-
- app/assets/stylesheets/
|
94
|
+
- app/assets/javascripts/admin_the_role.js
|
95
|
+
- app/assets/javascripts/bootstrap-dropdown.js
|
96
|
+
- app/assets/stylesheets/admin_the_role.css
|
97
|
+
- app/assets/stylesheets/alerts.less
|
98
|
+
- app/assets/stylesheets/button-groups.less
|
99
|
+
- app/assets/stylesheets/buttons.less
|
100
|
+
- app/assets/stylesheets/custom.scss
|
101
|
+
- app/assets/stylesheets/dropdowns.less
|
102
|
+
- app/assets/stylesheets/forms.less
|
103
|
+
- app/assets/stylesheets/grid.less
|
104
|
+
- app/assets/stylesheets/headers.scss
|
105
|
+
- app/assets/stylesheets/layouts.less
|
106
|
+
- app/assets/stylesheets/mix.scss
|
107
|
+
- app/assets/stylesheets/mixins.less
|
108
|
+
- app/assets/stylesheets/reset.css
|
109
|
+
- app/assets/stylesheets/role_set.less
|
110
|
+
- app/assets/stylesheets/scaffolding.less
|
111
|
+
- app/assets/stylesheets/variables.less
|
112
|
+
- app/assets/stylesheets/wells.less
|
74
113
|
- app/controllers/admin/role_sections_controller.rb
|
75
114
|
- app/controllers/admin/roles_controller.rb
|
76
115
|
- app/views/admin/roles/_form.haml
|
116
|
+
- app/views/admin/roles/_role.html.haml
|
117
|
+
- app/views/admin/roles/_sidebar.html.haml
|
77
118
|
- app/views/admin/roles/edit.html.haml
|
78
119
|
- app/views/admin/roles/index.haml
|
79
120
|
- app/views/admin/roles/new.html.haml
|
121
|
+
- app/views/layouts/the_role.html.haml
|
80
122
|
- config/locales/en.yml
|
81
123
|
- config/locales/ru.yml
|
82
124
|
- config/routes.rb
|
@@ -87,9 +129,9 @@ files:
|
|
87
129
|
- lib/the_role/hash.rb
|
88
130
|
- lib/the_role/modules/base.rb
|
89
131
|
- lib/the_role/modules/controller_requires.rb
|
90
|
-
- lib/the_role/modules/param_helper.rb
|
91
132
|
- lib/the_role/modules/role_model.rb
|
92
133
|
- lib/the_role/modules/user_model.rb
|
134
|
+
- lib/the_role/param_helper.rb
|
93
135
|
- lib/the_role/the_class_exists.rb
|
94
136
|
- lib/the_role/version.rb
|
95
137
|
- pic.png
|
@@ -117,5 +159,5 @@ rubyforge_project: the_role
|
|
117
159
|
rubygems_version: 1.8.15
|
118
160
|
signing_key:
|
119
161
|
specification_version: 3
|
120
|
-
summary:
|
162
|
+
summary: Authorization lib for Rails 3 with Web Interface, aka CanCan killer
|
121
163
|
test_files: []
|
@@ -1,57 +0,0 @@
|
|
1
|
-
.the_role{
|
2
|
-
.the_form{
|
3
|
-
background:#EEE;
|
4
|
-
padding:5px;
|
5
|
-
margin:0 0 15px 0;
|
6
|
-
border:2px solid gray;
|
7
|
-
-moz-border-radius:5px;
|
8
|
-
}
|
9
|
-
.the_form label{
|
10
|
-
display:block;
|
11
|
-
}
|
12
|
-
.the_form .input{
|
13
|
-
border:1px solid #000;
|
14
|
-
padding:2px 0 2px 5px;
|
15
|
-
font-size:13pt;
|
16
|
-
color:DarkBlue;
|
17
|
-
}
|
18
|
-
.the_form .textarea{
|
19
|
-
font-size:13pt;
|
20
|
-
padding:2px;
|
21
|
-
}
|
22
|
-
.the_form .message_textarea{
|
23
|
-
font-size:13pt;
|
24
|
-
padding:2px;
|
25
|
-
border:1px solid black;
|
26
|
-
height: 200px;
|
27
|
-
}
|
28
|
-
.the_form .submit{
|
29
|
-
font-size:16pt;
|
30
|
-
}
|
31
|
-
.article_buttons{
|
32
|
-
margin:0 0 10px 0;
|
33
|
-
padding:0 0 5px 0;
|
34
|
-
border-bottom:1px dashed gray;
|
35
|
-
}
|
36
|
-
.article_buttons input{
|
37
|
-
margin-right:10px;
|
38
|
-
}
|
39
|
-
.submit_button{
|
40
|
-
margin-bottom:10px;
|
41
|
-
}
|
42
|
-
.moderation_buttons{
|
43
|
-
background:silver;
|
44
|
-
margin:3px 3px 10px 3px;
|
45
|
-
padding:5px;
|
46
|
-
border:2px solid blue;
|
47
|
-
}
|
48
|
-
.delete_button{
|
49
|
-
background: none repeat scroll 0 0 lightGrey;
|
50
|
-
border: 1px dashed gray;
|
51
|
-
padding: 5px 0;
|
52
|
-
text-align: right;
|
53
|
-
}
|
54
|
-
.delete_button input{
|
55
|
-
color:Crimson;
|
56
|
-
}
|
57
|
-
}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
.the_role{
|
2
|
-
h1,h2,h3,h4,h5,h6{
|
3
|
-
font-family: Verdana, Arial;
|
4
|
-
color:#333;
|
5
|
-
font-weight:normal;
|
6
|
-
line-height:100%;
|
7
|
-
margin-bottom:15px;
|
8
|
-
}
|
9
|
-
h1{font-size:3em;}
|
10
|
-
h2{font-size:2.8em;}
|
11
|
-
h3{font-size:2.6em;}
|
12
|
-
h4{font-size:2.4em;}
|
13
|
-
h5{font-size:2.2em;}
|
14
|
-
h6{font-size:2em;}
|
15
|
-
}
|