Merge branch 'master' of abf.rosalinux.ru:abf/rosa-build
This commit is contained in:
commit
320863e26d
2
Gemfile
2
Gemfile
|
@ -6,8 +6,6 @@ gem 'activeadmin', github: 'activeadmin'
|
||||||
gem 'pg'
|
gem 'pg'
|
||||||
gem 'schema_plus', '~> 1.5'
|
gem 'schema_plus', '~> 1.5'
|
||||||
########
|
########
|
||||||
gem 'protected_attributes'
|
|
||||||
########
|
|
||||||
gem 'devise'
|
gem 'devise'
|
||||||
gem 'omniauth'
|
gem 'omniauth'
|
||||||
gem 'omniauth-facebook'
|
gem 'omniauth-facebook'
|
||||||
|
|
33
Gemfile.lock
33
Gemfile.lock
|
@ -10,9 +10,9 @@ GIT
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
remote: git://github.com/activeadmin/activeadmin.git
|
remote: git://github.com/activeadmin/activeadmin.git
|
||||||
revision: e27ccba8a7ea1f7f3085748decec1f6911f6d5d2
|
revision: 9c46b14ea0d9b3aaaa3d7520555c9959d06ce7f3
|
||||||
specs:
|
specs:
|
||||||
activeadmin (1.0.0.pre)
|
activeadmin (1.0.0.pre1)
|
||||||
arbre (~> 1.0, >= 1.0.2)
|
arbre (~> 1.0, >= 1.0.2)
|
||||||
bourbon
|
bourbon
|
||||||
coffee-rails
|
coffee-rails
|
||||||
|
@ -104,7 +104,7 @@ GEM
|
||||||
bootstrap-sass (3.3.3)
|
bootstrap-sass (3.3.3)
|
||||||
autoprefixer-rails (>= 5.0.0.1)
|
autoprefixer-rails (>= 5.0.0.1)
|
||||||
sass (>= 3.2.19)
|
sass (>= 3.2.19)
|
||||||
bourbon (4.2.1)
|
bourbon (4.2.3)
|
||||||
sass (~> 3.4)
|
sass (~> 3.4)
|
||||||
thor
|
thor
|
||||||
builder (3.2.2)
|
builder (3.2.2)
|
||||||
|
@ -130,10 +130,10 @@ GEM
|
||||||
coffee-rails (4.1.0)
|
coffee-rails (4.1.0)
|
||||||
coffee-script (>= 2.2.0)
|
coffee-script (>= 2.2.0)
|
||||||
railties (>= 4.0.0, < 5.0)
|
railties (>= 4.0.0, < 5.0)
|
||||||
coffee-script (2.3.0)
|
coffee-script (2.4.1)
|
||||||
coffee-script-source
|
coffee-script-source
|
||||||
execjs
|
execjs
|
||||||
coffee-script-source (1.9.1)
|
coffee-script-source (1.9.1.1)
|
||||||
compass (1.0.3)
|
compass (1.0.3)
|
||||||
chunky_png (~> 1.2)
|
chunky_png (~> 1.2)
|
||||||
compass-core (~> 1.0.2)
|
compass-core (~> 1.0.2)
|
||||||
|
@ -170,7 +170,7 @@ GEM
|
||||||
erubis (2.7.0)
|
erubis (2.7.0)
|
||||||
escape_utils (1.0.1)
|
escape_utils (1.0.1)
|
||||||
eventmachine (1.0.5)
|
eventmachine (1.0.5)
|
||||||
execjs (2.3.0)
|
execjs (2.5.2)
|
||||||
expression_parser (0.9.0)
|
expression_parser (0.9.0)
|
||||||
factory_girl (4.5.0)
|
factory_girl (4.5.0)
|
||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
|
@ -184,7 +184,7 @@ GEM
|
||||||
railties (>= 3.2, < 5.0)
|
railties (>= 3.2, < 5.0)
|
||||||
formtastic (3.1.3)
|
formtastic (3.1.3)
|
||||||
actionpack (>= 3.2.13)
|
actionpack (>= 3.2.13)
|
||||||
formtastic_i18n (0.1.1)
|
formtastic_i18n (0.4.1)
|
||||||
friendly_id (5.1.0)
|
friendly_id (5.1.0)
|
||||||
activerecord (>= 4.0.0)
|
activerecord (>= 4.0.0)
|
||||||
gemoji (2.1.0)
|
gemoji (2.1.0)
|
||||||
|
@ -244,7 +244,7 @@ GEM
|
||||||
jquery-rails (3.1.2)
|
jquery-rails (3.1.2)
|
||||||
railties (>= 3.0, < 5.0)
|
railties (>= 3.0, < 5.0)
|
||||||
thor (>= 0.14, < 2.0)
|
thor (>= 0.14, < 2.0)
|
||||||
jquery-ui-rails (5.0.3)
|
jquery-ui-rails (5.0.5)
|
||||||
railties (>= 3.2.16)
|
railties (>= 3.2.16)
|
||||||
js-routes (1.0.0)
|
js-routes (1.0.0)
|
||||||
railties (>= 3.2)
|
railties (>= 3.2)
|
||||||
|
@ -280,7 +280,7 @@ GEM
|
||||||
railties (>= 3.0.0, < 5.0.0)
|
railties (>= 3.0.0, < 5.0.0)
|
||||||
mime-types (1.25.1)
|
mime-types (1.25.1)
|
||||||
mini_portile (0.6.2)
|
mini_portile (0.6.2)
|
||||||
minitest (5.6.0)
|
minitest (5.6.1)
|
||||||
mock_redis (0.14.0)
|
mock_redis (0.14.0)
|
||||||
momentjs-rails (2.9.0)
|
momentjs-rails (2.9.0)
|
||||||
railties (>= 3.1)
|
railties (>= 3.1)
|
||||||
|
@ -339,11 +339,9 @@ GEM
|
||||||
cocaine (~> 0.5.3)
|
cocaine (~> 0.5.3)
|
||||||
mime-types
|
mime-types
|
||||||
pg (0.18.1)
|
pg (0.18.1)
|
||||||
polyamorous (1.1.0)
|
polyamorous (1.2.0)
|
||||||
activerecord (>= 3.0)
|
activerecord (>= 3.0)
|
||||||
posix-spawn (0.3.10)
|
posix-spawn (0.3.10)
|
||||||
protected_attributes (1.0.9)
|
|
||||||
activemodel (>= 4.0.1, < 5.0)
|
|
||||||
puma (2.11.1)
|
puma (2.11.1)
|
||||||
rack (>= 1.1, < 2.0)
|
rack (>= 1.1, < 2.0)
|
||||||
pundit (0.3.0)
|
pundit (0.3.0)
|
||||||
|
@ -351,7 +349,7 @@ GEM
|
||||||
pygments.rb (0.6.2)
|
pygments.rb (0.6.2)
|
||||||
posix-spawn (~> 0.3.6)
|
posix-spawn (~> 0.3.6)
|
||||||
yajl-ruby (~> 1.2.0)
|
yajl-ruby (~> 1.2.0)
|
||||||
rack (1.5.2)
|
rack (1.5.3)
|
||||||
rack-contrib (1.2.0)
|
rack-contrib (1.2.0)
|
||||||
rack (>= 0.9.1)
|
rack (>= 0.9.1)
|
||||||
rack-mini-profiler (0.9.3)
|
rack-mini-profiler (0.9.3)
|
||||||
|
@ -385,12 +383,12 @@ GEM
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
thor (>= 0.18.1, < 2.0)
|
thor (>= 0.18.1, < 2.0)
|
||||||
rake (10.4.2)
|
rake (10.4.2)
|
||||||
ransack (1.6.3)
|
ransack (1.6.6)
|
||||||
actionpack (>= 3.0)
|
actionpack (>= 3.0)
|
||||||
activerecord (>= 3.0)
|
activerecord (>= 3.0)
|
||||||
activesupport (>= 3.0)
|
activesupport (>= 3.0)
|
||||||
i18n
|
i18n
|
||||||
polyamorous (~> 1.1)
|
polyamorous (~> 1.2)
|
||||||
rb-fsevent (0.9.4)
|
rb-fsevent (0.9.4)
|
||||||
rb-inotify (0.9.5)
|
rb-inotify (0.9.5)
|
||||||
ffi (>= 0.5.0)
|
ffi (>= 0.5.0)
|
||||||
|
@ -471,7 +469,7 @@ GEM
|
||||||
safe_yaml (1.0.4)
|
safe_yaml (1.0.4)
|
||||||
sanitize (2.1.0)
|
sanitize (2.1.0)
|
||||||
nokogiri (>= 1.4.4)
|
nokogiri (>= 1.4.4)
|
||||||
sass (3.4.13)
|
sass (3.4.14)
|
||||||
sass-rails (5.0.1)
|
sass-rails (5.0.1)
|
||||||
railties (>= 4.0.0, < 5.0)
|
railties (>= 4.0.0, < 5.0)
|
||||||
sass (~> 3.1)
|
sass (~> 3.1)
|
||||||
|
@ -514,7 +512,7 @@ GEM
|
||||||
multi_json (~> 1.0)
|
multi_json (~> 1.0)
|
||||||
rack (~> 1.0)
|
rack (~> 1.0)
|
||||||
tilt (~> 1.1, != 1.3.0)
|
tilt (~> 1.1, != 1.3.0)
|
||||||
sprockets-rails (2.2.4)
|
sprockets-rails (2.3.1)
|
||||||
actionpack (>= 3.0)
|
actionpack (>= 3.0)
|
||||||
activesupport (>= 3.0)
|
activesupport (>= 3.0)
|
||||||
sprockets (>= 2.8, < 4.0)
|
sprockets (>= 2.8, < 4.0)
|
||||||
|
@ -636,7 +634,6 @@ DEPENDENCIES
|
||||||
paperclip
|
paperclip
|
||||||
perform_later!
|
perform_later!
|
||||||
pg
|
pg
|
||||||
protected_attributes
|
|
||||||
puma
|
puma
|
||||||
pundit
|
pundit
|
||||||
rack-mini-profiler
|
rack-mini-profiler
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
ActiveAdmin.register BuildScript do
|
ActiveAdmin.register BuildScript do
|
||||||
|
permit_params :project_name, :treeish, :commit, :sha1, :status
|
||||||
|
|
||||||
menu priority: 4
|
menu priority: 4
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
ActiveAdmin.register FlashNotify do
|
ActiveAdmin.register FlashNotify do
|
||||||
|
permit_params :body_ru, :body_en, :status, :published
|
||||||
|
|
||||||
menu parent: 'Misc'
|
menu parent: 'Misc'
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
ActiveAdmin.register NodeInstruction do
|
ActiveAdmin.register NodeInstruction do
|
||||||
|
permit_params :instruction, :user_id, :output, :status
|
||||||
|
|
||||||
menu priority: 3
|
menu priority: 3
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,680 @@
|
||||||
|
/*
|
||||||
|
* https://github.com/lu4/BootstrapXL/blob/7c64e2ea5ee1f72ed3db9892c091d5a0380c4518/BootstrapXL.css
|
||||||
|
*
|
||||||
|
* CSS file with Bootstrap grid classes for screens bigger than 1600px. Just add this file after the Bootstrap CSS file and you will be able to use col-xl, col-xl-push, hidden-xl, etc.
|
||||||
|
*
|
||||||
|
* Author: Marc van Nieuwenhuijzen
|
||||||
|
* Company: WebVakman
|
||||||
|
* Site: WebVakman.nl
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
.visible-xs,
|
||||||
|
.visible-xs-block,
|
||||||
|
.visible-xs-inline,
|
||||||
|
.visible-xs-inline-block,
|
||||||
|
.visible-sm,
|
||||||
|
.visible-sm-block,
|
||||||
|
.visible-sm-inline,
|
||||||
|
.visible-sm-inline-block,
|
||||||
|
.visible-md,
|
||||||
|
.visible-md-block,
|
||||||
|
.visible-md-inline,
|
||||||
|
.visible-md-inline-block,
|
||||||
|
.visible-lg,
|
||||||
|
.visible-lg-block,
|
||||||
|
.visible-lg-inline,
|
||||||
|
.visible-lg-inline-block,
|
||||||
|
.visible-xl,
|
||||||
|
.visible-xl-block,
|
||||||
|
.visible-xl-inline,
|
||||||
|
.visible-xl-inline-block,
|
||||||
|
.visible-xx,
|
||||||
|
.visible-xx-block,
|
||||||
|
.visible-xx-inline,
|
||||||
|
.visible-xx-inline-block {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.visible-xs {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.visible-xs {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.visible-xs {
|
||||||
|
display: table-row !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.visible-xs, td.visible-xs {
|
||||||
|
display: table-cell !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xs-block {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xs-inline {
|
||||||
|
display: inline !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xs-inline-block {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-xs {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 768px) and (max-width: 991px) {
|
||||||
|
.visible-sm {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.visible-sm {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.visible-sm {
|
||||||
|
display: table-row !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.visible-sm, td.visible-sm {
|
||||||
|
display: table-cell !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-sm-block {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-sm-inline {
|
||||||
|
display: inline !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-sm-inline-block {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-sm {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 992px) and (max-width: 1199px) {
|
||||||
|
.visible-md {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.visible-md {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.visible-md {
|
||||||
|
display: table-row !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.visible-md, td.visible-md {
|
||||||
|
display: table-cell !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-md-block {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-md-inline {
|
||||||
|
display: inline !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-md-inline-block {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-md {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
.col-lg-3 {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-lg {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.visible-lg {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.visible-lg {
|
||||||
|
display: table-row !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.visible-lg, td.visible-lg {
|
||||||
|
display: table-cell !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-lg-block {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-lg-inline {
|
||||||
|
display: inline !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-lg-inline-block {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-lg {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1600px) {
|
||||||
|
.visible-lg {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1600px) {
|
||||||
|
.container {
|
||||||
|
width: 1570px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-12 {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-11 {
|
||||||
|
width: 91.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-10 {
|
||||||
|
width: 83.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-9 {
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-8 {
|
||||||
|
width: 66.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-7 {
|
||||||
|
width: 58.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-6 {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-5 {
|
||||||
|
width: 41.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-4 {
|
||||||
|
width: 33.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-3 {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-2 {
|
||||||
|
width: 16.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-1 {
|
||||||
|
width: 8.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-12 {
|
||||||
|
right: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-11 {
|
||||||
|
right: 91.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-10 {
|
||||||
|
right: 83.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-9 {
|
||||||
|
right: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-8 {
|
||||||
|
right: 66.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-7 {
|
||||||
|
right: 58.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-6 {
|
||||||
|
right: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-5 {
|
||||||
|
right: 41.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-4 {
|
||||||
|
right: 33.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-3 {
|
||||||
|
right: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-2 {
|
||||||
|
right: 16.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-1 {
|
||||||
|
right: 8.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-pull-0 {
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-12 {
|
||||||
|
left: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-11 {
|
||||||
|
left: 91.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-10 {
|
||||||
|
left: 83.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-9 {
|
||||||
|
left: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-8 {
|
||||||
|
left: 66.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-7 {
|
||||||
|
left: 58.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-6 {
|
||||||
|
left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-5 {
|
||||||
|
left: 41.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-4 {
|
||||||
|
left: 33.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-3 {
|
||||||
|
left: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-2 {
|
||||||
|
left: 16.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-1 {
|
||||||
|
left: 8.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-push-0 {
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-12 {
|
||||||
|
margin-left: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-11 {
|
||||||
|
margin-left: 91.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-10 {
|
||||||
|
margin-left: 83.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-9 {
|
||||||
|
margin-left: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-8 {
|
||||||
|
margin-left: 66.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-7 {
|
||||||
|
margin-left: 58.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-6 {
|
||||||
|
margin-left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-5 {
|
||||||
|
margin-left: 41.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-4 {
|
||||||
|
margin-left: 33.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-3 {
|
||||||
|
margin-left: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-2 {
|
||||||
|
margin-left: 16.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-1 {
|
||||||
|
margin-left: 8.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-offset-0 {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xl {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.visible-xl {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.visible-xl {
|
||||||
|
display: table-row !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.visible-xl, td.visible-xl {
|
||||||
|
display: table-cell !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xl-block {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xl-inline {
|
||||||
|
display: inline !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xl-inline-block {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-xl {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 2048px) {
|
||||||
|
.visible-xl {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 2048px) {
|
||||||
|
.container {
|
||||||
|
width: 1570px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-1, .col-xx-2, .col-xx-3, .col-xx-4, .col-xx-5, .col-xx-6, .col-xx-7, .col-xx-8, .col-xx-9, .col-xx-10, .col-xx-11, .col-xx-12 {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-12 {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-11 {
|
||||||
|
width: 91.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-10 {
|
||||||
|
width: 83.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-9 {
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-8 {
|
||||||
|
width: 66.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-7 {
|
||||||
|
width: 58.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-6 {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-5 {
|
||||||
|
width: 41.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-4 {
|
||||||
|
width: 33.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-3 {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-2 {
|
||||||
|
width: 16.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-1 {
|
||||||
|
width: 8.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-12 {
|
||||||
|
right: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-11 {
|
||||||
|
right: 91.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-10 {
|
||||||
|
right: 83.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-9 {
|
||||||
|
right: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-8 {
|
||||||
|
right: 66.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-7 {
|
||||||
|
right: 58.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-6 {
|
||||||
|
right: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-5 {
|
||||||
|
right: 41.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-4 {
|
||||||
|
right: 33.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-3 {
|
||||||
|
right: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-2 {
|
||||||
|
right: 16.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-1 {
|
||||||
|
right: 8.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-pull-0 {
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-12 {
|
||||||
|
left: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-11 {
|
||||||
|
left: 91.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-10 {
|
||||||
|
left: 83.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-9 {
|
||||||
|
left: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-8 {
|
||||||
|
left: 66.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-7 {
|
||||||
|
left: 58.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-6 {
|
||||||
|
left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-5 {
|
||||||
|
left: 41.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-4 {
|
||||||
|
left: 33.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-3 {
|
||||||
|
left: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-2 {
|
||||||
|
left: 16.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-1 {
|
||||||
|
left: 8.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-push-0 {
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-12 {
|
||||||
|
margin-left: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-11 {
|
||||||
|
margin-left: 91.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-10 {
|
||||||
|
margin-left: 83.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-9 {
|
||||||
|
margin-left: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-8 {
|
||||||
|
margin-left: 66.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-7 {
|
||||||
|
margin-left: 58.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-6 {
|
||||||
|
margin-left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-5 {
|
||||||
|
margin-left: 41.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-4 {
|
||||||
|
margin-left: 33.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-3 {
|
||||||
|
margin-left: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-2 {
|
||||||
|
margin-left: 16.66666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-1 {
|
||||||
|
margin-left: 8.33333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xx-offset-0 {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xx {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.visible-xx {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.visible-xx {
|
||||||
|
display: table-row !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.visible-xx, td.visible-xx {
|
||||||
|
display: table-cell !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xx-block {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xx-inline {
|
||||||
|
display: inline !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visible-xx-inline-block {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-xx {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
|
@ -37,6 +37,7 @@ $navbar-inverse-toggle-border-color: #ddd;
|
||||||
|
|
||||||
@import "bootstrap-sprockets";
|
@import "bootstrap-sprockets";
|
||||||
@import "bootstrap";
|
@import "bootstrap";
|
||||||
|
@import "BootstrapXL";
|
||||||
@import "custom_bootstrap";
|
@import "custom_bootstrap";
|
||||||
@import "timeline";
|
@import "timeline";
|
||||||
@import "font-awesome";
|
@import "font-awesome";
|
||||||
|
|
|
@ -16,7 +16,7 @@ class Api::V1::AdvisoriesController < Api::V1::BaseController
|
||||||
def create
|
def create
|
||||||
authorize :advisory
|
authorize :advisory
|
||||||
if @build_list.can_attach_to_advisory? &&
|
if @build_list.can_attach_to_advisory? &&
|
||||||
@build_list.associate_and_create_advisory(params[:advisory]) &&
|
@build_list.associate_and_create_advisory(advisory_params) &&
|
||||||
@build_list.save
|
@build_list.save
|
||||||
render_json_response @build_list.advisory, 'Advisory has been created successfully'
|
render_json_response @build_list.advisory, 'Advisory has been created successfully'
|
||||||
else
|
else
|
||||||
|
@ -35,6 +35,10 @@ class Api::V1::AdvisoriesController < Api::V1::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def advisory_params
|
||||||
|
subject_params(Advisory)
|
||||||
|
end
|
||||||
|
|
||||||
def load_build_list
|
def load_build_list
|
||||||
@build_list = BuildList.find params[:build_list_id]
|
@build_list = BuildList.find params[:build_list_id]
|
||||||
authorize @build_list.save_to_platform, :local_admin_manage?
|
authorize @build_list.save_to_platform, :local_admin_manage?
|
||||||
|
|
|
@ -85,7 +85,7 @@ class Api::V1::BaseController < ApplicationController
|
||||||
def update_subject(subject)
|
def update_subject(subject)
|
||||||
authorize subject, :update?
|
authorize subject, :update?
|
||||||
class_name = subject.class.name
|
class_name = subject.class.name
|
||||||
if subject.update_attributes(params[class_name.underscore.to_sym] || {})
|
if subject.update_attributes(subject_params(subject.class, subject))
|
||||||
render_json_response subject, "#{class_name} has been updated successfully"
|
render_json_response subject, "#{class_name} has been updated successfully"
|
||||||
else
|
else
|
||||||
render_validation_error subject, "#{class_name} has not been updated"
|
render_validation_error subject, "#{class_name} has not been updated"
|
||||||
|
|
|
@ -33,13 +33,11 @@ class Api::V1::BuildListsController < Api::V1::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
bl_params = params[:build_list] || {}
|
save_to_repository = Repository.find_by(id: build_list_params[:save_to_repository_id])
|
||||||
save_to_repository = Repository.where(id: bl_params[:save_to_repository_id]).first
|
|
||||||
|
|
||||||
bl_params[:save_to_platform_id] = save_to_repository.platform_id if save_to_repository
|
@build_list = current_user.build_lists.new(build_list_params)
|
||||||
|
@build_list.save_to_platform = save_to_repository.platform if save_to_repository
|
||||||
@build_list = current_user.build_lists.new(bl_params)
|
@build_list.priority = current_user.build_priority # User builds more priority than mass rebuild with zero priority
|
||||||
@build_list.priority = current_user.build_priority # User builds more priority than mass rebuild with zero priority
|
|
||||||
|
|
||||||
create_subject @build_list
|
create_subject @build_list
|
||||||
end
|
end
|
||||||
|
@ -79,6 +77,10 @@ class Api::V1::BuildListsController < Api::V1::BaseController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def build_list_params
|
||||||
|
subject_params(BuildList)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads BuidList.
|
# Private: before_action hook which loads BuidList.
|
||||||
def load_build_list
|
def load_build_list
|
||||||
@build_list = BuildList.find params[:id]
|
@build_list = BuildList.find params[:id]
|
||||||
|
|
|
@ -28,7 +28,8 @@ class Api::V1::GroupsController < Api::V1::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@group = current_user.own_groups.new params[:group]
|
@group = current_user.own_groups.new
|
||||||
|
@group.assign_attributes(group_params)
|
||||||
create_subject @group
|
create_subject @group
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -49,6 +50,10 @@ class Api::V1::GroupsController < Api::V1::BaseController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def group_params
|
||||||
|
subject_params(Group, @group)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads Group.
|
# Private: before_action hook which loads Group.
|
||||||
def load_group
|
def load_group
|
||||||
@group = Group.find params[:id]
|
@group = Group.find params[:id]
|
||||||
|
|
|
@ -44,20 +44,14 @@ class Api::V1::IssuesController < Api::V1::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@issue = @project.issues.new(params[:issue])
|
@issue = @project.issues.new
|
||||||
|
@issue.assign_attributes subject_params(Issue, @issue)
|
||||||
@issue.user = current_user
|
@issue.user = current_user
|
||||||
@issue.assignee = nil unless policy(@project).write?
|
|
||||||
create_subject @issue
|
create_subject @issue
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
unless policy(@project).write?
|
@issue.labelings.destroy_all if params[:update_labels] && policy(@project).write?
|
||||||
params.delete :update_labels
|
|
||||||
[:assignee_id, :labelings, :labelings_attributes].each do |k|
|
|
||||||
params[:issue].delete k
|
|
||||||
end if params[:issue]
|
|
||||||
end
|
|
||||||
@issue.labelings.destroy_all if params[:update_labels]
|
|
||||||
if params[:issue] && status = params[:issue].delete(:status)
|
if params[:issue] && status = params[:issue].delete(:status)
|
||||||
@issue.set_close(current_user) if status == 'closed'
|
@issue.set_close(current_user) if status == 'closed'
|
||||||
@issue.set_open if status == 'open'
|
@issue.set_open if status == 'open'
|
||||||
|
|
|
@ -32,17 +32,17 @@ class Api::V1::PlatformsController < Api::V1::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
platform_params = params[:platform] || {}
|
pp = params[:platform] || {}
|
||||||
owner = User.where(id: platform_params[:owner_id]).first
|
owner = User.find_by(id: pp[:owner_id])
|
||||||
@platform = Platform.new platform_params
|
@platform = Platform.new(platform_params)
|
||||||
@platform.owner = owner || get_owner
|
@platform.owner = owner || get_owner
|
||||||
create_subject @platform
|
create_subject @platform
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
platform_params = params[:platform] || {}
|
pp = params[:platform] || {}
|
||||||
owner = User.where(id: platform_params[:owner_id]).first
|
owner = User.find_by(id: pp[:owner_id])
|
||||||
platform_params[:owner] = owner if owner
|
pp[:owner] = owner if owner
|
||||||
update_subject @platform
|
update_subject @platform
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -80,6 +80,10 @@ class Api::V1::PlatformsController < Api::V1::BaseController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def platform_params
|
||||||
|
subject_params(Platform)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads Platform.
|
# Private: before_action hook which loads Platform.
|
||||||
def load_platform
|
def load_platform
|
||||||
authorize @platform = Platform.find(params[:id])
|
authorize @platform = Platform.find(params[:id])
|
||||||
|
|
|
@ -17,10 +17,10 @@ class Api::V1::ProductBuildListsController < Api::V1::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@product_build_list = ProductBuildList.new(params[:product_build_list])
|
@product_build_list = ProductBuildList.new subject_params(ProductBuildList)
|
||||||
@product_build_list.project ||= @product_build_list.try(:product).try(:project)
|
@product_build_list.project ||= @product_build_list.try(:product).try(:project)
|
||||||
@product_build_list.main_script ||= @product_build_list.try(:product).try(:main_script)
|
@product_build_list.main_script ||= @product_build_list.try(:product).try(:main_script)
|
||||||
@product_build_list.params ||= @product_build_list.try(:product).try(:params)
|
@product_build_list.params ||= @product_build_list.try(:product).try(:params)
|
||||||
@product_build_list.time_living ||= @product_build_list.try(:product).try(:time_living)
|
@product_build_list.time_living ||= @product_build_list.try(:product).try(:time_living)
|
||||||
create_subject @product_build_list
|
create_subject @product_build_list
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,7 +5,7 @@ class Api::V1::ProductsController < Api::V1::BaseController
|
||||||
before_action :load_product, except: :create
|
before_action :load_product, except: :create
|
||||||
|
|
||||||
def create
|
def create
|
||||||
create_subject @product = Product.new(params[:product])
|
create_subject @product = Product.new(subject_params(Product))
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
|
|
|
@ -31,7 +31,7 @@ class Api::V1::ProjectsController < Api::V1::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@project = Project.new(params[:project])
|
@project = Project.new subject_params(Project)
|
||||||
p_params = params[:project] || {}
|
p_params = params[:project] || {}
|
||||||
owner_type = %w(User Group).find{ |t| t == p_params[:owner_type] }
|
owner_type = %w(User Group).find{ |t| t == p_params[:owner_type] }
|
||||||
if owner_type.present?
|
if owner_type.present?
|
||||||
|
|
|
@ -76,7 +76,7 @@ class Api::V1::PullRequestsController < Api::V1::BaseController
|
||||||
authorize @pull
|
authorize @pull
|
||||||
|
|
||||||
if pull_params.present?
|
if pull_params.present?
|
||||||
attrs = pull_params.slice(:title, :body)
|
attrs = subject_params(PullRequest)
|
||||||
attrs.merge!(assignee_id: pull_params[:assignee_id]) if policy(@project).write?
|
attrs.merge!(assignee_id: pull_params[:assignee_id]) if policy(@project).write?
|
||||||
|
|
||||||
if action = %w(close reopen).find{ |s| s == pull_params[:status] }
|
if action = %w(close reopen).find{ |s| s == pull_params[:status] }
|
||||||
|
|
|
@ -97,8 +97,9 @@ class Api::V1::RepositoriesController < Api::V1::BaseController
|
||||||
def signatures
|
def signatures
|
||||||
key_pair = @repository.key_pair
|
key_pair = @repository.key_pair
|
||||||
key_pair.destroy if key_pair
|
key_pair.destroy if key_pair
|
||||||
key_pair = @repository.build_key_pair(params[:repository])
|
key_pair = @repository.build_key_pair subject_params(Repository, KeyPair)
|
||||||
key_pair.user_id = current_user.id
|
key_pair.user_id = current_user.id
|
||||||
|
authorize key_pair, :create?
|
||||||
if key_pair.save
|
if key_pair.save
|
||||||
render_json_response @repository, 'Signatures have been updated for repository successfully'
|
render_json_response @repository, 'Signatures have been updated for repository successfully'
|
||||||
else
|
else
|
||||||
|
|
|
@ -16,7 +16,7 @@ class Api::V1::UsersController < Api::V1::BaseController
|
||||||
def update
|
def update
|
||||||
user_params = params[:user] || {}
|
user_params = params[:user] || {}
|
||||||
send_confirmation = user_params[:email] != @user.email
|
send_confirmation = user_params[:email] != @user.email
|
||||||
if @user.update_without_password(user_params)
|
if @user.update_without_password(subject_params(User))
|
||||||
if send_confirmation
|
if send_confirmation
|
||||||
@user.confirmed_at, @user.confirmation_sent_at = nil
|
@user.confirmed_at, @user.confirmation_sent_at = nil
|
||||||
@user.send_confirmation_instructions
|
@user.send_confirmation_instructions
|
||||||
|
@ -29,7 +29,7 @@ class Api::V1::UsersController < Api::V1::BaseController
|
||||||
|
|
||||||
def notifiers
|
def notifiers
|
||||||
if request.put?
|
if request.put?
|
||||||
if @user.notifier.update_attributes(params[:notifiers])
|
if @user.notifier.update_attributes(notifier_params)
|
||||||
render_json_response @user, 'User notification settings have been updated successfully'
|
render_json_response @user, 'User notification settings have been updated successfully'
|
||||||
else
|
else
|
||||||
render_json_response @user, error_message(@user.notifier, 'User notification settings have not been updated'), 422
|
render_json_response @user, error_message(@user.notifier, 'User notification settings have not been updated'), 422
|
||||||
|
@ -39,6 +39,10 @@ class Api::V1::UsersController < Api::V1::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def notifier_params
|
||||||
|
permit_params(:notifiers, *policy(SettingsNotifier).permitted_attributes)
|
||||||
|
end
|
||||||
|
|
||||||
def set_current_user
|
def set_current_user
|
||||||
authorize @user = current_user
|
authorize @user = current_user
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,6 +4,13 @@ module StrongParams
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def permit_params(param_name, *accessible)
|
def permit_params(param_name, *accessible)
|
||||||
(params[param_name] || ActionController::Parameters.new).permit(*accessible.flatten)
|
[param_name].flatten.inject(params.dup) do |pp, name|
|
||||||
|
pp = pp[name] || ActionController::Parameters.new
|
||||||
|
end.permit(*accessible.flatten)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def subject_params(subject_class, subject = nil)
|
||||||
|
permit_params(subject_class.name.underscore.to_sym, *policy(subject || subject_class).permitted_attributes)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ class ContactsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@form = Feedback.new(params[:feedback])
|
@form = Feedback.new(feedback_params)
|
||||||
if @form.perform_send
|
if @form.perform_send
|
||||||
flash[:notice] = I18n.t("flash.contact.success")
|
flash[:notice] = I18n.t("flash.contact.success")
|
||||||
redirect_to sended_contact_path
|
redirect_to sended_contact_path
|
||||||
|
@ -19,4 +19,10 @@ class ContactsController < ApplicationController
|
||||||
def sended
|
def sended
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def feedback_params
|
||||||
|
params[:feedback].permit(:name, :email, :subject, :message)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -43,7 +43,9 @@ class Groups::ProfileController < Groups::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
authorize @group = current_user.own_groups.build(params[:group])
|
@group = current_user.own_groups.new
|
||||||
|
@group.assign_attributes(group_params)
|
||||||
|
authorize @group
|
||||||
if @group.save
|
if @group.save
|
||||||
flash[:notice] = t('flash.group.saved')
|
flash[:notice] = t('flash.group.saved')
|
||||||
redirect_to group_path(@group)
|
redirect_to group_path(@group)
|
||||||
|
@ -56,7 +58,7 @@ class Groups::ProfileController < Groups::BaseController
|
||||||
|
|
||||||
def update
|
def update
|
||||||
authorize @group
|
authorize @group
|
||||||
if @group.update_attributes(params[:group])
|
if @group.update_attributes(group_params)
|
||||||
update_avatar(@group, params)
|
update_avatar(@group, params)
|
||||||
flash[:notice] = t('flash.group.saved')
|
flash[:notice] = t('flash.group.saved')
|
||||||
redirect_to group_path(@group)
|
redirect_to group_path(@group)
|
||||||
|
@ -81,6 +83,10 @@ class Groups::ProfileController < Groups::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def group_params
|
||||||
|
subject_params(Group, @group)
|
||||||
|
end
|
||||||
|
|
||||||
def paginate_projects(page)
|
def paginate_projects(page)
|
||||||
@projects.paginate(page: (page>0 ? page : nil), per_page: 24)
|
@projects.paginate(page: (page>0 ? page : nil), per_page: 24)
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ class Platforms::KeyPairsController < Platforms::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@key_pair = KeyPair.new params[:key_pair]
|
@key_pair = KeyPair.new subject_params(KeyPair)
|
||||||
@key_pair.user_id = current_user.id
|
@key_pair.user_id = current_user.id
|
||||||
authorize @key_pair
|
authorize @key_pair
|
||||||
if @key_pair.save
|
if @key_pair.save
|
||||||
|
|
|
@ -22,7 +22,7 @@ class Platforms::MassBuildsController < Platforms::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@mass_build = @platform.mass_builds.build(params[:mass_build])
|
@mass_build = @platform.mass_builds.build(subject_params(MassBuild))
|
||||||
@mass_build.user = current_user
|
@mass_build.user = current_user
|
||||||
@mass_build.arches = params[:arches] || []
|
@mass_build.arches = params[:arches] || []
|
||||||
@mass_build.repositories ||= params[:repositories] || []
|
@mass_build.repositories ||= params[:repositories] || []
|
||||||
|
|
|
@ -33,7 +33,7 @@ class Platforms::PlatformsController < Platforms::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
authorize @platform = Platform.new(params[:platform])
|
authorize @platform = Platform.new(platform_params)
|
||||||
@admin_id = params[:admin_id]
|
@admin_id = params[:admin_id]
|
||||||
@admin_uname = params[:admin_uname]
|
@admin_uname = params[:admin_uname]
|
||||||
# FIXME: do not allow manipulate owner model, only platforms onwer_id and onwer_type
|
# FIXME: do not allow manipulate owner model, only platforms onwer_id and onwer_type
|
||||||
|
@ -53,13 +53,12 @@ class Platforms::PlatformsController < Platforms::BaseController
|
||||||
@admin_id = params[:admin_id]
|
@admin_id = params[:admin_id]
|
||||||
@admin_uname = params[:admin_uname]
|
@admin_uname = params[:admin_uname]
|
||||||
|
|
||||||
platform_params = params[:platform] || {}
|
pp = platform_params
|
||||||
platform_params = platform_params.slice(:description, :platform_arch_settings_attributes, :released, :automatic_metadata_regeneration, :default_branch)
|
pp[:owner] = User.find(@admin_id) if @admin_id.present?
|
||||||
platform_params[:owner] = User.find(@admin_id) if @admin_id.present?
|
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html do
|
format.html do
|
||||||
if @platform.update_attributes(platform_params)
|
if @platform.update_attributes(pp)
|
||||||
flash[:notice] = I18n.t("flash.platform.saved")
|
flash[:notice] = I18n.t("flash.platform.saved")
|
||||||
redirect_to @platform
|
redirect_to @platform
|
||||||
else
|
else
|
||||||
|
@ -68,7 +67,7 @@ class Platforms::PlatformsController < Platforms::BaseController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
format.json do
|
format.json do
|
||||||
if @platform.update_attributes(platform_params)
|
if @platform.update_attributes(pp)
|
||||||
render json: { notice: I18n.t("flash.platform.saved") }.to_json
|
render json: { notice: I18n.t("flash.platform.saved") }.to_json
|
||||||
else
|
else
|
||||||
render json: { error: I18n.t("flash.platform.save_error") }.to_json, status: 422
|
render json: { error: I18n.t("flash.platform.save_error") }.to_json, status: 422
|
||||||
|
@ -108,7 +107,7 @@ class Platforms::PlatformsController < Platforms::BaseController
|
||||||
|
|
||||||
def make_clone
|
def make_clone
|
||||||
authorize @platform
|
authorize @platform
|
||||||
@cloned = @platform.full_clone params[:platform].merge(owner: current_user)
|
@cloned = @platform.full_clone platform_params.merge(owner: current_user)
|
||||||
if @cloned.persisted?
|
if @cloned.persisted?
|
||||||
flash[:notice] = I18n.t("flash.platform.clone_success")
|
flash[:notice] = I18n.t("flash.platform.clone_success")
|
||||||
redirect_to @cloned
|
redirect_to @cloned
|
||||||
|
@ -165,6 +164,10 @@ class Platforms::PlatformsController < Platforms::BaseController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def platform_params
|
||||||
|
subject_params(Platform)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads Platform.
|
# Private: before_action hook which loads Platform.
|
||||||
def load_platform
|
def load_platform
|
||||||
authorize @platform = Platform.find_cached(params[:id]), :show? if params[:id]
|
authorize @platform = Platform.find_cached(params[:id]), :show? if params[:id]
|
||||||
|
|
|
@ -47,7 +47,7 @@ class Platforms::ProductBuildListsController < Platforms::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
pbl = @product.product_build_lists.new params[:product_build_list]
|
pbl = @product.product_build_lists.new product_build_list_params
|
||||||
pbl.project = @product.project
|
pbl.project = @product.project
|
||||||
pbl.user = current_user
|
pbl.user = current_user
|
||||||
pbl.base_url = "http://#{request.host_with_port}"
|
pbl.base_url = "http://#{request.host_with_port}"
|
||||||
|
@ -93,6 +93,10 @@ class Platforms::ProductBuildListsController < Platforms::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def product_build_list_params
|
||||||
|
subject_params(ProductBuildList)
|
||||||
|
end
|
||||||
|
|
||||||
def redirect_to_full_path_if_short_url
|
def redirect_to_full_path_if_short_url
|
||||||
if params[:platform_id].blank? || params[:product_id].blank?
|
if params[:platform_id].blank? || params[:product_id].blank?
|
||||||
pbl = ProductBuildList.find params[:id]
|
pbl = ProductBuildList.find params[:id]
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Platforms::ProductsController < Platforms::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
authorize @product = @platform.products.build(params[:product])
|
authorize @product = @platform.products.build(product_params)
|
||||||
if @product.save
|
if @product.save
|
||||||
flash[:notice] = t('flash.product.saved')
|
flash[:notice] = t('flash.product.saved')
|
||||||
redirect_to platform_product_path(@platform, @product)
|
redirect_to platform_product_path(@platform, @product)
|
||||||
|
@ -31,7 +31,7 @@ class Platforms::ProductsController < Platforms::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
if @product.update_attributes(params[:product])
|
if @product.update_attributes(product_params)
|
||||||
flash[:notice] = t('flash.product.saved')
|
flash[:notice] = t('flash.product.saved')
|
||||||
redirect_to platform_product_path(@platform, @product)
|
redirect_to platform_product_path(@platform, @product)
|
||||||
else
|
else
|
||||||
|
@ -61,6 +61,10 @@ class Platforms::ProductsController < Platforms::BaseController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def product_params
|
||||||
|
subject_params(Product)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads Product.
|
# Private: before_action hook which loads Product.
|
||||||
def load_product
|
def load_product
|
||||||
authorize @product = Product.find(params[:id])
|
authorize @product = Product.find(params[:id])
|
||||||
|
|
|
@ -25,7 +25,7 @@ class Platforms::RepositoriesController < Platforms::BaseController
|
||||||
|
|
||||||
def update
|
def update
|
||||||
authorize @repository
|
authorize @repository
|
||||||
if @repository.update_attributes params[:repository].slice(:description, :synchronizing_publications, :publish_builds_only_from_branch).merge(publish_without_qa: (params[:repository][:publish_without_qa] || @repository.publish_without_qa))
|
if @repository.update_attributes(repository_params)
|
||||||
flash[:notice] = I18n.t("flash.repository.updated")
|
flash[:notice] = I18n.t("flash.repository.updated")
|
||||||
redirect_to platform_repository_path(@platform, @repository)
|
redirect_to platform_repository_path(@platform, @repository)
|
||||||
else
|
else
|
||||||
|
@ -67,7 +67,7 @@ class Platforms::RepositoriesController < Platforms::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
authorize @repository = @platform.repositories.build(params[:repository])
|
authorize @repository = @platform.repositories.build(repository_params)
|
||||||
if @repository.save
|
if @repository.save
|
||||||
flash[:notice] = t('flash.repository.saved')
|
flash[:notice] = t('flash.repository.saved')
|
||||||
redirect_to platform_repository_path(@platform, @repository)
|
redirect_to platform_repository_path(@platform, @repository)
|
||||||
|
@ -175,6 +175,10 @@ class Platforms::RepositoriesController < Platforms::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def repository_params
|
||||||
|
subject_params(Repository)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads Repository.
|
# Private: before_action hook which loads Repository.
|
||||||
def load_repository
|
def load_repository
|
||||||
authorize @repository = @platform.repositories.find(params[:id])
|
authorize @repository = @platform.repositories.find(params[:id])
|
||||||
|
|
|
@ -27,7 +27,7 @@ class Platforms::TokensController < Platforms::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@token = @platform.tokens.build params[:token]
|
@token = @platform.tokens.build token_params
|
||||||
@token.creator = current_user
|
@token.creator = current_user
|
||||||
authorize @token
|
authorize @token
|
||||||
if @token.save
|
if @token.save
|
||||||
|
@ -42,6 +42,10 @@ class Platforms::TokensController < Platforms::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def token_params
|
||||||
|
subject_params(Token)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads Repository.
|
# Private: before_action hook which loads Repository.
|
||||||
def load_token
|
def load_token
|
||||||
authorize @token = @platform.tokens.find(params[:id])
|
authorize @token = @platform.tokens.find(params[:id])
|
||||||
|
|
|
@ -52,21 +52,20 @@ class Projects::BuildListsController < Projects::BaseController
|
||||||
def create
|
def create
|
||||||
notices, errors = [], []
|
notices, errors = [], []
|
||||||
|
|
||||||
@repository = Repository.find params[:build_list][:save_to_repository_id]
|
@repository = Repository.find build_list_params[:save_to_repository_id]
|
||||||
@platform = @repository.platform
|
@platform = @repository.platform
|
||||||
|
|
||||||
params[:build_list][:save_to_platform_id] = @platform.id
|
build_lists = []
|
||||||
|
build_for_platforms = Platform.joins(:repositories).where(repositories: { id: build_list_params[:include_repos] }).uniq
|
||||||
build_for_platforms = Repository.select(:platform_id).
|
|
||||||
where(id: params[:build_list][:include_repos]).group(:platform_id).map(&:platform_id)
|
|
||||||
|
|
||||||
build_lists = []
|
|
||||||
Arch.where(id: params[:arches]).each do |arch|
|
Arch.where(id: params[:arches]).each do |arch|
|
||||||
Platform.main.where(id: build_for_platforms).each do |build_for_platform|
|
build_for_platforms.find_each do |build_for_platform|
|
||||||
@build_list = @project.build_lists.build(params[:build_list])
|
@build_list = @project.build_lists.build(build_list_params)
|
||||||
@build_list.build_for_platform = build_for_platform; @build_list.arch = arch; @build_list.user = current_user
|
@build_list.save_to_platform = @platform
|
||||||
@build_list.include_repos = @build_list.include_repos.select {|ir| @build_list.build_for_platform.repository_ids.include? ir.to_i}
|
@build_list.build_for_platform = build_for_platform
|
||||||
@build_list.priority = current_user.build_priority # User builds more priority than mass rebuild with zero priority
|
@build_list.arch = arch
|
||||||
|
@build_list.user = current_user
|
||||||
|
@build_list.include_repos = @build_list.include_repos.select {|ir| @build_list.build_for_platform.repository_ids.include? ir.to_i}
|
||||||
|
@build_list.priority = current_user.build_priority # User builds more priority than mass rebuild with zero priority
|
||||||
|
|
||||||
flash_options = { project_version: @build_list.project_version, arch: arch.name, build_for_platform: build_for_platform.name }
|
flash_options = { project_version: @build_list.project_version, arch: arch.name, build_for_platform: build_for_platform.name }
|
||||||
authorize @build_list
|
authorize @build_list
|
||||||
|
@ -105,12 +104,12 @@ class Projects::BuildListsController < Projects::BaseController
|
||||||
|
|
||||||
if params[:attach_advisory] == 'new'
|
if params[:attach_advisory] == 'new'
|
||||||
# create new advisory
|
# create new advisory
|
||||||
unless @build_list.associate_and_create_advisory(params[:build_list][:advisory])
|
unless @build_list.associate_and_create_advisory(advisory_params)
|
||||||
redirect_to :back, notice: t('layout.build_lists.publish_fail') and return
|
redirect_to :back, notice: t('layout.build_lists.publish_fail') and return
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
# attach existing advisory
|
# attach existing advisory
|
||||||
a = Advisory.where(advisory_id: params[:attach_advisory]).first
|
a = Advisory.find_by(advisory_id: params[:attach_advisory])
|
||||||
unless (a && a.attach_build_list(@build_list))
|
unless (a && a.attach_build_list(@build_list))
|
||||||
redirect_to :back, notice: t('layout.build_lists.publish_fail') and return
|
redirect_to :back, notice: t('layout.build_lists.publish_fail') and return
|
||||||
end
|
end
|
||||||
|
@ -206,6 +205,14 @@ class Projects::BuildListsController < Projects::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def build_list_params
|
||||||
|
subject_params(BuildList)
|
||||||
|
end
|
||||||
|
|
||||||
|
def advisory_params
|
||||||
|
permit_params(%i(build_list advisory), *policy(Advisory).permitted_attributes)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads BuidList.
|
# Private: before_action hook which loads BuidList.
|
||||||
def load_build_list
|
def load_build_list
|
||||||
authorize @build_list =
|
authorize @build_list =
|
||||||
|
@ -228,14 +235,14 @@ class Projects::BuildListsController < Projects::BaseController
|
||||||
build_list = @project.build_lists.find(params[:build_list_id])
|
build_list = @project.build_lists.find(params[:build_list_id])
|
||||||
|
|
||||||
params[:build_list] ||= {}
|
params[:build_list] ||= {}
|
||||||
keys = [
|
policy(BuildList).permitted_attributes.each do |key|
|
||||||
:save_to_repository_id, :auto_publish_status, :include_repos,
|
params[:build_list][key] =
|
||||||
:extra_params, :project_version, :update_type, :auto_create_container,
|
if build_list.respond_to?(key)
|
||||||
:extra_repositories, :extra_build_lists, :build_for_platform_id,
|
build_list.send(key)
|
||||||
:use_cached_chroot, :use_extra_tests, :save_buildroot,
|
elsif build_list.respond_to?("#{key}?")
|
||||||
:include_testing_subrepository, :external_nodes
|
build_list.send("#{key}?")
|
||||||
]
|
end
|
||||||
keys.each { |key| params[:build_list][key] = build_list.send(key) }
|
end
|
||||||
params[:arches] = [build_list.arch_id]
|
params[:arches] = [build_list.arch_id]
|
||||||
[:owner_filter, :status_filter].each { |t| params[t] = 'true' if %w(true undefined).exclude? params[t] }
|
[:owner_filter, :status_filter].each { |t| params[t] = 'true' if %w(true undefined).exclude? params[t] }
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,7 +24,7 @@ class Projects::CollaboratorsController < Projects::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@collaborator = Collaborator.new(params[:collaborator])
|
@collaborator = Collaborator.new(collaborator_params)
|
||||||
@collaborator.project = @project
|
@collaborator.project = @project
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @collaborator.save
|
if @collaborator.save
|
||||||
|
@ -62,6 +62,10 @@ class Projects::CollaboratorsController < Projects::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def collaborator_params
|
||||||
|
subject_params(Collaborator)
|
||||||
|
end
|
||||||
|
|
||||||
def find_users
|
def find_users
|
||||||
@users = @project.collaborators.order('uname')#User.all
|
@users = @project.collaborators.order('uname')#User.all
|
||||||
@users = @users.without(@project.owner_id) if @project.owner_type == 'User'
|
@users = @users.without(@project.owner_id) if @project.owner_type == 'User'
|
||||||
|
|
|
@ -27,7 +27,7 @@ class Projects::CommentsController < Projects::BaseController
|
||||||
|
|
||||||
def update
|
def update
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @comment.update_attributes(params[:comment])
|
if @comment.update_attributes(comment_params)
|
||||||
format.json { render json: {message:t('flash.comment.updated'), body: view_context.markdown(@comment.body)} }
|
format.json { render json: {message:t('flash.comment.updated'), body: view_context.markdown(@comment.body)} }
|
||||||
else
|
else
|
||||||
format.json { render json: {message:t('flash.comment.error_in_updating')}, status: 422 }
|
format.json { render json: {message:t('flash.comment.error_in_updating')}, status: 422 }
|
||||||
|
@ -48,6 +48,10 @@ class Projects::CommentsController < Projects::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def comment_params
|
||||||
|
subject_params(Comment)
|
||||||
|
end
|
||||||
|
|
||||||
def find_commentable
|
def find_commentable
|
||||||
@commentable = params[:issue_id].present? && @project.issues.find_by(serial_id: params[:issue_id]) ||
|
@commentable = params[:issue_id].present? && @project.issues.find_by(serial_id: params[:issue_id]) ||
|
||||||
params[:commit_id].present? && @project.repo.commit(params[:commit_id])
|
params[:commit_id].present? && @project.repo.commit(params[:commit_id])
|
||||||
|
@ -55,7 +59,7 @@ class Projects::CommentsController < Projects::BaseController
|
||||||
|
|
||||||
def find_or_build_comment
|
def find_or_build_comment
|
||||||
@comment = params[:id].present? && Comment.where(automatic: false).find(params[:id]) ||
|
@comment = params[:id].present? && Comment.where(automatic: false).find(params[:id]) ||
|
||||||
current_user.comments.build(params[:comment]) {|c| c.commentable = @commentable; c.project = @project}
|
current_user.comments.build(comment_params) {|c| c.commentable = @commentable; c.project = @project}
|
||||||
authorize @comment
|
authorize @comment
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,7 +17,7 @@ class Projects::HooksController < Projects::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
authorize @hook = @project.hooks.build(params[:hook])
|
authorize @hook = @project.hooks.build(hook_params)
|
||||||
if @hook.save
|
if @hook.save
|
||||||
redirect_to project_hooks_path(@project, name: @hook.name), notice: t('flash.hook.created')
|
redirect_to project_hooks_path(@project, name: @hook.name), notice: t('flash.hook.created')
|
||||||
else
|
else
|
||||||
|
@ -28,7 +28,7 @@ class Projects::HooksController < Projects::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
if @hook.update_attributes(params[:hook])
|
if @hook.update_attributes(hook_params)
|
||||||
redirect_to project_hooks_path(@project, name: @hook.name), notice: t('flash.hook.updated')
|
redirect_to project_hooks_path(@project, name: @hook.name), notice: t('flash.hook.updated')
|
||||||
else
|
else
|
||||||
flash[:error] = t('flash.hook.save_error')
|
flash[:error] = t('flash.hook.save_error')
|
||||||
|
@ -44,6 +44,10 @@ class Projects::HooksController < Projects::BaseController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def hook_params
|
||||||
|
subject_params(Hook)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads Hook.
|
# Private: before_action hook which loads Hook.
|
||||||
def load_hook
|
def load_hook
|
||||||
authorize @hook = @project.hooks.find(params[:id])
|
authorize @hook = @project.hooks.find(params[:id])
|
||||||
|
|
|
@ -79,13 +79,10 @@ class Projects::IssuesController < Projects::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@issue = @project.issues.build(params[:issue])
|
@issue = @project.issues.new
|
||||||
@issue.user_id = current_user.id
|
@issue.assign_attributes(issue_params)
|
||||||
|
@issue.user = current_user
|
||||||
|
|
||||||
unless policy(@project).write?
|
|
||||||
@issue.assignee_id = nil
|
|
||||||
@issue.labelings = []
|
|
||||||
end
|
|
||||||
authorize @issue
|
authorize @issue
|
||||||
if @issue.save
|
if @issue.save
|
||||||
@issue.subscribe_creator(current_user.id)
|
@issue.subscribe_creator(current_user.id)
|
||||||
|
@ -108,19 +105,12 @@ class Projects::IssuesController < Projects::BaseController
|
||||||
|
|
||||||
format.json {
|
format.json {
|
||||||
status = 200
|
status = 200
|
||||||
unless policy(@project).write?
|
|
||||||
params.delete :update_labels
|
|
||||||
[:assignee_id, :labelings, :labelings_attributes].each do |k|
|
|
||||||
params[:issue].delete k
|
|
||||||
end if params[:issue]
|
|
||||||
end
|
|
||||||
|
|
||||||
if params[:issue] && status = params[:issue][:status]
|
if params[:issue] && status = params[:issue][:status]
|
||||||
@issue.set_close(current_user) if status == 'closed'
|
@issue.set_close(current_user) if status == 'closed'
|
||||||
@issue.set_open if status == 'open'
|
@issue.set_open if status == 'open'
|
||||||
status = @issue.save ? 200 : 500
|
status = @issue.save ? 200 : 500
|
||||||
else
|
else
|
||||||
status = 422 unless @issue.update_attributes(params[:issue])
|
status = 422 unless @issue.update_attributes(issue_params)
|
||||||
end
|
end
|
||||||
render status: status
|
render status: status
|
||||||
}
|
}
|
||||||
|
@ -169,6 +159,10 @@ class Projects::IssuesController < Projects::BaseController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def issue_params
|
||||||
|
subject_params(Issue, @issue)
|
||||||
|
end
|
||||||
|
|
||||||
# Private: before_action hook which loads Issue.
|
# Private: before_action hook which loads Issue.
|
||||||
def load_issue
|
def load_issue
|
||||||
authorize @issue = @project.issues.find_by!(serial_id: params[:id])
|
authorize @issue = @project.issues.find_by!(serial_id: params[:id])
|
||||||
|
|
|
@ -34,7 +34,7 @@ class Projects::ProjectsController < Projects::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def run_mass_import
|
def run_mass_import
|
||||||
@project = Project.new params[:project]
|
@project = Project.new project_params
|
||||||
@project.owner = choose_owner
|
@project.owner = choose_owner
|
||||||
authorize @project
|
authorize @project
|
||||||
@project.valid?
|
@project.valid?
|
||||||
|
@ -54,7 +54,7 @@ class Projects::ProjectsController < Projects::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@project = Project.new params[:project]
|
@project = Project.new project_params
|
||||||
@project.owner = choose_owner
|
@project.owner = choose_owner
|
||||||
authorize @project
|
authorize @project
|
||||||
|
|
||||||
|
@ -73,18 +73,17 @@ class Projects::ProjectsController < Projects::BaseController
|
||||||
params[:project].delete(:maintainer_id) if params[:project][:maintainer_id].blank?
|
params[:project].delete(:maintainer_id) if params[:project][:maintainer_id].blank?
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html do
|
format.html do
|
||||||
if @project.update_attributes(params[:project])
|
if @project.update_attributes(project_params)
|
||||||
flash[:notice] = t('flash.project.saved')
|
flash[:notice] = t('flash.project.saved')
|
||||||
redirect_to @project
|
redirect_to @project
|
||||||
else
|
else
|
||||||
@project.save
|
|
||||||
flash[:error] = t('flash.project.save_error')
|
flash[:error] = t('flash.project.save_error')
|
||||||
flash[:warning] = @project.errors.full_messages.join('. ')
|
flash[:warning] = @project.errors.full_messages.join('. ')
|
||||||
render action: :edit
|
render action: :edit
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
format.json do
|
format.json do
|
||||||
if @project.update_attributes(params[:project])
|
if @project.update_attributes(project_params)
|
||||||
render json: { notice: I18n.t('flash.project.saved') }
|
render json: { notice: I18n.t('flash.project.saved') }
|
||||||
else
|
else
|
||||||
render json: { error: I18n.t('flash.project.save_error') }, status: 422
|
render json: { error: I18n.t('flash.project.save_error') }, status: 422
|
||||||
|
@ -95,7 +94,7 @@ class Projects::ProjectsController < Projects::BaseController
|
||||||
|
|
||||||
def schedule
|
def schedule
|
||||||
authorize @project
|
authorize @project
|
||||||
p_to_r = @project.project_to_repositories.where(repository_id: params[:repository_id]).first
|
p_to_r = @project.project_to_repositories.find_by(repository_id: params[:repository_id])
|
||||||
unless p_to_r.repository.publish_without_qa
|
unless p_to_r.repository.publish_without_qa
|
||||||
authorize p_to_r.repository.platform, :local_admin_manage?
|
authorize p_to_r.repository.platform, :local_admin_manage?
|
||||||
end
|
end
|
||||||
|
@ -143,7 +142,7 @@ class Projects::ProjectsController < Projects::BaseController
|
||||||
def sections
|
def sections
|
||||||
authorize @project, :update?
|
authorize @project, :update?
|
||||||
if request.patch?
|
if request.patch?
|
||||||
if @project.update_attributes(params[:project])
|
if @project.update_attributes(project_params)
|
||||||
flash[:notice] = t('flash.project.saved')
|
flash[:notice] = t('flash.project.saved')
|
||||||
redirect_to sections_project_path(@project)
|
redirect_to sections_project_path(@project)
|
||||||
else
|
else
|
||||||
|
@ -192,6 +191,10 @@ class Projects::ProjectsController < Projects::BaseController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def project_params
|
||||||
|
subject_params(Project)
|
||||||
|
end
|
||||||
|
|
||||||
def who_owns
|
def who_owns
|
||||||
@who_owns = (@project.try(:owner_type) == 'User' ? :me : :group)
|
@who_owns = (@project.try(:owner_type) == 'User' ? :me : :group)
|
||||||
end
|
end
|
||||||
|
|
|
@ -34,7 +34,7 @@ class Projects::PullRequestsController < Projects::BaseController
|
||||||
to_project = find_destination_project
|
to_project = find_destination_project
|
||||||
authorize to_project, :show?
|
authorize to_project, :show?
|
||||||
|
|
||||||
@pull = to_project.pull_requests.new pull_params
|
@pull = to_project.pull_requests.build pull_params
|
||||||
@issue = @pull.issue
|
@issue = @pull.issue
|
||||||
@pull.issue.assignee_id = (params[:issue] || {})[:assignee_id] if policy(to_project).write?
|
@pull.issue.assignee_id = (params[:issue] || {})[:assignee_id] if policy(to_project).write?
|
||||||
@pull.issue.user, @pull.issue.project, @pull.from_project = current_user, to_project, @project
|
@pull.issue.user, @pull.issue.project, @pull.from_project = current_user, to_project, @project
|
||||||
|
@ -131,7 +131,7 @@ class Projects::PullRequestsController < Projects::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def pull_params
|
def pull_params
|
||||||
@pull_params ||= params[:pull_request].presence
|
@pull_params ||= subject_params(PullRequest).presence
|
||||||
end
|
end
|
||||||
|
|
||||||
def json_for_autocomplete_base items
|
def json_for_autocomplete_base items
|
||||||
|
|
|
@ -7,7 +7,7 @@ class Users::SettingsController < Users::BaseController
|
||||||
def profile
|
def profile
|
||||||
if request.patch?
|
if request.patch?
|
||||||
send_confirmation = params[:user][:email] != @user.email
|
send_confirmation = params[:user][:email] != @user.email
|
||||||
if @user.update_without_password(params[:user])
|
if @user.update_without_password(user_params)
|
||||||
update_avatar(@user, params)
|
update_avatar(@user, params)
|
||||||
if send_confirmation
|
if send_confirmation
|
||||||
@user.confirmed_at = @user.confirmation_sent_at = nil
|
@user.confirmed_at = @user.confirmation_sent_at = nil
|
||||||
|
@ -29,7 +29,7 @@ class Users::SettingsController < Users::BaseController
|
||||||
|
|
||||||
def private
|
def private
|
||||||
if request.patch?
|
if request.patch?
|
||||||
if @user.update_with_password(params[:user])
|
if @user.update_with_password(user_params)
|
||||||
flash[:notice] = t('flash.user.saved')
|
flash[:notice] = t('flash.user.saved')
|
||||||
redirect_to private_settings_path and return
|
redirect_to private_settings_path and return
|
||||||
end
|
end
|
||||||
|
@ -40,7 +40,7 @@ class Users::SettingsController < Users::BaseController
|
||||||
|
|
||||||
def notifiers
|
def notifiers
|
||||||
if request.patch?
|
if request.patch?
|
||||||
if @user.notifier.update_attributes(params[:settings_notifier])
|
if @user.notifier.update_attributes(settings_notifier_params)
|
||||||
flash[:notice] = I18n.t("flash.settings.saved")
|
flash[:notice] = I18n.t("flash.settings.saved")
|
||||||
redirect_to notifiers_settings_path and return
|
redirect_to notifiers_settings_path and return
|
||||||
end
|
end
|
||||||
|
@ -51,7 +51,7 @@ class Users::SettingsController < Users::BaseController
|
||||||
def builds_settings
|
def builds_settings
|
||||||
@user.builds_setting ||= @user.build_builds_setting
|
@user.builds_setting ||= @user.build_builds_setting
|
||||||
if request.patch?
|
if request.patch?
|
||||||
if @user.builds_setting.update_attributes(params[:user_builds_setting])
|
if @user.builds_setting.update_attributes(user_builds_setting_params)
|
||||||
flash[:notice] = I18n.t("flash.settings.saved")
|
flash[:notice] = I18n.t("flash.settings.saved")
|
||||||
redirect_to builds_settings_settings_path and return
|
redirect_to builds_settings_settings_path and return
|
||||||
end
|
end
|
||||||
|
@ -59,4 +59,18 @@ class Users::SettingsController < Users::BaseController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def settings_notifier_params
|
||||||
|
subject_params(SettingsNotifier)
|
||||||
|
end
|
||||||
|
|
||||||
|
def user_params
|
||||||
|
subject_params(User)
|
||||||
|
end
|
||||||
|
|
||||||
|
def user_builds_setting_params
|
||||||
|
subject_params(UserBuildsSetting)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,7 +8,7 @@ class Users::SshKeysController < Users::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@ssh_key = current_user.ssh_keys.new params[:ssh_key]
|
@ssh_key = current_user.ssh_keys.new ssh_key_params
|
||||||
|
|
||||||
if @ssh_key.save
|
if @ssh_key.save
|
||||||
flash[:notice] = t 'flash.ssh_keys.saved'
|
flash[:notice] = t 'flash.ssh_keys.saved'
|
||||||
|
@ -29,4 +29,10 @@ class Users::SshKeysController < Users::BaseController
|
||||||
redirect_to ssh_keys_path
|
redirect_to ssh_keys_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def ssh_key_params
|
||||||
|
subject_params(SshKey)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,8 +9,6 @@ class ActivityFeed < ActiveRecord::Base
|
||||||
belongs_to :creator, class_name: 'User'
|
belongs_to :creator, class_name: 'User'
|
||||||
serialize :data
|
serialize :data
|
||||||
|
|
||||||
attr_accessible :user, :kind, :data, :project_owner, :project_name, :creator_id
|
|
||||||
|
|
||||||
default_scope { order created_at: :desc }
|
default_scope { order created_at: :desc }
|
||||||
scope :outdated, -> { offset(1000) }
|
scope :outdated, -> { offset(1000) }
|
||||||
scope :by_project_name, ->(name) { where(project_name: name) if name.present? }
|
scope :by_project_name, ->(name) { where(project_name: name) if name.present? }
|
||||||
|
|
|
@ -12,8 +12,6 @@ class Advisory < ActiveRecord::Base
|
||||||
after_create :generate_advisory_id
|
after_create :generate_advisory_id
|
||||||
before_save :normalize_references, if: :references_changed?
|
before_save :normalize_references, if: :references_changed?
|
||||||
|
|
||||||
attr_accessible :description, :references
|
|
||||||
|
|
||||||
ID_TEMPLATE = 'ROSA-%<type>s-%<year>d:%<id>04d'
|
ID_TEMPLATE = 'ROSA-%<type>s-%<year>d:%<id>04d'
|
||||||
ID_STRING_TEMPLATE = 'ROSA-%<type>s-%<year>04s:%<id>04s'
|
ID_STRING_TEMPLATE = 'ROSA-%<type>s-%<year>04s:%<id>04s'
|
||||||
TYPES = {'security' => 'SA', 'bugfix' => 'A'}
|
TYPES = {'security' => 'SA', 'bugfix' => 'A'}
|
||||||
|
|
|
@ -15,6 +15,4 @@ class Avatar < ActiveRecord::Base
|
||||||
validates_attachment_size :avatar, less_than_or_equal_to: MAX_AVATAR_SIZE
|
validates_attachment_size :avatar, less_than_or_equal_to: MAX_AVATAR_SIZE
|
||||||
validates_attachment_content_type :avatar, content_type: /\Aimage/
|
validates_attachment_content_type :avatar, content_type: /\Aimage/
|
||||||
validates_attachment_file_name :avatar, matches: [ /(png|jpe?g|gif|bmp|tif?f)\z/i ]
|
validates_attachment_file_name :avatar, matches: [ /(png|jpe?g|gif|bmp|tif?f)\z/i ]
|
||||||
|
|
||||||
attr_accessible :avatar
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -88,13 +88,6 @@ class BuildList < ActiveRecord::Base
|
||||||
before_validation :prepare_extra_params, on: :create
|
before_validation :prepare_extra_params, on: :create
|
||||||
before_validation :prepare_auto_publish_status, on: :create
|
before_validation :prepare_auto_publish_status, on: :create
|
||||||
|
|
||||||
attr_accessible :include_repos, :auto_publish, :build_for_platform_id, :commit_hash,
|
|
||||||
:arch_id, :project_id, :save_to_repository_id, :update_type,
|
|
||||||
:save_to_platform_id, :project_version, :auto_create_container,
|
|
||||||
:extra_repositories, :extra_build_lists, :extra_params,
|
|
||||||
:include_testing_subrepository, :auto_publish_status,
|
|
||||||
:use_cached_chroot, :use_extra_tests, :save_buildroot
|
|
||||||
|
|
||||||
LIVE_TIME = 4.week # for unpublished
|
LIVE_TIME = 4.week # for unpublished
|
||||||
MAX_LIVE_TIME = 3.month # for published
|
MAX_LIVE_TIME = 3.month # for published
|
||||||
STATUSES, HUMAN_STATUSES = [], {}
|
STATUSES, HUMAN_STATUSES = [], {}
|
||||||
|
|
|
@ -2,7 +2,7 @@ class BuildList::Item < ActiveRecord::Base
|
||||||
|
|
||||||
belongs_to :build_list, touch: true
|
belongs_to :build_list, touch: true
|
||||||
|
|
||||||
attr_protected :build_list_id
|
# attr_protected :build_list_id
|
||||||
|
|
||||||
GIT_ERROR = 5
|
GIT_ERROR = 5
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,6 @@ class BuildList::Package < ActiveRecord::Base
|
||||||
|
|
||||||
serialize :dependent_packages, Array
|
serialize :dependent_packages, Array
|
||||||
|
|
||||||
attr_accessible :fullname, :name, :release, :version, :sha1, :epoch, :dependent_packages
|
|
||||||
|
|
||||||
validates :build_list, :build_list_id, :project, :project_id,
|
validates :build_list, :build_list_id, :project, :project_id,
|
||||||
:platform, :platform_id, :fullname,
|
:platform, :platform_id, :fullname,
|
||||||
:package_type, :name, :release, :version,
|
:package_type, :name, :release, :version,
|
||||||
|
|
|
@ -18,7 +18,6 @@ class BuildScript < ActiveRecord::Base
|
||||||
|
|
||||||
before_validation :attach_project
|
before_validation :attach_project
|
||||||
attr_writer :project_name
|
attr_writer :project_name
|
||||||
attr_accessible :project_name, :treeish, :commit, :sha1, :status
|
|
||||||
|
|
||||||
state_machine :status, initial: :active do
|
state_machine :status, initial: :active do
|
||||||
event(:disable) { transition active: :blocked }
|
event(:disable) { transition active: :blocked }
|
||||||
|
|
|
@ -2,14 +2,11 @@ class Collaborator
|
||||||
include ActiveModel::Conversion
|
include ActiveModel::Conversion
|
||||||
include ActiveModel::Validations
|
include ActiveModel::Validations
|
||||||
include ActiveModel::Serializers::JSON
|
include ActiveModel::Serializers::JSON
|
||||||
include ActiveModel::MassAssignmentSecurity
|
|
||||||
extend ActiveModel::Naming
|
extend ActiveModel::Naming
|
||||||
|
|
||||||
attr_accessor :role, :actor, :project, :relation
|
attr_accessor :role, :actor, :project, :relation
|
||||||
attr_reader :id, :actor_id, :actor_type, :actor_name, :project_id
|
attr_reader :id, :actor_id, :actor_type, :actor_name, :project_id
|
||||||
|
|
||||||
attr_accessible :role
|
|
||||||
|
|
||||||
delegate :new_record?, to: :relation
|
delegate :new_record?, to: :relation
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
|
@ -56,7 +53,7 @@ class Collaborator
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_attributes(attributes, options = {})
|
def update_attributes(attributes, options = {})
|
||||||
sanitize_for_mass_assignment(attributes, options[:as]).each_pair do |k, v|
|
attributes.each_pair do |k, v|
|
||||||
send("#{k}=", v)
|
send("#{k}=", v)
|
||||||
end
|
end
|
||||||
save
|
save
|
||||||
|
|
|
@ -22,8 +22,6 @@ class Comment < ActiveRecord::Base
|
||||||
after_create :subscribe_on_reply, unless: ->(c) { c.commit_comment? }
|
after_create :subscribe_on_reply, unless: ->(c) { c.commit_comment? }
|
||||||
after_create :subscribe_users
|
after_create :subscribe_users
|
||||||
|
|
||||||
attr_accessible :body, :data
|
|
||||||
|
|
||||||
def commentable
|
def commentable
|
||||||
commit_comment? ? project.repo.commit(Comment.hex_to_commit_hash commentable_id) : super
|
commit_comment? ? project.repo.commit(Comment.hex_to_commit_hash commentable_id) : super
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,8 +15,6 @@ module Autostart
|
||||||
included do
|
included do
|
||||||
validates :autostart_status, numericality: true,
|
validates :autostart_status, numericality: true,
|
||||||
inclusion: {in: AUTOSTART_STATUSES}, allow_blank: true
|
inclusion: {in: AUTOSTART_STATUSES}, allow_blank: true
|
||||||
|
|
||||||
attr_accessible :autostart_status
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def human_autostart_status
|
def human_autostart_status
|
||||||
|
|
|
@ -37,7 +37,7 @@ module BuildListObserver
|
||||||
end
|
end
|
||||||
build_count = statistic.build_count.to_i
|
build_count = statistic.build_count.to_i
|
||||||
new_av_time = ( statistic.average_build_time * build_count + duration.to_i ) / ( build_count + 1 )
|
new_av_time = ( statistic.average_build_time * build_count + duration.to_i ) / ( build_count + 1 )
|
||||||
statistic.update_attributes({average_build_time: new_av_time, build_count: build_count + 1}, without_protection: true)
|
statistic.update_attributes(average_build_time: new_av_time, build_count: build_count + 1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,8 +4,6 @@ module DefaultBranchable
|
||||||
included do
|
included do
|
||||||
validates :default_branch,
|
validates :default_branch,
|
||||||
length: { maximum: 100 }
|
length: { maximum: 100 }
|
||||||
|
|
||||||
attr_accessible :default_branch
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,9 +7,6 @@ module ExternalNodable
|
||||||
validates :external_nodes,
|
validates :external_nodes,
|
||||||
inclusion: { in: EXTERNAL_NODES },
|
inclusion: { in: EXTERNAL_NODES },
|
||||||
allow_blank: true
|
allow_blank: true
|
||||||
|
|
||||||
|
|
||||||
attr_accessible :external_nodes
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,22 +17,20 @@ module Feed::Comment
|
||||||
if can_notify_on_new_comment?(subscribe)
|
if can_notify_on_new_comment?(subscribe)
|
||||||
UserMailer.new_comment_notification(self, subscribe.user_id).deliver unless own_comment?(subscribe.user)
|
UserMailer.new_comment_notification(self, subscribe.user_id).deliver unless own_comment?(subscribe.user)
|
||||||
ActivityFeed.create(
|
ActivityFeed.create(
|
||||||
{
|
user_id: subscribe.user_id,
|
||||||
user_id: subscribe.user_id,
|
kind: 'new_comment_notification',
|
||||||
kind: 'new_comment_notification',
|
project_owner: project.owner_uname,
|
||||||
project_owner: project.owner_uname,
|
project_name: project.name,
|
||||||
project_name: project.name,
|
creator_id: user_id,
|
||||||
creator_id: user_id,
|
data: {
|
||||||
data: {
|
creator_name: user.name,
|
||||||
creator_name: user.name,
|
creator_email: user.email,
|
||||||
creator_email: user.email,
|
comment_body: body.truncate(100, omission: '…'),
|
||||||
comment_body: body.truncate(100, omission: '…'),
|
issue_title: commentable.title,
|
||||||
issue_title: commentable.title,
|
issue_serial_id: commentable.serial_id,
|
||||||
issue_serial_id: commentable.serial_id,
|
project_id: commentable.project.id,
|
||||||
project_id: commentable.project.id,
|
comment_id: id
|
||||||
comment_id: id
|
}
|
||||||
}
|
|
||||||
}, without_protection: true
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -46,23 +44,21 @@ module Feed::Comment
|
||||||
UserMailer.new_comment_notification(self, subscribe.user_id).deliver
|
UserMailer.new_comment_notification(self, subscribe.user_id).deliver
|
||||||
end
|
end
|
||||||
ActivityFeed.create(
|
ActivityFeed.create(
|
||||||
{
|
user_id: subscribe.user_id,
|
||||||
user_id: subscribe.user_id,
|
kind: 'new_comment_commit_notification',
|
||||||
kind: 'new_comment_commit_notification',
|
project_owner: project.owner_uname,
|
||||||
project_owner: project.owner_uname,
|
project_name: project.name,
|
||||||
project_name: project.name,
|
creator_id: user_id,
|
||||||
creator_id: user_id,
|
data: {
|
||||||
data: {
|
creator_name: user.name,
|
||||||
creator_name: user.name,
|
creator_email: user.email,
|
||||||
creator_email: user.email,
|
|
||||||
|
|
||||||
comment_body: body.truncate(100, omission: '…'),
|
comment_body: body.truncate(100, omission: '…'),
|
||||||
commit_message: commentable.message.truncate(70, omission: '…'),
|
commit_message: commentable.message.truncate(70, omission: '…'),
|
||||||
commit_id: commentable.id,
|
commit_id: commentable.id,
|
||||||
project_id: project.id,
|
project_id: project.id,
|
||||||
comment_id: id
|
comment_id: id
|
||||||
}
|
}
|
||||||
}, without_protection: true
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -41,8 +41,6 @@ module ProductBuildLists::Statusable
|
||||||
presence: true,
|
presence: true,
|
||||||
inclusion: { in: STATUSES }
|
inclusion: { in: STATUSES }
|
||||||
|
|
||||||
attr_accessible :status
|
|
||||||
|
|
||||||
before_destroy :can_destroy?
|
before_destroy :can_destroy?
|
||||||
|
|
||||||
state_machine :status, initial: :build_pending do
|
state_machine :status, initial: :build_pending do
|
||||||
|
|
|
@ -18,7 +18,6 @@ module TimeLiving
|
||||||
}
|
}
|
||||||
|
|
||||||
before_validation :convert_time_living
|
before_validation :convert_time_living
|
||||||
attr_accessible :time_living
|
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
|
@ -12,7 +12,6 @@ class EventLog < ActiveRecord::Base
|
||||||
self.eventable_name ||= eventable.name if eventable.respond_to?(:name)
|
self.eventable_name ||= eventable.name if eventable.respond_to?(:name)
|
||||||
end
|
end
|
||||||
# after_create { self.class.current_controller = nil }
|
# after_create { self.class.current_controller = nil }
|
||||||
attr_accessible :kind, :message, :eventable, :eventable_name
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def create_with_current_controller(attributes)
|
def create_with_current_controller(attributes)
|
||||||
|
|
|
@ -5,15 +5,12 @@ class Feedback
|
||||||
include ActiveModel::Conversion
|
include ActiveModel::Conversion
|
||||||
include ActiveModel::Validations
|
include ActiveModel::Validations
|
||||||
include ActiveModel::Serializers::JSON
|
include ActiveModel::Serializers::JSON
|
||||||
include ActiveModel::MassAssignmentSecurity
|
|
||||||
extend ActiveModel::Naming
|
extend ActiveModel::Naming
|
||||||
|
|
||||||
self.include_root_in_json = false
|
self.include_root_in_json = false
|
||||||
|
|
||||||
attr_accessor :name, :email, :subject, :message
|
attr_accessor :name, :email, :subject, :message
|
||||||
|
|
||||||
attr_accessible :name, :email, :subject, :message
|
|
||||||
|
|
||||||
validates :name, :subject, :message, presence: true
|
validates :name, :subject, :message, presence: true
|
||||||
validates :email, presence: true,
|
validates :email, presence: true,
|
||||||
format: { with: /\A[^@]+@([^@\.]+\.)+[^@\.]+\z/,
|
format: { with: /\A[^@]+@([^@\.]+\.)+[^@\.]+\z/,
|
||||||
|
@ -24,7 +21,7 @@ class Feedback
|
||||||
if args.respond_to? :name and args.respond_to? :email
|
if args.respond_to? :name and args.respond_to? :email
|
||||||
self.name, self.email = args.name, args.email
|
self.name, self.email = args.name, args.email
|
||||||
elsif args.respond_to? :each_pair
|
elsif args.respond_to? :each_pair
|
||||||
sanitize_for_mass_assignment(args, options[:as]).each_pair do |k, v|
|
args.each_pair do |k, v|
|
||||||
send("#{k}=", v)
|
send("#{k}=", v)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|
|
@ -8,8 +8,6 @@ class FlashNotify < ActiveRecord::Base
|
||||||
validates :status, inclusion: {in: STATUSES}
|
validates :status, inclusion: {in: STATUSES}
|
||||||
validates :body_ru, :body_en, :status, presence: true
|
validates :body_ru, :body_en, :status, presence: true
|
||||||
|
|
||||||
attr_accessible :body_ru, :body_en, :status, :published
|
|
||||||
|
|
||||||
def hash_id
|
def hash_id
|
||||||
@digest ||= Digest::MD5.hexdigest("#{self.id}-#{self.updated_at}")
|
@digest ||= Digest::MD5.hexdigest("#{self.id}-#{self.updated_at}")
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,7 +32,6 @@ class Group < Avatar
|
||||||
joins(:actors).where('relations.role' => ['admin', 'writer'], 'relations.actor_id' => actor.id, 'relations.actor_type' => 'User')
|
joins(:actors).where('relations.role' => ['admin', 'writer'], 'relations.actor_id' => actor.id, 'relations.actor_type' => 'User')
|
||||||
}
|
}
|
||||||
|
|
||||||
attr_accessible :uname, :description, :delete_avatar
|
|
||||||
attr_readonly :uname
|
attr_readonly :uname
|
||||||
|
|
||||||
attr_accessor :delete_avatar
|
attr_accessor :delete_avatar
|
||||||
|
|
|
@ -9,8 +9,6 @@ class Hook < ActiveRecord::Base
|
||||||
validates :project, :data, presence: true
|
validates :project, :data, presence: true
|
||||||
validates :name, presence: true, inclusion: {in: NAMES}
|
validates :name, presence: true, inclusion: {in: NAMES}
|
||||||
|
|
||||||
attr_accessible :data, :name
|
|
||||||
|
|
||||||
serialize :data, Hash
|
serialize :data, Hash
|
||||||
|
|
||||||
scope :for_name, ->(name) { where(name: name) if name.present? }
|
scope :for_name, ->(name) { where(name: name) if name.present? }
|
||||||
|
|
|
@ -47,9 +47,8 @@ class Issue < ActiveRecord::Base
|
||||||
before_create :update_statistic
|
before_create :update_statistic
|
||||||
before_update :update_statistic
|
before_update :update_statistic
|
||||||
|
|
||||||
attr_accessible :labelings_attributes, :title, :body, :assignee_id
|
|
||||||
accepts_nested_attributes_for :labelings,
|
accepts_nested_attributes_for :labelings,
|
||||||
reject_if: lambda {|attributes| attributes['label_id'].blank?},
|
reject_if: -> (attributes) { attributes['label_id'].blank? },
|
||||||
allow_destroy: true
|
allow_destroy: true
|
||||||
|
|
||||||
scope :opened, -> { where(status: [STATUS_OPEN, STATUS_REOPEN]) }
|
scope :opened, -> { where(status: [STATUS_OPEN, STATUS_REOPEN]) }
|
||||||
|
|
|
@ -4,7 +4,6 @@ class KeyPair < ActiveRecord::Base
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
|
|
||||||
attr_accessor :fingerprint
|
attr_accessor :fingerprint
|
||||||
attr_accessible :public, :secret, :repository_id
|
|
||||||
attr_encrypted :secret, key: APP_CONFIG['keys']['key_pair_secret_key']
|
attr_encrypted :secret, key: APP_CONFIG['keys']['key_pair_secret_key']
|
||||||
|
|
||||||
validates :repository, :user, presence: true
|
validates :repository, :user, presence: true
|
||||||
|
|
|
@ -8,6 +8,4 @@ class Label < ActiveRecord::Base
|
||||||
|
|
||||||
validates :color, presence: true
|
validates :color, presence: true
|
||||||
validates :color, format: { with: /\A([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})\z/, message: I18n.t('layout.issues.invalid_labels') }
|
validates :color, format: { with: /\A([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})\z/, message: I18n.t('layout.issues.invalid_labels') }
|
||||||
|
|
||||||
attr_accessible :name, :color
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
class Labeling < ActiveRecord::Base
|
class Labeling < ActiveRecord::Base
|
||||||
belongs_to :issue
|
belongs_to :issue
|
||||||
belongs_to :label
|
belongs_to :label
|
||||||
|
|
||||||
attr_accessible :id, :label_id
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -45,10 +45,6 @@ class MassBuild < ActiveRecord::Base
|
||||||
scope :search, -> (q) { where("#{table_name}.description ILIKE ?", "%#{q}%") if q.present? }
|
scope :search, -> (q) { where("#{table_name}.description ILIKE ?", "%#{q}%") if q.present? }
|
||||||
|
|
||||||
attr_accessor :arches, :repositories
|
attr_accessor :arches, :repositories
|
||||||
attr_accessible :arches, :auto_publish_status, :projects_list, :build_for_platform_id,
|
|
||||||
:extra_repositories, :extra_build_lists, :increase_release_tag,
|
|
||||||
:use_cached_chroot, :use_extra_tests, :description, :extra_mass_builds,
|
|
||||||
:include_testing_subrepository, :auto_create_container, :repositories
|
|
||||||
|
|
||||||
validates :save_to_platform_id,
|
validates :save_to_platform_id,
|
||||||
:build_for_platform_id,
|
:build_for_platform_id,
|
||||||
|
|
|
@ -23,8 +23,6 @@ class NodeInstruction < ActiveRecord::Base
|
||||||
errors.add(:status, 'Can be only single active instruction for each node') if !disabled? && NodeInstruction.duplicate(id.to_i, user_id).exists?
|
errors.add(:status, 'Can be only single active instruction for each node') if !disabled? && NodeInstruction.duplicate(id.to_i, user_id).exists?
|
||||||
}
|
}
|
||||||
|
|
||||||
attr_accessible :instruction, :user_id, :output, :status
|
|
||||||
|
|
||||||
state_machine :status, initial: :ready do
|
state_machine :status, initial: :ready do
|
||||||
|
|
||||||
after_transition(on: :restart) do |instruction, transition|
|
after_transition(on: :restart) do |instruction, transition|
|
||||||
|
|
|
@ -98,18 +98,6 @@ class Platform < ActiveRecord::Base
|
||||||
after_destroy -> { remove_symlink_directory unless hidden? }
|
after_destroy -> { remove_symlink_directory unless hidden? }
|
||||||
|
|
||||||
accepts_nested_attributes_for :platform_arch_settings, allow_destroy: true
|
accepts_nested_attributes_for :platform_arch_settings, allow_destroy: true
|
||||||
attr_accessible :name,
|
|
||||||
:distrib_type,
|
|
||||||
:parent_platform_id,
|
|
||||||
:platform_type,
|
|
||||||
:owner,
|
|
||||||
:visibility,
|
|
||||||
:description,
|
|
||||||
:released,
|
|
||||||
:platform_arch_settings_attributes,
|
|
||||||
:automatic_metadata_regeneration,
|
|
||||||
:admin_id,
|
|
||||||
:term
|
|
||||||
|
|
||||||
attr_accessor :admin_id, :term
|
attr_accessor :admin_id, :term
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,4 @@ class PlatformArchSetting < ActiveRecord::Base
|
||||||
|
|
||||||
scope :by_arch, ->(arch) { where(arch_id: arch) if arch.present? }
|
scope :by_arch, ->(arch) { where(arch_id: arch) if arch.present? }
|
||||||
scope :by_default, -> { where(default: true) }
|
scope :by_default, -> { where(default: true) }
|
||||||
|
|
||||||
attr_accessible :arch_id, :platform_id, :default
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,13 +16,6 @@ class Product < ActiveRecord::Base
|
||||||
|
|
||||||
scope :recent, -> { order(:name) }
|
scope :recent, -> { order(:name) }
|
||||||
|
|
||||||
attr_accessible :name,
|
|
||||||
:description,
|
|
||||||
:project_id,
|
|
||||||
:main_script,
|
|
||||||
:params,
|
|
||||||
:platform_id,
|
|
||||||
:project_version
|
|
||||||
attr_readonly :platform_id
|
attr_readonly :platform_id
|
||||||
|
|
||||||
def full_clone(attrs = {})
|
def full_clone(attrs = {})
|
||||||
|
|
|
@ -28,16 +28,6 @@ class ProductBuildList < ActiveRecord::Base
|
||||||
validates :main_script, :params, length: { maximum: 255 }
|
validates :main_script, :params, length: { maximum: 255 }
|
||||||
|
|
||||||
attr_accessor :base_url, :product_name
|
attr_accessor :base_url, :product_name
|
||||||
attr_accessible :base_url,
|
|
||||||
:branch,
|
|
||||||
:project_id,
|
|
||||||
:main_script,
|
|
||||||
:params,
|
|
||||||
:project_version,
|
|
||||||
:commit_hash,
|
|
||||||
:product_id,
|
|
||||||
:not_delete,
|
|
||||||
:product_name
|
|
||||||
|
|
||||||
attr_readonly :product_id
|
attr_readonly :product_id
|
||||||
serialize :results, Array
|
serialize :results, Array
|
||||||
|
|
|
@ -62,10 +62,6 @@ class Project < ActiveRecord::Base
|
||||||
errors.delete :project_to_repositories
|
errors.delete :project_to_repositories
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_accessible :name, :description, :visibility, :srpm, :is_package,
|
|
||||||
:has_issues, :has_wiki, :maintainer_id, :publish_i686_into_x86_64,
|
|
||||||
:url, :srpms_list, :mass_import, :add_to_repository_id, :architecture_dependent,
|
|
||||||
:autostart_status
|
|
||||||
attr_readonly :owner_id, :owner_type
|
attr_readonly :owner_id, :owner_type
|
||||||
|
|
||||||
before_validation :truncate_name, on: :create
|
before_validation :truncate_name, on: :create
|
||||||
|
|
|
@ -5,6 +5,4 @@ class ProjectStatistic < ActiveRecord::Base
|
||||||
|
|
||||||
validates :arch, :project, :average_build_time, :build_count, presence: true
|
validates :arch, :project, :average_build_time, :build_count, presence: true
|
||||||
validates :project_id, uniqueness: { scope: :arch_id }
|
validates :project_id, uniqueness: { scope: :arch_id }
|
||||||
|
|
||||||
attr_accessible :average_build_time, :build_count
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,8 +11,6 @@ class ProjectTag < ActiveRecord::Base
|
||||||
validates :project, :commit_id, :sha1, :tag_name, :format_id, presence: true
|
validates :project, :commit_id, :sha1, :tag_name, :format_id, presence: true
|
||||||
validates :project_id, uniqueness: { scope: [:tag_name, :format_id] }
|
validates :project_id, uniqueness: { scope: [:tag_name, :format_id] }
|
||||||
|
|
||||||
attr_accessible :project_id, :commit_id, :sha1, :tag_name, :format_id
|
|
||||||
|
|
||||||
def sha1_of_file_store_files
|
def sha1_of_file_store_files
|
||||||
[sha1]
|
[sha1]
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,8 +12,6 @@ class ProjectToRepository < ActiveRecord::Base
|
||||||
|
|
||||||
validate :one_project_in_platform_repositories, on: :create
|
validate :one_project_in_platform_repositories, on: :create
|
||||||
|
|
||||||
attr_accessible :project, :project_id
|
|
||||||
|
|
||||||
AUTOSTART_OPTIONS.each do |field|
|
AUTOSTART_OPTIONS.each do |field|
|
||||||
store_accessor :autostart_options, field
|
store_accessor :autostart_options, field
|
||||||
end
|
end
|
||||||
|
|
|
@ -49,7 +49,6 @@ class PullRequest < ActiveRecord::Base
|
||||||
after_destroy :clean_dir
|
after_destroy :clean_dir
|
||||||
|
|
||||||
accepts_nested_attributes_for :issue
|
accepts_nested_attributes_for :issue
|
||||||
attr_accessible :issue_attributes, :to_ref, :from_ref
|
|
||||||
|
|
||||||
scope :needed_checking, -> { includes(:issue).where(issues: { status: [STATUS_OPEN, STATUS_BLOCKED, STATUS_READY] }) }
|
scope :needed_checking, -> { includes(:issue).where(issues: { status: [STATUS_OPEN, STATUS_BLOCKED, STATUS_READY] }) }
|
||||||
scope :not_closed_or_merged, -> { needed_checking }
|
scope :not_closed_or_merged, -> { needed_checking }
|
||||||
|
|
|
@ -15,8 +15,6 @@ class Relation < ActiveRecord::Base
|
||||||
# validate { errors.add(:actor, :taken) if Relation.where(actor_type: self.actor_type, actor_id: self.actor_id).present? }
|
# validate { errors.add(:actor, :taken) if Relation.where(actor_type: self.actor_type, actor_id: self.actor_id).present? }
|
||||||
before_validation :add_default_role
|
before_validation :add_default_role
|
||||||
|
|
||||||
attr_accessible :actor_id, :actor_type, :target_id, :target_type, :actor, :target, :role
|
|
||||||
|
|
||||||
scope :by_user_through_groups, ->(u) {
|
scope :by_user_through_groups, ->(u) {
|
||||||
where("actor_type = 'User' AND actor_id = ? OR actor_type = 'Group' AND actor_id IN (?)", u.id, u.group_ids)
|
where("actor_type = 'User' AND actor_id = ? OR actor_type = 'Group' AND actor_id IN (?)", u.id, u.group_ids)
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,13 +36,6 @@ class Repository < ActiveRecord::Base
|
||||||
|
|
||||||
before_destroy :detele_directory
|
before_destroy :detele_directory
|
||||||
|
|
||||||
attr_accessible :name,
|
|
||||||
:description,
|
|
||||||
:publish_without_qa,
|
|
||||||
:synchronizing_publications,
|
|
||||||
:publish_builds_only_from_branch,
|
|
||||||
:build_for_platform_id
|
|
||||||
|
|
||||||
attr_readonly :name, :platform_id
|
attr_readonly :name, :platform_id
|
||||||
attr_accessor :projects_list, :build_for_platform_id
|
attr_accessor :projects_list, :build_for_platform_id
|
||||||
|
|
||||||
|
|
|
@ -31,8 +31,6 @@ class RepositoryStatus < ActiveRecord::Base
|
||||||
validates :repository, :platform, presence: true
|
validates :repository, :platform, presence: true
|
||||||
validates :repository_id, uniqueness: { scope: :platform_id }
|
validates :repository_id, uniqueness: { scope: :platform_id }
|
||||||
|
|
||||||
attr_accessible :platform_id, :repository_id
|
|
||||||
|
|
||||||
scope :platform_ready, -> { where(platforms: {status: READY}).joins(:platform) }
|
scope :platform_ready, -> { where(platforms: {status: READY}).joins(:platform) }
|
||||||
scope :for_regeneration, -> { where(status: WAITING_FOR_REGENERATION) }
|
scope :for_regeneration, -> { where(status: WAITING_FOR_REGENERATION) }
|
||||||
scope :for_resign, -> { where(status: [WAITING_FOR_RESIGN, WAITING_FOR_RESIGN_AND_REGENERATION]) }
|
scope :for_resign, -> { where(status: [WAITING_FOR_RESIGN, WAITING_FOR_RESIGN_AND_REGENERATION]) }
|
||||||
|
|
|
@ -3,16 +3,4 @@ class SettingsNotifier < ActiveRecord::Base
|
||||||
|
|
||||||
validates :user, presence: true
|
validates :user, presence: true
|
||||||
|
|
||||||
attr_accessible :can_notify,
|
|
||||||
:update_code,
|
|
||||||
:new_comment_commit_owner,
|
|
||||||
:new_comment_commit_repo_owner,
|
|
||||||
:new_comment_commit_commentor,
|
|
||||||
:new_comment,
|
|
||||||
:new_comment_reply,
|
|
||||||
:new_issue,
|
|
||||||
:issue_assign,
|
|
||||||
:new_build,
|
|
||||||
:new_associated_build
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,7 +5,6 @@ class SshKey < ActiveRecord::Base
|
||||||
SHELL_KEY_COMMAND = "sudo -i -u #{APP_CONFIG['shell_user']} ~#{APP_CONFIG['shell_user']}/gitlab-shell/bin/gitlab-keys"
|
SHELL_KEY_COMMAND = "sudo -i -u #{APP_CONFIG['shell_user']} ~#{APP_CONFIG['shell_user']}/gitlab-shell/bin/gitlab-keys"
|
||||||
|
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
attr_accessible :key, :name
|
|
||||||
|
|
||||||
before_validation -> { self.key = key.strip if key.present? }
|
before_validation -> { self.key = key.strip if key.present? }
|
||||||
before_validation :set_fingerprint
|
before_validation :set_fingerprint
|
||||||
|
|
|
@ -41,14 +41,6 @@ class Statistic < ActiveRecord::Base
|
||||||
validates :activity_at,
|
validates :activity_at,
|
||||||
presence: true
|
presence: true
|
||||||
|
|
||||||
attr_accessible :user_id,
|
|
||||||
:email,
|
|
||||||
:project_id,
|
|
||||||
:project_name_with_owner,
|
|
||||||
:key,
|
|
||||||
:counter,
|
|
||||||
:activity_at
|
|
||||||
|
|
||||||
scope :for_period, -> (start_date, end_date) {
|
scope :for_period, -> (start_date, end_date) {
|
||||||
where(activity_at: (start_date..end_date))
|
where(activity_at: (start_date..end_date))
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ class Subscribe < ActiveRecord::Base
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
belongs_to :project
|
belongs_to :project
|
||||||
|
|
||||||
attr_accessible :status, :user_id
|
|
||||||
validates :user, presence: true
|
validates :user, presence: true
|
||||||
|
|
||||||
def commit_subscribe?
|
def commit_subscribe?
|
||||||
|
@ -38,7 +37,7 @@ class Subscribe < ActiveRecord::Base
|
||||||
if subscribe = Subscribe.where(options).first
|
if subscribe = Subscribe.where(options).first
|
||||||
subscribe.update_attributes(status: status)
|
subscribe.update_attributes(status: status)
|
||||||
else
|
else
|
||||||
Subscribe.create(options.merge(status: status), without_protection: true)
|
Subscribe.create options.merge(status: status)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ class Token < ActiveRecord::Base
|
||||||
|
|
||||||
before_validation :generate_token, on: :create
|
before_validation :generate_token, on: :create
|
||||||
|
|
||||||
attr_accessible :description
|
|
||||||
|
|
||||||
state_machine :status, initial: :active do
|
state_machine :status, initial: :active do
|
||||||
event :block do
|
event :block do
|
||||||
transition [:active, :blocked] => :blocked
|
transition [:active, :blocked] => :blocked
|
||||||
|
|
|
@ -56,8 +56,6 @@ class User < Avatar
|
||||||
validates :role, inclusion: { in: EXTENDED_ROLES }, allow_blank: true
|
validates :role, inclusion: { in: EXTENDED_ROLES }, allow_blank: true
|
||||||
validates :language, inclusion: { in: LANGUAGES }, allow_blank: true
|
validates :language, inclusion: { in: LANGUAGES }, allow_blank: true
|
||||||
|
|
||||||
attr_accessible :email, :password, :password_confirmation, :current_password, :remember_me, :login, :name, :uname, :language,
|
|
||||||
:site, :company, :professional_experience, :location, :sound_notifications, :hide_email, :delete_avatar
|
|
||||||
attr_readonly :uname
|
attr_readonly :uname
|
||||||
attr_accessor :login, :delete_avatar
|
attr_accessor :login, :delete_avatar
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,4 @@ class UserBuildsSetting < ActiveRecord::Base
|
||||||
|
|
||||||
validates :user, presence: true
|
validates :user, presence: true
|
||||||
|
|
||||||
attr_accessible :platforms
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,4 +11,14 @@ class AdvisoryPolicy < ApplicationPolicy
|
||||||
end
|
end
|
||||||
alias_method :update?, :create?
|
alias_method :update?, :create?
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(
|
||||||
|
description
|
||||||
|
references
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -57,6 +57,37 @@ class BuildListPolicy < ApplicationPolicy
|
||||||
ProjectPolicy.new(user, record.project).write?
|
ProjectPolicy.new(user, record.project).write?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
pa = %i(
|
||||||
|
arch_id
|
||||||
|
auto_create_container
|
||||||
|
auto_publish
|
||||||
|
auto_publish_status
|
||||||
|
build_for_platform_id
|
||||||
|
commit_hash
|
||||||
|
external_nodes
|
||||||
|
include_testing_subrepository
|
||||||
|
project_id
|
||||||
|
project_version
|
||||||
|
save_buildroot
|
||||||
|
save_to_platform_id
|
||||||
|
save_to_repository_id
|
||||||
|
update_type
|
||||||
|
use_cached_chroot
|
||||||
|
use_extra_tests
|
||||||
|
)
|
||||||
|
pa << {
|
||||||
|
include_repos: [],
|
||||||
|
extra_build_lists: [],
|
||||||
|
extra_repositories: [],
|
||||||
|
extra_params: BuildList::EXTRA_PARAMS,
|
||||||
|
}
|
||||||
|
pa
|
||||||
|
end
|
||||||
|
|
||||||
class Scope < Scope
|
class Scope < Scope
|
||||||
|
|
||||||
def read
|
def read
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
class CollaboratorPolicy < ApplicationPolicy
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(role actor_id actor_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -11,4 +11,11 @@ class CommentPolicy < ApplicationPolicy
|
||||||
end
|
end
|
||||||
alias_method :destroy?, :update?
|
alias_method :destroy?, :update?
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(body data)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,6 +32,15 @@ class GroupPolicy < ApplicationPolicy
|
||||||
!user.guest? && ( is_admin? || owner? )
|
!user.guest? && ( is_admin? || owner? )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
pa = %i(avatar description delete_avatar default_branch)
|
||||||
|
pa << :uname if record.new_record?
|
||||||
|
pa
|
||||||
|
end
|
||||||
|
|
||||||
class Scope < Scope
|
class Scope < Scope
|
||||||
def show
|
def show
|
||||||
scope
|
scope
|
||||||
|
|
|
@ -8,4 +8,11 @@ class HookPolicy < ApplicationPolicy
|
||||||
alias_method :destroy?, :show?
|
alias_method :destroy?, :show?
|
||||||
alias_method :update?, :show?
|
alias_method :update?, :show?
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(data name)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,4 +18,17 @@ class IssuePolicy < ApplicationPolicy
|
||||||
is_admin? || record.user_id == user.id || local_admin?(record.project)
|
is_admin? || record.user_id == user.id || local_admin?(record.project)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
pa = %i(title body)
|
||||||
|
if ProjectPolicy.new(user, record.project).write?
|
||||||
|
pa << :assignee_id
|
||||||
|
pa << { labelings_attributes: %i(id name color label_id _destroy) }
|
||||||
|
pa << { labelings: [] }
|
||||||
|
end
|
||||||
|
pa
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,4 +6,11 @@ class KeyPairPolicy < ApplicationPolicy
|
||||||
end
|
end
|
||||||
alias_method :destroy?, :create?
|
alias_method :destroy?, :create?
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(public secret repository_id)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,4 +15,27 @@ class MassBuildPolicy < ApplicationPolicy
|
||||||
!record.stop_build && create?
|
!record.stop_build && create?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(
|
||||||
|
arches
|
||||||
|
auto_create_container
|
||||||
|
auto_publish_status
|
||||||
|
build_for_platform_id
|
||||||
|
description
|
||||||
|
external_nodes
|
||||||
|
extra_build_lists
|
||||||
|
extra_mass_builds
|
||||||
|
extra_repositories
|
||||||
|
include_testing_subrepository
|
||||||
|
increase_release_tag
|
||||||
|
projects_list
|
||||||
|
repositories
|
||||||
|
use_cached_chroot
|
||||||
|
use_extra_tests
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -62,6 +62,28 @@ class PlatformPolicy < ApplicationPolicy
|
||||||
record.personal? && ( is_admin? || owner? )
|
record.personal? && ( is_admin? || owner? )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(
|
||||||
|
admin_id
|
||||||
|
automatic_metadata_regeneration
|
||||||
|
default_branch
|
||||||
|
description
|
||||||
|
distrib_type
|
||||||
|
name
|
||||||
|
owner
|
||||||
|
parent_platform_id
|
||||||
|
platform_type
|
||||||
|
released
|
||||||
|
term
|
||||||
|
visibility
|
||||||
|
) + [
|
||||||
|
platform_arch_settings_attributes: %i(id arch_id platform_id default time_living)
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
class Scope < Scope
|
class Scope < Scope
|
||||||
|
|
||||||
def related
|
def related
|
||||||
|
|
|
@ -24,4 +24,24 @@ class ProductBuildListPolicy < ApplicationPolicy
|
||||||
is_admin? || ProductPolicy.new(user, record.product).destroy?
|
is_admin? || ProductPolicy.new(user, record.product).destroy?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(
|
||||||
|
base_url
|
||||||
|
branch
|
||||||
|
commit_hash
|
||||||
|
main_script
|
||||||
|
not_delete
|
||||||
|
params
|
||||||
|
product_id
|
||||||
|
product_name
|
||||||
|
project_id
|
||||||
|
project_version
|
||||||
|
status
|
||||||
|
time_living
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,4 +17,21 @@ class ProductPolicy < ApplicationPolicy
|
||||||
alias_method :destroy?, :create?
|
alias_method :destroy?, :create?
|
||||||
alias_method :update?, :create?
|
alias_method :update?, :create?
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(
|
||||||
|
autostart_status
|
||||||
|
description
|
||||||
|
main_script
|
||||||
|
name
|
||||||
|
params
|
||||||
|
platform_id
|
||||||
|
project_id
|
||||||
|
project_version
|
||||||
|
time_living
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -71,6 +71,30 @@ class ProjectPolicy < ApplicationPolicy
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(
|
||||||
|
add_to_repository_id
|
||||||
|
architecture_dependent
|
||||||
|
autostart_status
|
||||||
|
default_branch
|
||||||
|
description
|
||||||
|
has_issues
|
||||||
|
has_wiki
|
||||||
|
is_package
|
||||||
|
maintainer_id
|
||||||
|
mass_import
|
||||||
|
name
|
||||||
|
publish_i686_into_x86_64
|
||||||
|
srpm
|
||||||
|
srpms_list
|
||||||
|
url
|
||||||
|
visibility
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
class Scope < Scope
|
class Scope < Scope
|
||||||
|
|
||||||
def membered
|
def membered
|
||||||
|
|
|
@ -22,4 +22,16 @@ class PullRequestPolicy < ApplicationPolicy
|
||||||
is_admin? || local_writer?(record.to_project)
|
is_admin? || local_writer?(record.to_project)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(
|
||||||
|
body
|
||||||
|
from_ref
|
||||||
|
title
|
||||||
|
to_ref
|
||||||
|
) + [ issue_attributes: %i(title body) ]
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -54,6 +54,20 @@ class RepositoryPolicy < ApplicationPolicy
|
||||||
end
|
end
|
||||||
alias_method :remove_repo_lock_file?, :add_repo_lock_file?
|
alias_method :remove_repo_lock_file?, :add_repo_lock_file?
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(
|
||||||
|
name
|
||||||
|
description
|
||||||
|
publish_without_qa
|
||||||
|
synchronizing_publications
|
||||||
|
publish_builds_only_from_branch
|
||||||
|
build_for_platform_id
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
# Public: Get user ids of repository.
|
# Public: Get user ids of repository.
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
class SettingsNotifierPolicy < ApplicationPolicy
|
||||||
|
|
||||||
|
# Public: Get list of parameters that the user is allowed to alter.
|
||||||
|
#
|
||||||
|
# Returns Array
|
||||||
|
def permitted_attributes
|
||||||
|
%i(
|
||||||
|
can_notify
|
||||||
|
update_code
|
||||||
|
new_comment_commit_owner
|
||||||
|
new_comment_commit_repo_owner
|
||||||
|
new_comment_commit_commentor
|
||||||
|
new_comment
|
||||||
|
new_comment_reply
|
||||||
|
new_issue
|
||||||
|
issue_assign
|
||||||
|
new_build
|
||||||
|
new_associated_build
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue