cantango-permits 0.1.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.
- data/.rspec +1 -0
- data/Gemfile +39 -0
- data/Gemfile.lock +155 -0
- data/MIT-LICENSE +20 -0
- data/README.mdown +362 -0
- data/Rakefile +45 -0
- data/VERSION +1 -0
- data/lib/cantango/executor.rb +5 -0
- data/lib/cantango/executor/base.rb +9 -0
- data/lib/cantango/executor/permit.rb +7 -0
- data/lib/cantango/executor/permit/abstract.rb +27 -0
- data/lib/cantango/executor/permit/base.rb +19 -0
- data/lib/cantango/executor/permit/special.rb +9 -0
- data/lib/cantango/executor/permit_type.rb +50 -0
- data/lib/cantango/license.rb +19 -0
- data/lib/cantango/license/rules.rb +17 -0
- data/lib/cantango/permit.mdown +4 -0
- data/lib/cantango/permit.rb +5 -0
- data/lib/cantango/permit/account_type.rb +44 -0
- data/lib/cantango/permit/attribute.rb +71 -0
- data/lib/cantango/permit/base.rb +94 -0
- data/lib/cantango/permit/class_methods.rb +49 -0
- data/lib/cantango/permit/helper.rb +11 -0
- data/lib/cantango/permit/helper/execution.rb +38 -0
- data/lib/cantango/permit/helper/host.rb +13 -0
- data/lib/cantango/permit/helper/license.rb +34 -0
- data/lib/cantango/permit/helper/naming.rb +38 -0
- data/lib/cantango/permit/helper/state.rb +21 -0
- data/lib/cantango/permit/special.rb +17 -0
- data/lib/cantango/permit/user.rb +36 -0
- data/lib/cantango/permit/user_type.rb +34 -0
- data/lib/cantango/permits.rb +20 -0
- data/lib/cantango/permits_ext.rb +7 -0
- data/lib/cantango/permits_ext/ability.rb +7 -0
- data/lib/cantango/permits_ext/ability/helper.rb +9 -0
- data/lib/cantango/permits_ext/ability/helper/permits.rb +8 -0
- data/lib/cantango/permits_ext/builder.rb +7 -0
- data/lib/cantango/permits_ext/builder/permit.rb +9 -0
- data/lib/cantango/permits_ext/builder/permit/account_type.rb +13 -0
- data/lib/cantango/permits_ext/builder/permit/base.rb +94 -0
- data/lib/cantango/permits_ext/builder/permit/special.rb +13 -0
- data/lib/cantango/permits_ext/builder/permit/user_type.rb +7 -0
- data/lib/cantango/permits_ext/class_methods.rb +28 -0
- data/lib/cantango/permits_ext/config.rb +11 -0
- data/lib/cantango/permits_ext/config/engines.rb +9 -0
- data/lib/cantango/permits_ext/config/engines/permit.rb +20 -0
- data/lib/cantango/permits_ext/config/permits.rb +43 -0
- data/lib/cantango/permits_ext/config/permits/accounts.rb +15 -0
- data/lib/cantango/permits_ext/config/permits/disabling.rb +22 -0
- data/lib/cantango/permits_ext/config/permits/enabling.rb +14 -0
- data/lib/cantango/permits_ext/config/permits/execution.rb +21 -0
- data/lib/cantango/permits_ext/config/permits/key.rb +19 -0
- data/lib/cantango/permits_ext/config/permits/registration.rb +33 -0
- data/lib/cantango/permits_ext/config/permits/tracking.rb +19 -0
- data/lib/cantango/permits_ext/config/permits/types.rb +25 -0
- data/lib/cantango/permits_ext/engine.rb +7 -0
- data/lib/cantango/permits_ext/engine/permits.rb +75 -0
- data/lib/cantango/permits_ext/factory.rb +7 -0
- data/lib/cantango/permits_ext/factory/permits.rb +40 -0
- data/lib/cantango/permits_ext/finder.rb +7 -0
- data/lib/cantango/permits_ext/finder/base.rb +35 -0
- data/lib/cantango/permits_ext/finder/permit.rb +7 -0
- data/lib/cantango/permits_ext/finder/permit/account.rb +47 -0
- data/lib/cantango/permits_ext/finder/permit/base.rb +53 -0
- data/lib/cantango/permits_ext/loader.rb +7 -0
- data/lib/cantango/permits_ext/loader/categories.rb +50 -0
- data/lib/cantango/permits_ext/loader/license.rb +19 -0
- data/lib/cantango/permits_ext/macros.rb +7 -0
- data/lib/cantango/permits_ext/macros/permit.rb +32 -0
- data/lib/cantango/permits_ext/parser.rb +7 -0
- data/lib/cantango/permits_ext/parser/categories.rb +15 -0
- data/lib/cantango/permits_ext/registry.rb +7 -0
- data/lib/cantango/permits_ext/registry/permit.rb +45 -0
- data/lib/generators/cantango/account_permit/account_permit_generator.rb +37 -0
- data/lib/generators/cantango/account_permit/templates/account_permit.erb +23 -0
- data/lib/generators/cantango/base.rb +71 -0
- data/lib/generators/cantango/basic.rb +41 -0
- data/lib/generators/cantango/license/license_generator.rb +29 -0
- data/lib/generators/cantango/license/templates/license.erb +10 -0
- data/lib/generators/cantango/license_base.rb +15 -0
- data/lib/generators/cantango/licenses/licenses_generator.rb +26 -0
- data/lib/generators/cantango/permit_generator.rb +58 -0
- data/lib/generators/cantango/role_permit/role_permit_generator.rb +39 -0
- data/lib/generators/cantango/role_permit/templates/account_permit.erb +4 -0
- data/lib/generators/cantango/role_permit/templates/role_group_permit.erb +24 -0
- data/lib/generators/cantango/role_permit/templates/role_permit.erb +23 -0
- data/lib/generators/cantango/role_permits/role_permits_generator.rb +45 -0
- data/lib/generators/cantango/user_permit/templates/account_permit.erb +5 -0
- data/lib/generators/cantango/user_permit/templates/user_permit.erb +23 -0
- data/lib/generators/cantango/user_permit/user_permit_generator.rb +36 -0
- data/lib/tasks/permits_tasks.rake +4 -0
- data/spec/cantango/ability/helper/permits_spec.rb +14 -0
- data/spec/cantango/builder/permit/account_type_spec.rb +25 -0
- data/spec/cantango/builder/permit/base_spec.rb +30 -0
- data/spec/cantango/builder/permit/special_spec.rb +25 -0
- data/spec/cantango/builder/permit/user_type_spec.rb +27 -0
- data/spec/cantango/config/engines/permit_spec.rb +14 -0
- data/spec/cantango/config/engines_spec.rb +142 -0
- data/spec/cantango/config/permit_registry_ex.rb +9 -0
- data/spec/cantango/config/permit_registry_spec.rb +8 -0
- data/spec/cantango/config/permits/accounts_spec.rb +23 -0
- data/spec/cantango/config/permits/disabling_spec.rb +38 -0
- data/spec/cantango/config/permits/enabling_spec.rb +19 -0
- data/spec/cantango/config/permits/execution_spec.rb +27 -0
- data/spec/cantango/config/permits/registration_spec.rb +15 -0
- data/spec/cantango/config/permits/tracking_spec.rb +19 -0
- data/spec/cantango/config/permits/types_spec.rb +27 -0
- data/spec/cantango/config/permits_spec.rb +76 -0
- data/spec/cantango/engine/permit_cached_spec.rb +52 -0
- data/spec/cantango/engine/permit_spec.rb +58 -0
- data/spec/cantango/engine/permit_static_dynamic_spec.rb +65 -0
- data/spec/cantango/executor/custom_permit_spec.rb +65 -0
- data/spec/cantango/executor/more_permit_spec.rb +45 -0
- data/spec/cantango/executor/permit_base_spec.rb +46 -0
- data/spec/cantango/executor/permit_spec.rb +53 -0
- data/spec/cantango/executor/special_permit_spec.rb +36 -0
- data/spec/cantango/factory/permits_spec.rb +70 -0
- data/spec/cantango/finder/account_permit_spec.rb +30 -0
- data/spec/cantango/finder/permit_spec.rb +23 -0
- data/spec/cantango/license/save_license_spec.rb +24 -0
- data/spec/cantango/license_spec.rb +0 -0
- data/spec/cantango/loader/categories_spec.rb +47 -0
- data/spec/cantango/loader/license_spec.rb +7 -0
- data/spec/cantango/macros/permit_spec.rb +38 -0
- data/spec/cantango/parser/categories_spec.rb +19 -0
- data/spec/cantango/permit/account_type_spec.rb +34 -0
- data/spec/cantango/permit/attribute_permit_spec.rb +65 -0
- data/spec/cantango/permit/base_spec.rb +106 -0
- data/spec/cantango/permit/class_methods_spec.rb +34 -0
- data/spec/cantango/permit/helper/execution_spec.rb +54 -0
- data/spec/cantango/permit/helper/host_spec.rb +29 -0
- data/spec/cantango/permit/helper/license_spec.rb +37 -0
- data/spec/cantango/permit/helper/naming_spec.rb +56 -0
- data/spec/cantango/permit/helper/state_spec.rb +24 -0
- data/spec/cantango/permit/special_default_spec.rb +2 -0
- data/spec/cantango/permit/special_first_spec.rb +2 -0
- data/spec/cantango/permit/user_type_spec.rb +78 -0
- data/spec/cantango/registry/permit_spec.rb +67 -0
- data/spec/fixtures/config/cantango_permissions.yml +49 -0
- data/spec/fixtures/config/categories.yml +6 -0
- data/spec/fixtures/config/evaluator_fixtures.yml +18 -0
- data/spec/fixtures/config/licenses.yml +4 -0
- data/spec/fixtures/config/permissions.yml +60 -0
- data/spec/fixtures/config/role_group.yml +4 -0
- data/spec/fixtures/config/roles.yml +4 -0
- data/spec/fixtures/config/test_permissions.yml +55 -0
- data/spec/fixtures/config/user_permissions.yml +8 -0
- data/spec/fixtures/models.rb +15 -0
- data/spec/fixtures/models/admin.rb +2 -0
- data/spec/fixtures/models/admin_account.rb +22 -0
- data/spec/fixtures/models/items.rb +11 -0
- data/spec/fixtures/models/permission.rb +12 -0
- data/spec/fixtures/models/simple_roles.rb +49 -0
- data/spec/fixtures/models/user.rb +52 -0
- data/spec/fixtures/models/user_account.rb +21 -0
- data/spec/fixtures/tango_fixtures.rb +29 -0
- data/spec/generators/cantango/account_role_permit_generator_spec.rb +35 -0
- data/spec/generators/cantango/account_role_permits_generator_spec.rb +59 -0
- data/spec/generators/cantango/license_generator_spec.rb +33 -0
- data/spec/generators/cantango/licenses_generator_spec.rb +58 -0
- data/spec/generators/cantango/role_permit_generator_spec.rb +35 -0
- data/spec/generators/cantango/role_permits_generator_spec.rb +58 -0
- data/spec/helpers/current_user_accounts.rb +20 -0
- data/spec/helpers/current_users.rb +10 -0
- data/spec/spec_helper.rb +24 -0
- metadata +325 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
roles:
|
|
3
|
+
admin:
|
|
4
|
+
can:
|
|
5
|
+
manage:
|
|
6
|
+
- all
|
|
7
|
+
user:
|
|
8
|
+
can:
|
|
9
|
+
read:
|
|
10
|
+
- ^articles
|
|
11
|
+
- Post
|
|
12
|
+
write:
|
|
13
|
+
- Comment
|
|
14
|
+
cannot:
|
|
15
|
+
write:
|
|
16
|
+
- Article
|
|
17
|
+
role_groups:
|
|
18
|
+
bloggers:
|
|
19
|
+
can:
|
|
20
|
+
read:
|
|
21
|
+
- Article
|
|
22
|
+
- Comment
|
|
23
|
+
cannot:
|
|
24
|
+
write:
|
|
25
|
+
- Article
|
|
26
|
+
- Post
|
|
27
|
+
editors:
|
|
28
|
+
can:
|
|
29
|
+
read:
|
|
30
|
+
- Article
|
|
31
|
+
- Comment
|
|
32
|
+
cannot:
|
|
33
|
+
write:
|
|
34
|
+
- Article
|
|
35
|
+
- Post
|
|
36
|
+
licenses:
|
|
37
|
+
editors:
|
|
38
|
+
can:
|
|
39
|
+
manage:
|
|
40
|
+
- all
|
|
41
|
+
users:
|
|
42
|
+
kris@gmail.com:
|
|
43
|
+
can:
|
|
44
|
+
read:
|
|
45
|
+
- Article
|
|
46
|
+
user_types:
|
|
47
|
+
admin:
|
|
48
|
+
can:
|
|
49
|
+
manage:
|
|
50
|
+
- all
|
|
51
|
+
account_types:
|
|
52
|
+
editor:
|
|
53
|
+
can:
|
|
54
|
+
manage:
|
|
55
|
+
- all
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
class AdminAccount
|
|
2
|
+
attr_accessor :user, :roles, :role_groups
|
|
3
|
+
|
|
4
|
+
def initialize user, options = {}
|
|
5
|
+
@user = user
|
|
6
|
+
@roles = options[:roles]
|
|
7
|
+
@role_groups = options[:role_groups]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def has_role? name
|
|
11
|
+
true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def roles_list
|
|
15
|
+
roles
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def role_groups_list
|
|
19
|
+
role_groups
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
module SimpleRoles
|
|
2
|
+
def self.included(base)
|
|
3
|
+
base.send :include, InstanceMethods
|
|
4
|
+
base.extend ClassMethods
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
module ClassMethods
|
|
8
|
+
def is_role_in_group?(role, group)
|
|
9
|
+
raise "No group #{group} defined in User model" if !role_groups.has_key?(group)
|
|
10
|
+
role_groups[group].include?(role)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def role_groups
|
|
14
|
+
{:bloggers => [:editor]}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def roles
|
|
18
|
+
[:guest, :user, :admin, :editor]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
module InstanceMethods
|
|
23
|
+
|
|
24
|
+
attr_accessor :role_groups_list
|
|
25
|
+
|
|
26
|
+
def has_role? role
|
|
27
|
+
roles_list.include? role
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def has_any_role? roles
|
|
31
|
+
roles.include?(role.to_sym)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def roles_list
|
|
35
|
+
role.to_s.scan(/\w+/).map{|r| r.to_sym}
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def is_in_group? group
|
|
39
|
+
role_groups_list.include? group
|
|
40
|
+
end
|
|
41
|
+
alias_method :in_role_group?, :is_in_group?
|
|
42
|
+
|
|
43
|
+
def role_groups_list
|
|
44
|
+
return role_groups.scan(/\w+/).map(&:to_sym) if respond_to?(:role_groups) && !role_groups.nil?
|
|
45
|
+
@role_groups_list || [] #[:bloggers]
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
require 'fixtures/models/simple_roles'
|
|
2
|
+
|
|
3
|
+
class User
|
|
4
|
+
attr_accessor :name, :account, :email, :roles, :role_groups
|
|
5
|
+
|
|
6
|
+
# tango_user # see macros
|
|
7
|
+
|
|
8
|
+
include ::SimpleRoles
|
|
9
|
+
|
|
10
|
+
def initialize name, email = nil, options = {}
|
|
11
|
+
@name = name
|
|
12
|
+
@email = email
|
|
13
|
+
set_option_vars options
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def set_option_vars options = {}
|
|
17
|
+
options.each_pair do |name, value|
|
|
18
|
+
var = :"@#{name}"
|
|
19
|
+
self.instance_variable_set(var, value)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def email
|
|
24
|
+
@email ||= 'default@gmail.com'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def role
|
|
28
|
+
@role || ''
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# This hash should be recalculated anytime the permissions collection changes
|
|
32
|
+
#
|
|
33
|
+
|
|
34
|
+
# after_update :recalculate_permissions_hash
|
|
35
|
+
|
|
36
|
+
def permissions_hash
|
|
37
|
+
@permissions_hash = permissions.hash
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def permissions
|
|
41
|
+
@permissions ||= []
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# allows implementation specific to ORM, fx using #all on some datastores such as Mongoid etc.
|
|
45
|
+
alias_method :all_permissions, :permissions
|
|
46
|
+
|
|
47
|
+
protected
|
|
48
|
+
|
|
49
|
+
def recalculate_permissions_hash
|
|
50
|
+
@permissions_hash = nil if self.permissions_changed?
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class UserAccount
|
|
2
|
+
attr_accessor :user, :roles, :role_groups
|
|
3
|
+
|
|
4
|
+
def initialize user, options = {}
|
|
5
|
+
@user = user
|
|
6
|
+
@roles = options[:roles]
|
|
7
|
+
@role_groups = options[:role_groups]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def has_role? name
|
|
11
|
+
true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def roles_list
|
|
15
|
+
roles
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def role_groups_list
|
|
19
|
+
role_groups
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module CanTangoFixtures
|
|
2
|
+
def tango_permissions
|
|
3
|
+
{"roles"=>{
|
|
4
|
+
"admin"=>{
|
|
5
|
+
"can"=>{
|
|
6
|
+
"manage"=>["all"]
|
|
7
|
+
}},
|
|
8
|
+
"user"=>{
|
|
9
|
+
"can"=>{
|
|
10
|
+
"read"=>["^articles", "Post"],
|
|
11
|
+
"write"=>["Comment"]
|
|
12
|
+
},
|
|
13
|
+
"cannot"=>{
|
|
14
|
+
"write"=>["Post"],
|
|
15
|
+
"write"=>["Article"]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"role_groups"=>{"bloggers"=>{"can"=>{"read"=>["Article", "Comment"]},
|
|
20
|
+
"cannot"=>{"write"=>["Article", "Post"]}},
|
|
21
|
+
"editors"=>{"can"=>{"read"=>["Article", "Comment"]},
|
|
22
|
+
"cannot"=>{"write"=>["Article", "Post"]}}},
|
|
23
|
+
"licenses"=>{"editors"=>{"can"=>{"manage"=>["all"]}}},
|
|
24
|
+
"users" => {"kris@gmail.com" => {"can" => {"read" =>["Article"] }}}
|
|
25
|
+
|
|
26
|
+
}
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'generator-spec'
|
|
3
|
+
|
|
4
|
+
require_generator :cantango => :role_permit
|
|
5
|
+
|
|
6
|
+
RSpec::Generator.configure do |config|
|
|
7
|
+
config.debug = true
|
|
8
|
+
config.remove_temp_dir = true #false
|
|
9
|
+
config.default_rails_root(__FILE__)
|
|
10
|
+
config.lib = File.dirname(__FILE__) + '/../lib'
|
|
11
|
+
config.logger = :stdout # :file
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
describe Cantango::Generators::RolePermitGenerator do
|
|
16
|
+
use_helpers :special, :file
|
|
17
|
+
|
|
18
|
+
setup_generator :permit do
|
|
19
|
+
tests Cantango::Generators::RolePermitGenerator
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
describe 'Run Permit generator' do
|
|
23
|
+
before :each do
|
|
24
|
+
@generator = with_generator do |g|
|
|
25
|
+
g.run_generator "admin --account admin --reads all --licenses blogging user_admin".args
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'result of running Permit generator' do
|
|
30
|
+
it "should create Admin permit" do
|
|
31
|
+
@generator.should generate_permit :admin
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'generator-spec'
|
|
3
|
+
|
|
4
|
+
require_generator :cantango => :role_permits
|
|
5
|
+
|
|
6
|
+
RSpec::Generator.configure do |config|
|
|
7
|
+
config.debug = true
|
|
8
|
+
config.remove_temp_dir = true #false
|
|
9
|
+
config.default_rails_root(__FILE__)
|
|
10
|
+
config.lib = File.dirname(__FILE__) + '/../lib'
|
|
11
|
+
config.logger = :stdout # :file
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
describe Cantango::Generators::RolePermitsGenerator do
|
|
16
|
+
use_helpers :controller, :special, :file
|
|
17
|
+
|
|
18
|
+
setup_generator :permits do
|
|
19
|
+
tests Cantango::Generators::RolePermitsGenerator
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
describe 'result of running generator with default profile' do
|
|
23
|
+
before :each do
|
|
24
|
+
@generator = with_generator do |g|
|
|
25
|
+
g.run_generator "--orm mongoid --account editor".args
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'result of running Permits generator' do
|
|
30
|
+
it "should create Admin permit" do
|
|
31
|
+
@generator.should generate_permit :admin
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "should generate a permits initializer file with orm set to mongoid" do
|
|
35
|
+
File.read(initializer_file(:cantango)).should match /config.orm = :mongoid/
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe 'result of running generator with option to create permit for each registered role' do
|
|
41
|
+
context "Registered roles :editor, :admin" do
|
|
42
|
+
before :each do
|
|
43
|
+
@generator = with_generator do |g|
|
|
44
|
+
g.run_generator "admin editor".args
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it "should have created Guest and Admin permits" do
|
|
49
|
+
@generator.should have_permit_files :guest, :admin
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "should have created the Editor permit for the :editor role and the permit should not use licenses" do
|
|
53
|
+
@generator.should have_permit_file :editor do |editor_permit|
|
|
54
|
+
editor_permit.should_not have_licenses :user_admin, :blogging
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end #ctx
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'generator-spec'
|
|
3
|
+
|
|
4
|
+
require_generator :cantango => :license
|
|
5
|
+
|
|
6
|
+
RSpec::Generator.configure do |config|
|
|
7
|
+
config.debug = true
|
|
8
|
+
config.remove_temp_dir = true #false
|
|
9
|
+
config.default_rails_root(__FILE__)
|
|
10
|
+
config.lib = File.dirname(__FILE__) + '/../lib'
|
|
11
|
+
config.logger = :stdout # :file
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
describe Cantango::Generators::LicenseGenerator do
|
|
16
|
+
use_helpers :special, :file
|
|
17
|
+
|
|
18
|
+
setup_generator :license do
|
|
19
|
+
tests CanTango::Generators::LicenseGenerator
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
describe "License: Profile Administration" do
|
|
23
|
+
before :each do
|
|
24
|
+
@generator = with_generator do |g|
|
|
25
|
+
g.run_generator "profile_administration --reads all --licenses blogging".args
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should have created license files" do
|
|
30
|
+
@generator.should have_license_file :profile_administration
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'generator-spec'
|
|
3
|
+
|
|
4
|
+
require_generator :cantango => :licenses
|
|
5
|
+
|
|
6
|
+
RSpec::Generator.configure do |config|
|
|
7
|
+
config.debug = true
|
|
8
|
+
config.remove_temp_dir = true #false
|
|
9
|
+
config.default_rails_root(__FILE__)
|
|
10
|
+
config.lib = File.dirname(__FILE__) + '/../lib'
|
|
11
|
+
config.logger = :stdout # :file
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
describe Cantango::Generators::LicensesGenerator do
|
|
16
|
+
use_helpers :controller, :special, :file
|
|
17
|
+
|
|
18
|
+
setup_generator :licenses do
|
|
19
|
+
tests Cantango::Generators::LicensesGenerator
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
describe "Licenses: Profile Administration and Article Editing" do
|
|
23
|
+
before :each do
|
|
24
|
+
@generator = with_generator do |g|
|
|
25
|
+
g.run_generator "profile_administration article_editing".args
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should have created license files" do
|
|
30
|
+
@generator.should have_license_files :profile_administration, :article_editing
|
|
31
|
+
@generator.should_not have_license_files :blogging, :user_admin
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe "Licenses: Profile Administration and Article Editing" do
|
|
36
|
+
before :each do
|
|
37
|
+
@generator = with_generator do |g|
|
|
38
|
+
g.run_generator "profile_administration article_editing".args
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "should have created license files" do
|
|
43
|
+
@generator.should have_license_files :profile_administration, :article_editing, :blogging, :user_admin
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should have created license file :profile_administration with the right class" do
|
|
47
|
+
@generator.should have_license_file :profile_administration do |license|
|
|
48
|
+
license.should have_license_class :profile_administration
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "should have created license file :article_editing with the right class" do
|
|
53
|
+
@generator.should have_license_file :article_editing do |license|
|
|
54
|
+
license.should have_license_class :article_editing
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|