Merge branch 'master' into 369-bootstrap
This commit is contained in:
commit
4daa857f2c
|
@ -142,6 +142,7 @@ class Ability
|
||||||
can(:read, Product, read_relations_for('products', 'platforms')) {|product| product.platform.main?}
|
can(:read, Product, read_relations_for('products', 'platforms')) {|product| product.platform.main?}
|
||||||
can([:create, :update, :destroy, :clone], Product) {|product| local_admin? product.platform and product.platform.main?}
|
can([:create, :update, :destroy, :clone], Product) {|product| local_admin? product.platform and product.platform.main?}
|
||||||
|
|
||||||
|
can([:create, :cancel], ProductBuildList) {|pbl| can?(:write, pbl.project)}
|
||||||
can([:create, :cancel, :update], ProductBuildList) {|pbl| can?(:update, pbl.product)}
|
can([:create, :cancel, :update], ProductBuildList) {|pbl| can?(:update, pbl.product)}
|
||||||
can(:destroy, ProductBuildList) {|pbl| can?(:destroy, pbl.product)}
|
can(:destroy, ProductBuildList) {|pbl| can?(:destroy, pbl.product)}
|
||||||
|
|
||||||
|
|
|
@ -85,6 +85,8 @@ class ProductBuildList < ActiveRecord::Base
|
||||||
Time.now - LIVE_TIME, Time.now - MAX_LIVE_TIME)
|
Time.now - LIVE_TIME, Time.now - MAX_LIVE_TIME)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
after_initialize :init_project, if: :new_record?
|
||||||
|
|
||||||
after_create :add_job_to_abf_worker_queue
|
after_create :add_job_to_abf_worker_queue
|
||||||
before_destroy :can_destroy?
|
before_destroy :can_destroy?
|
||||||
|
|
||||||
|
@ -158,6 +160,10 @@ class ProductBuildList < ActiveRecord::Base
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def init_project
|
||||||
|
self.project ||= product.try(:project)
|
||||||
|
end
|
||||||
|
|
||||||
def abf_worker_priority
|
def abf_worker_priority
|
||||||
''
|
''
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
json.build_list do
|
json.build_list do
|
||||||
json.(@build_list, :id, :container_status, :status, :duration)
|
json.(@build_list, :id, :container_status, :status, :duration)
|
||||||
json.(@build_list, :update_type, :priority, :new_core)
|
json.(@build_list, :update_type, :priority, :new_core)
|
||||||
json.(@build_list, :advisory, :mass_build)
|
|
||||||
json.(@build_list, :auto_publish_status, :package_version, :commit_hash, :last_published_commit_hash, :auto_create_container, :use_cached_chroot, :use_extra_tests)
|
json.(@build_list, :auto_publish_status, :package_version, :commit_hash, :last_published_commit_hash, :auto_create_container, :use_cached_chroot, :use_extra_tests)
|
||||||
json.build_log_url log_build_list_path(@build_list)
|
json.build_log_url log_build_list_path(@build_list)
|
||||||
|
|
||||||
|
@ -63,14 +62,22 @@ json.build_list do
|
||||||
|
|
||||||
json.extra_params @build_list.extra_params
|
json.extra_params @build_list.extra_params
|
||||||
|
|
||||||
|
if @build_list.advisory
|
||||||
json.advisory do
|
json.advisory do
|
||||||
json.name @build_list.advisory.advisory_id
|
json.name @build_list.advisory.advisory_id
|
||||||
json.(@build_list.advisory, :description)
|
json.(@build_list.advisory, :description)
|
||||||
end if @build_list.advisory
|
end
|
||||||
|
else
|
||||||
|
json.advisory nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if @build_list.mass_build
|
||||||
json.mass_build do
|
json.mass_build do
|
||||||
json.(@build_list.mass_build, :id, :name)
|
json.(@build_list.mass_build, :id, :name)
|
||||||
end if @build_list.mass_build
|
end
|
||||||
|
else
|
||||||
|
json.mass_build nil
|
||||||
|
end
|
||||||
|
|
||||||
json.logs (@build_list.results || []) do |result|
|
json.logs (@build_list.results || []) do |result|
|
||||||
json.file_name result['file_name']
|
json.file_name result['file_name']
|
||||||
|
|
|
@ -2,3 +2,8 @@ json.(package, :id, :name, :version, :release, :epoch)
|
||||||
json.type package.package_type
|
json.type package.package_type
|
||||||
json.updated_at package.updated_at.to_i
|
json.updated_at package.updated_at.to_i
|
||||||
json.url (package.sha1 ? "#{APP_CONFIG['file_store_url']}/api/v1/file_stores/#{package.sha1}" : '' )
|
json.url (package.sha1 ? "#{APP_CONFIG['file_store_url']}/api/v1/file_stores/#{package.sha1}" : '' )
|
||||||
|
|
||||||
|
json.dependent_projects dependent_projects(package) do |project, packages|
|
||||||
|
json.partial! 'api/v1/projects/project', project: project
|
||||||
|
json.dependent_packages packages
|
||||||
|
end if package.build_list.save_to_platform.main?
|
|
@ -83,7 +83,7 @@ module Grit
|
||||||
def diff_stats(a,b)
|
def diff_stats(a,b)
|
||||||
stats = []
|
stats = []
|
||||||
Dir.chdir(path) do
|
Dir.chdir(path) do
|
||||||
lines = self.git.native(:diff, {numstat: true, M: true}, "#{a}...#{b}").split("\n")
|
lines = self.git.native(:diff, {numstat: true}, "#{a}...#{b}").split("\n")
|
||||||
while !lines.empty?
|
while !lines.empty?
|
||||||
files = []
|
files = []
|
||||||
while lines.first =~ /^([-\d]+)\s+([-\d]+)\s+(.+)/
|
while lines.first =~ /^([-\d]+)\s+([-\d]+)\s+(.+)/
|
||||||
|
|
|
@ -115,6 +115,7 @@ end
|
||||||
describe Api::V1::ProductBuildListsController do
|
describe Api::V1::ProductBuildListsController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
stub_symlink_methods
|
stub_symlink_methods
|
||||||
|
FactoryGirl.create(:arch, name: 'x86_64')
|
||||||
|
|
||||||
@product_build_list = FactoryGirl.create(:product_build_list)
|
@product_build_list = FactoryGirl.create(:product_build_list)
|
||||||
@another_user = FactoryGirl.create(:user)
|
@another_user = FactoryGirl.create(:user)
|
||||||
|
|
|
@ -318,5 +318,43 @@ describe CanCan do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end # 'repository relations'
|
end # 'repository relations'
|
||||||
|
|
||||||
|
context 'product build list relations' do
|
||||||
|
let(:product_build_list) { FactoryGirl.create(:product_build_list) }
|
||||||
|
|
||||||
|
before { FactoryGirl.create(:arch, name: 'x86_64') }
|
||||||
|
|
||||||
|
context 'with platform admin rights' do
|
||||||
|
before do
|
||||||
|
product_build_list.product.platform.owner = @user
|
||||||
|
product_build_list.product.platform.save
|
||||||
|
end
|
||||||
|
|
||||||
|
[:read, :create, :update, :destroy, :log, :cancel].each do |action|
|
||||||
|
it "should be able to #{action} product build list" do
|
||||||
|
@ability.should be_able_to(action, product_build_list)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with project writer rights' do
|
||||||
|
before do
|
||||||
|
create_relation(product_build_list.project, @user, 'writer')
|
||||||
|
end
|
||||||
|
|
||||||
|
[:read, :create, :log, :cancel].each do |action|
|
||||||
|
it "should be able to #{action} product build list" do
|
||||||
|
@ability.should be_able_to(action, product_build_list)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
[:update, :destroy].each do |action|
|
||||||
|
it "should not be able to #{action} product build list" do
|
||||||
|
@ability.should_not be_able_to(action, product_build_list)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end # 'product build list relations'
|
||||||
|
|
||||||
end # 'Site user'
|
end # 'Site user'
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue