foreman_users 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.
Files changed (39) hide show
  1. data/LICENSE +619 -0
  2. data/README.md +38 -0
  3. data/Rakefile +47 -0
  4. data/app/controllers/foreman_users/hosts_controller.rb +11 -0
  5. data/app/controllers/foreman_users/users_controller.rb +94 -0
  6. data/app/helpers/concerns/foreman_users/hosts_helper_extensions.rb +13 -0
  7. data/app/helpers/users_helper.rb +4 -0
  8. data/app/models/concerns/foreman_users/host_extensions.rb +19 -0
  9. data/app/models/group.rb +6 -0
  10. data/app/models/user.rb +67 -0
  11. data/app/overrides/dashboard/index/sample_override.html.erb.deface +4 -0
  12. data/app/views/dashboard/_foreman_users_widget.html.erb +2 -0
  13. data/app/views/foreman_users/hosts/hosts/new_action.html.erb +1 -0
  14. data/app/views/foreman_users/hosts/new_action.html.erb +1 -0
  15. data/app/views/foreman_users/layouts/layouts/new_layout.html.erb +0 -0
  16. data/app/views/foreman_users/layouts/new_layout.html.erb +0 -0
  17. data/app/views/foreman_users/users/_form.html.erb +94 -0
  18. data/app/views/foreman_users/users/_list.html.erb +57 -0
  19. data/app/views/foreman_users/users/_sub.html.erb +19 -0
  20. data/app/views/foreman_users/users/edit.html.erb +1 -0
  21. data/app/views/foreman_users/users/index.html.erb +5 -0
  22. data/app/views/foreman_users/users/new.html.erb +1 -0
  23. data/app/views/foreman_users/users/show.html.erb +77 -0
  24. data/config/routes.rb +9 -0
  25. data/db/migrate/20150918022411_create_syusers.rb +17 -0
  26. data/db/migrate/20150918050239_create_sygroups.rb +12 -0
  27. data/db/migrate/20150918055455_add_syuser_id_to_sygroup.rb +5 -0
  28. data/lib/foreman_users/engine.rb +99 -0
  29. data/lib/foreman_users/version.rb +3 -0
  30. data/lib/foreman_users.rb +4 -0
  31. data/lib/tasks/foreman_users_tasks.rake +49 -0
  32. data/locale/Makefile +62 -0
  33. data/locale/en/foreman_users.po +19 -0
  34. data/locale/foreman_users.pot +19 -0
  35. data/locale/gemspec.rb +2 -0
  36. data/test/factories/foreman_users_factories.rb +5 -0
  37. data/test/test_plugin_helper.rb +6 -0
  38. data/test/unit/foreman_users_test.rb +11 -0
  39. metadata +134 -0
