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.
- data/LICENSE +619 -0
- data/README.md +38 -0
- data/Rakefile +47 -0
- data/app/controllers/foreman_users/hosts_controller.rb +11 -0
- data/app/controllers/foreman_users/users_controller.rb +94 -0
- data/app/helpers/concerns/foreman_users/hosts_helper_extensions.rb +13 -0
- data/app/helpers/users_helper.rb +4 -0
- data/app/models/concerns/foreman_users/host_extensions.rb +19 -0
- data/app/models/group.rb +6 -0
- data/app/models/user.rb +67 -0
- data/app/overrides/dashboard/index/sample_override.html.erb.deface +4 -0
- data/app/views/dashboard/_foreman_users_widget.html.erb +2 -0
- data/app/views/foreman_users/hosts/hosts/new_action.html.erb +1 -0
- data/app/views/foreman_users/hosts/new_action.html.erb +1 -0
- data/app/views/foreman_users/layouts/layouts/new_layout.html.erb +0 -0
- data/app/views/foreman_users/layouts/new_layout.html.erb +0 -0
- data/app/views/foreman_users/users/_form.html.erb +94 -0
- data/app/views/foreman_users/users/_list.html.erb +57 -0
- data/app/views/foreman_users/users/_sub.html.erb +19 -0
- data/app/views/foreman_users/users/edit.html.erb +1 -0
- data/app/views/foreman_users/users/index.html.erb +5 -0
- data/app/views/foreman_users/users/new.html.erb +1 -0
- data/app/views/foreman_users/users/show.html.erb +77 -0
- data/config/routes.rb +9 -0
- data/db/migrate/20150918022411_create_syusers.rb +17 -0
- data/db/migrate/20150918050239_create_sygroups.rb +12 -0
- data/db/migrate/20150918055455_add_syuser_id_to_sygroup.rb +5 -0
- data/lib/foreman_users/engine.rb +99 -0
- data/lib/foreman_users/version.rb +3 -0
- data/lib/foreman_users.rb +4 -0
- data/lib/tasks/foreman_users_tasks.rake +49 -0
- data/locale/Makefile +62 -0
- data/locale/en/foreman_users.po +19 -0
- data/locale/foreman_users.pot +19 -0
- data/locale/gemspec.rb +2 -0
- data/test/factories/foreman_users_factories.rb +5 -0
- data/test/test_plugin_helper.rb +6 -0
- data/test/unit/foreman_users_test.rb +11 -0
- 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,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
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
|