permission 0.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c5eaa20d648c11930db5a82a78018dbb4a1045d1
4
+ data.tar.gz: 895f0cda768111e38677cb7ab489aed0ebd649c4
5
+ SHA512:
6
+ metadata.gz: 350456c935af55054c796f4bdae82c0a8a4ada263c82ec32b920b2410ab39a08e64bf322700f9be63ba3866e7bfdf2928665202cd1a35c5d1e94a342b5e16d96
7
+ data.tar.gz: 43af9f41a3ee770a1976e42195cee9c4f2f47cade7615fd53aaa7df1d3c9c58f39c6307d12a426e80b1f12bd468a739e68e020e5559b82091047a62123413a9c
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in permission.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 sunil
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # Permission
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'permission'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install permission
20
+
21
+ ## Usage
22
+
23
+ TODO: Write usage instructions here
24
+
25
+ ## Contributing
26
+
27
+ 1. Fork it ( https://github.com/[my-github-username]/permission/fork )
28
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
29
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
30
+ 4. Push to the branch (`git push origin my-new-feature`)
31
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,24 @@
1
+ require 'rails/generators/base'
2
+ # require 'securerandom'
3
+ module Permission
4
+ # module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+
7
+ def copy_initializer
8
+ template "permission_config.rb", "config/initializers/permission.rb"
9
+ end
10
+ # def create_initializer_file
11
+ # create_file Rails.root.join("config", "initializers", "permission.rb"), "This is a test"
12
+ # end
13
+
14
+ # def create_migrations
15
+ # Dir["#{self.class.source_root}/migrations/*.rb"].sort.each do |filepath|
16
+ # name = File.basename(filepath)
17
+ # template "migrations/#{name}", "db/migrate/#{name}"
18
+ # sleep 1
19
+ # end
20
+ # end
21
+
22
+ end
23
+ # end
24
+ end
@@ -0,0 +1,39 @@
1
+ # module Permission
2
+ # module Generators
3
+ # module OrmHelpers
4
+ # def model_contents
5
+ # buffer = <<-CONTENT
6
+ # # Add belongs_to :user here for the permission for.
7
+ # belongs_to :user
8
+ # CONTENT
9
+ # buffer += <<-CONTENT
10
+ # # Setup accessible (or protected) attributes for your model
11
+ # CONTENT
12
+ # buffer
13
+ # end
14
+ # # def needs_attr_accessible?
15
+ # # rails_3? && !strong_parameters_enabled?
16
+ # # end
17
+ # # def rails_3?
18
+ # # Rails::VERSION::MAJOR == 3
19
+ # # end
20
+ # # def strong_parameters_enabled?
21
+ # # defined?(ActionController::StrongParameters)
22
+ # # end
23
+
24
+ # private
25
+ # def model_exists?
26
+ # File.exists?(File.join(destination_root, model_path))
27
+ # end
28
+ # def migration_exists?(table_name)
29
+ # Dir.glob("#{File.join(destination_root, migration_path)}/[0-9]*_*.rb").grep(/\d+_#{table_name}.rb$/).first
30
+ # end
31
+ # def migration_path
32
+ # @migration_path ||= File.join("db", "migrate")
33
+ # end
34
+ # def model_path
35
+ # @model_path ||= File.join("app", "models", "#{file_path}.rb")
36
+ # end
37
+ # end
38
+ # end
39
+ # end
@@ -0,0 +1,14 @@
1
+ # require 'rails/generators/named_base'
2
+ # module permission
3
+ # module Generators
4
+ # class PermissionGenerator < Rails::Generators::NamedBase
5
+ # include Rails::Generators::ResourceHelpers
6
+ # namespace "permission"
7
+ # source_root File.expand_path("../templates", __FILE__)
8
+ # desc "Generates a model with the given NAME (if one does not exist) with permission " <<
9
+ # "configuration plus a migration file."
10
+ # hook_for :orm
11
+ # class_option :routes, desc: "Generate routes", type: :boolean, default: true
12
+ # end
13
+ # end
14
+ # end
@@ -0,0 +1,3 @@
1
+ module Permission
2
+ VERSION = "0.0.1"
3
+ end
data/lib/permission.rb ADDED
@@ -0,0 +1,34 @@
1
+ require "permission/version"
2
+
3
+ module Permission
4
+ def has_permission
5
+ resource = params[:controller].singularize.camelize
6
+ action = params[:action]
7
+ begin
8
+ permission = current_user.permissions
9
+ rescue
10
+ return raise "current_user is nil"
11
+ else
12
+ return result permission, resource
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ def result permission, resource
19
+ permission = current_user.permissions.where(resource_name: resource).last
20
+ return false if permission.nil?
21
+ case action.to_sym
22
+ when :index
23
+ return permission.read_only
24
+ when :create
25
+ return permission.create_only
26
+ when :update
27
+ return permission.update_only
28
+ when :destroy, :delete
29
+ return permission.destroy_only
30
+ else
31
+ return false
32
+ end
33
+ end
34
+ end
@@ -0,0 +1 @@
1
+ # ::Permission_for = [Page, Category]
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'permission/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "permission"
8
+ spec.version = Permission::VERSION
9
+ spec.authors = ["sunil"]
10
+ spec.email = ["sunil.kumar.14@netsolutionsindia.com"]
11
+ spec.summary = %q{This gem provide the action based permission for the Model.}
12
+ spec.description = %q{Write a longer description. Optional.}
13
+ spec.homepage = "https://github.com/snlkumar/permission"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split("\n")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.7"
22
+ spec.add_development_dependency "rake", "~> 10.0"
23
+ end
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: permission
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - sunil
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: Write a longer description. Optional.
42
+ email:
43
+ - sunil.kumar.14@netsolutionsindia.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".gitignore"
49
+ - Gemfile
50
+ - LICENSE.txt
51
+ - README.md
52
+ - Rakefile
53
+ - lib/generators/permission/install_generator.rb
54
+ - lib/generators/permission/orm_helper.rb
55
+ - lib/generators/permission/permission_generator.rb
56
+ - lib/permission.rb
57
+ - lib/permission/version.rb
58
+ - lib/permission_config.rb
59
+ - permission.gemspec
60
+ homepage: https://github.com/snlkumar/permission
61
+ licenses:
62
+ - MIT
63
+ metadata: {}
64
+ post_install_message:
65
+ rdoc_options: []
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ requirements: []
79
+ rubyforge_project:
80
+ rubygems_version: 2.4.8
81
+ signing_key:
82
+ specification_version: 4
83
+ summary: This gem provide the action based permission for the Model.
84
+ test_files: []