@@ -0,0 +1,99 @@
1
+ require 'deface'
2
+
3
+ module ForemanUsers
4
+ class Engine < ::Rails::Engine
5
+ engine_name 'foreman_users'
6
+
7
+ config.autoload_paths += Dir["#{config.root}/app/controllers/concerns"]
8
+ config.autoload_paths += Dir["#{config.root}/app/helpers/concerns"]
9
+ config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
10
+ config.autoload_paths += Dir["#{config.root}/app/overrides"]
11
+
12
+ # Add any db migrations
13
+ initializer 'foreman_users.load_app_instance_data' do |app|
14
+ app.config.paths['db/migrate'] += ForemanUsers::Engine.paths['db/migrate'].existent
15
+ end
16
+
17
+ initializer 'foreman_users.register_plugin', after: :finisher_hook do |_app|
18
+ Foreman::Plugin.register :foreman_users do
19
+ requires_foreman '>= 1.4'
20
+
21
+ # Add permissions
22
+ security_block :foreman_users do
23
+ permission :view_foreman_users, :'foreman_users/users' => [:index]
24
+ permission :view_foreman_users, :'foreman_users/users' => [:show]
25
+ permission :view_foreman_users, :'foreman_users/users' => [:new]
26
+ permission :view_foreman_users, :'foreman_users/users' => [:edit]
27
+ permission :view_foreman_users, :'foreman_users/users' => [:create]
28
+ permission :view_foreman_users, :'foreman_users/users' => [:update]
29
+ permission :view_foreman_users, :'foreman_users/users' => [:destroy]
30
+ end
31
+
32
+ # Add a new role called 'Discovery' if it doesn't exist
33
+ role 'ForemanUsers', [:view_foreman_users]
34
+
35
+
36
+ sub_menu :top_menu, :forema_user_menu, :caption=> N_('UserManage'), :after=> :infrastructure_menu do
37
+ menu :top_menu, :level1, :caption=>N_('User List'), :url_hash => { :controller => 'foreman_users/users', :action => :index }
38
+ menu :top_menu, :level1, :caption=>N_('New User'), :url_hash => { :controller => 'foreman_users/users', :action => :new }
39
+ # menu :top_menu, :level2, :url_hash => {:controller=> :example, :action=>:index}
40
+ # menu :top_menu, :level3, :url_hash => {:controller=> :example, :action=>:index}
41
+ # sub_menu :top_menu, :inner_level, :caption=> N_('Inner level') do
42
+ # menu :top_menu, :level41, :url_hash => {:controller=> :example, :action=>:index}
43
+ # menu :top_menu, :level42, :url_hash => {:controller=> :example, :action=>:index}
44
+ # end
45
+ # menu :top_menu, :level5, :url_hash => {:controller=> :example, :action=>:index}
46
+ end
47
+
48
+
49
+ # add menu entry
50
+ menu :top_menu, :template,
51
+ url_hash: { controller: :'foreman_users/hosts', action: :new_action },
52
+ caption: 'ForemanUsers',
53
+ parent: :hosts_menu,
54
+ after: :hosts
55
+
56
+ # add dashboard widget
57
+ widget 'foreman_users_widget', name: N_('Foreman plugin template widget'), sizex: 4, sizey: 1
58
+ end
59
+ end
60
+
61
+ # Precompile any JS or CSS files under app/assets/
62
+ # If requiring files from each other, list them explicitly here to avoid precompiling the same
63
+ # content twice.
64
+ assets_to_precompile =
65
+ Dir.chdir(root) do
66
+ Dir['app/assets/javascripts/**/*', 'app/assets/stylesheets/**/*'].map do |f|
67
+ f.split(File::SEPARATOR, 4).last
68
+ end
69
+ end
70
+ initializer 'foreman_users.assets.precompile' do |app|
71
+ app.config.assets.precompile += assets_to_precompile
72
+ end
73
+ initializer 'foreman_users.configure_assets', group: :assets do
74
+ SETTINGS[:foreman_users] = { assets: { precompile: assets_to_precompile } }
75
+ end
76
+
77
+ # Include concerns in this config.to_prepare block
78
+ config.to_prepare do
79
+ begin
80
+ Host::Managed.send(:include, ForemanUsers::HostExtensions)
81
+ HostsHelper.send(:include, ForemanUsers::HostsHelperExtensions)
82
+ rescue => e
83
+ Rails.logger.warn "ForemanUsers: skipping engine hook (#{e})"
84
+ end
85
+ end
86
+
87
+ rake_tasks do
88
+ Rake::Task['db:seed'].enhance do
89
+ ForemanUsers::Engine.load_seed
90
+ end
91
+ end
92
+
93
+ initializer 'foreman_users.register_gettext', after: :load_config_initializers do |_app|
94
+ locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
95
+ locale_domain = 'foreman_users'
96
+ Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,3 @@
1
+ module ForemanUsers
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,4 @@
1
+ require 'foreman_users/engine'
2
+
3
+ module ForemanUsers
4
+ end
@@ -0,0 +1,49 @@
1
+ # Tasks
2
+ namespace :foreman_users do
3
+ namespace :example do
4
+ desc 'Example Task'
5
+ task task: :environment do
6
+ # Task goes here
7
+ end
8
+ end
9
+ end
10
+
11
+ # Tests
12
+ namespace :test do
13
+ desc 'Test ForemanUsers'
14
+ Rake::TestTask.new(:foreman_users) do |t|
15
+ test_dir = File.join(File.dirname(__FILE__), '../..', 'test')
16
+ t.libs << ['test', test_dir]
17
+ t.pattern = "#{test_dir}/**/*_test.rb"
18
+ t.verbose = true
19
+ end
20
+ end
21
+
22
+ namespace :foreman_users do
23
+ task :rubocop do
24
+ begin
25
+ require 'rubocop/rake_task'
26
+ RuboCop::RakeTask.new(:rubocop_foreman_users) do |task|
27
+ task.patterns = ["#{ForemanUsers::Engine.root}/app/**/*.rb",
28
+ "#{ForemanUsers::Engine.root}/lib/**/*.rb",
29
+ "#{ForemanUsers::Engine.root}/test/**/*.rb"]
30
+ end
31
+ rescue
32
+ puts 'Rubocop not loaded.'
33
+ end
34
+
35
+ Rake::Task['rubocop_foreman_users'].invoke
36
+ end
37
+ end
38
+
39
+ Rake::Task[:test].enhance do
40
+ Rake::Task['test:foreman_users'].invoke
41
+ end
42
+
43
+ load 'tasks/jenkins.rake'
44
+ if Rake::Task.task_defined?(:'jenkins:unit')
45
+ Rake::Task['jenkins:unit'].enhance do
46
+ Rake::Task['test:foreman_users'].invoke
47
+ Rake::Task['foreman_users:rubocop'].invoke
48
+ end
49
+ end
data/locale/Makefile ADDED
@@ -0,0 +1,62 @@
1
+ #
2
+ # Makefile for PO merging and MO generation. More info in the README.
3
+ #
4
+ # make all-mo (default) - generate MO files
5
+ # make check - check translations using translate-tool
6
+ # make tx-update - download and merge translations from Transifex
7
+ # make clean - clean everything
8
+ #
9
+ DOMAIN = foreman_users
10
+ VERSION = $(shell ruby -e 'require "rubygems";spec = Gem::Specification::load(Dir.glob("../*.gemspec")[0]);puts spec.version')
11
+ POTFILE = $(DOMAIN).pot
12
+ MOFILE = $(DOMAIN).mo
13
+ POFILES = $(shell find . -name '*.po')
14
+ MOFILES = $(patsubst %.po,%.mo,$(POFILES))
15
+ POXFILES = $(patsubst %.po,%.pox,$(POFILES))
16
+
17
+ %.mo: %.po
18
+ mkdir -p $(shell dirname $@)/LC_MESSAGES
19
+ msgfmt -o $(shell dirname $@)/LC_MESSAGES/$(MOFILE) $<
20
+
21
+ # Generate MO files from PO files
22
+ all-mo: $(MOFILES)
23
+
24
+ # Check for malformed strings
25
+ %.pox: %.po
26
+ msgfmt -c $<
27
+ pofilter --nofuzzy -t variables -t blank -t urls -t emails -t long -t newlines \
28
+ -t endwhitespace -t endpunc -t puncspacing -t options -t printf -t validchars --gnome $< > $@
29
+ cat $@
30
+ ! grep -q msgid $@
31
+
32
+ check: $(POXFILES)
33
+ msgfmt -c ${POTFILE}
34
+
35
+ # Merge PO files
36
+ update-po:
37
+ for f in $(shell find ./ -name "*.po") ; do \
38
+ msgmerge -N --backup=none -U $$f ${POTFILE} ; \
39
+ done
40
+
41
+ # Unify duplicate translations
42
+ uniq-po:
43
+ for f in $(shell find ./ -name "*.po") ; do \
44
+ msguniq $$f -o $$f ; \
45
+ done
46
+
47
+ tx-pull:
48
+ tx pull -f
49
+ for f in $(POFILES) ; do \
50
+ sed -i 's/^\("Project-Id-Version: \).*$$/\1$(DOMAIN) $(VERSION)\\n"/' $$f; \
51
+ done
52
+ -git commit -a -m "i18n - pulling from tx"
53
+
54
+ reset-po:
55
+ # merging po files is unnecessary when using transifex.com
56
+ git checkout -- ../locale/*/*po
57
+
58
+ tx-update: tx-pull reset-po $(MOFILES)
59
+ # amend mo files
60
+ git add ../locale/*/LC_MESSAGES
61
+ git commit -a --amend -m "i18n - pulling from tx"
62
+ -echo Changes commited!
@@ -0,0 +1,19 @@
1
+ # foreman_users
2
+ #
3
+ # This file is distributed under the same license as foreman_users.
4
+ #
5
+ #, fuzzy
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: version 0.0.1\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2014-08-20 08:46+0100\n"
11
+ "PO-Revision-Date: 2014-08-20 08:54+0100\n"
12
+ "Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
13
+ "Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
+
@@ -0,0 +1,19 @@
1
+ # foreman_users
2
+ #
3
+ # This file is distributed under the same license as foreman_users.
4
+ #
5
+ #, fuzzy
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: version 0.0.1\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2014-08-20 08:46+0100\n"
11
+ "PO-Revision-Date: 2014-08-20 08:46+0100\n"
12
+ "Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
13
+ "Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
19
+
data/locale/gemspec.rb ADDED
@@ -0,0 +1,2 @@
1
+ # Matches foreman_users.gemspec
2
+ _('TODO: Description of ForemanUsers.')
@@ -0,0 +1,5 @@
1
+ FactoryGirl.define do
2
+ factory :host do
3
+ name 'foreman_users'
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ # This calls the main test_helper in Foreman-core
2
+ require 'test_helper'
3
+
4
+ # Add plugin to FactoryGirl's paths
5
+ FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
6
+ FactoryGirl.reload
@@ -0,0 +1,11 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class ForemanUsersTest < ActiveSupport::TestCase
4
+ setup do
5
+ User.current = User.find_by_login 'admin'
6
+ end
7
+
8
+ test 'the truth' do
9
+ assert true
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foreman_users
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - jijianbo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-09-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: deface
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
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: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rubocop
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rdoc
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: 创建用户,/etc/puppet/environments/production/modules/users
63
+ email:
64
+ - jijianbo@shinyinfo.com.cn
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - app/models/group.rb
70
+ - app/models/concerns/foreman_users/host_extensions.rb
71
+ - app/models/user.rb
72
+ - app/overrides/dashboard/index/sample_override.html.erb.deface
73
+ - app/helpers/users_helper.rb
74
+ - app/helpers/concerns/foreman_users/hosts_helper_extensions.rb
75
+ - app/views/dashboard/_foreman_users_widget.html.erb
76
+ - app/views/foreman_users/users/new.html.erb
77
+ - app/views/foreman_users/users/show.html.erb
78
+ - app/views/foreman_users/users/_sub.html.erb
79
+ - app/views/foreman_users/users/index.html.erb
80
+ - app/views/foreman_users/users/_form.html.erb
81
+ - app/views/foreman_users/users/edit.html.erb
82
+ - app/views/foreman_users/users/_list.html.erb
83
+ - app/views/foreman_users/layouts/layouts/new_layout.html.erb
84
+ - app/views/foreman_users/layouts/new_layout.html.erb
85
+ - app/views/foreman_users/hosts/new_action.html.erb
86
+ - app/views/foreman_users/hosts/hosts/new_action.html.erb
87
+ - app/controllers/foreman_users/hosts_controller.rb
88
+ - app/controllers/foreman_users/users_controller.rb
89
+ - config/routes.rb
90
+ - db/migrate/20150918050239_create_sygroups.rb
91
+ - db/migrate/20150918055455_add_syuser_id_to_sygroup.rb
92
+ - db/migrate/20150918022411_create_syusers.rb
93
+ - lib/foreman_users.rb
94
+ - lib/foreman_users/engine.rb
95
+ - lib/foreman_users/version.rb
96
+ - lib/tasks/foreman_users_tasks.rake
97
+ - locale/gemspec.rb
98
+ - locale/en/foreman_users.po
99
+ - locale/foreman_users.pot
100
+ - locale/Makefile
101
+ - LICENSE
102
+ - Rakefile
103
+ - README.md
104
+ - test/factories/foreman_users_factories.rb
105
+ - test/unit/foreman_users_test.rb
106
+ - test/test_plugin_helper.rb
107
+ homepage: https://github.com/stdtnt/foreman-users
108
+ licenses: []
109
+ post_install_message:
110
+ rdoc_options: []
111
+ require_paths:
112
+ - lib
113
+ required_ruby_version: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubyforge_project:
127
+ rubygems_version: 1.8.23
128
+ signing_key:
129
+ specification_version: 3
130
+ summary: 创建用户,/etc/puppet/environments/production/modules/users
131
+ test_files:
132
+ - test/factories/foreman_users_factories.rb
133
+ - test/unit/foreman_users_test.rb
134
+ - test/test_plugin_helper.rb