Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into pr-max-file-size-re…
Browse files Browse the repository at this point in the history
…size
  • Loading branch information
ShinjiTanimoto committed Nov 12, 2021
2 parents 8b958eb + a601bd5 commit b642f8c
Show file tree
Hide file tree
Showing 137 changed files with 5,482 additions and 1,199 deletions.
11 changes: 8 additions & 3 deletions .github/workflows/ruby-2.6.yml
Expand Up @@ -18,8 +18,8 @@ jobs:
strategy:
fail-fast: false
matrix:
parallelism: [5]
id: [0,1,2,3,4]
parallelism: [ 5 ]
id: [ 0,1,2,3,4 ]
steps:
- uses: actions/checkout@v2
- name: Docker Login
Expand Down Expand Up @@ -78,7 +78,12 @@ jobs:
- name: Running Docker Containers
run: docker ps -a
- name: Run tests
run: bundle exec ruby .travis.d/split_specs.rb -p ${{ matrix.parallelism }} -i ${{ matrix.id }} | xargs bundle exec rspec
run: |
file_list=$(bundle exec ruby .travis.d/split_specs.rb -p ${{ matrix.parallelism }} -i ${{ matrix.id }})
if [ $? -ne 0 ]; then
exit 1
fi
echo $file_list | xargs bundle exec rspec
env:
allow_open_jtalk: 1
LDAP_TEST: enable
Expand Down
156 changes: 78 additions & 78 deletions .github/workflows/ruby.yml
Expand Up @@ -20,85 +20,85 @@ jobs:
strategy:
fail-fast: false
matrix:
parallelism: [5]
id: [0,1,2,3,4]
parallelism: [ 5 ]
id: [ 0,1,2,3,4 ]
steps:
- uses: actions/checkout@v2
- name: Docker Login
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin
docker info
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.3.0
with:
mongodb-version: 4.2
- name: Prepare Ldap
run: docker pull osixia/openldap
- name: Start Shirasagi Mail
run: |
docker pull shirasagi/mail
docker run --name test_mail -d -p 10143:143 -p 10587:587 shirasagi/mail
- name: Prepare Michecker
run: docker pull shirasagi/michecker
- name: Install pre requisites
run: |
sudo apt-get update
sudo apt-get -y install libmagick++-dev sox libsox-dev lame libmp3lame-dev chromium-chromedriver mecab libmecab-dev mecab-ipadic-utf8 open-jtalk open-jtalk-mecab-naist-jdic graphicsmagick
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
bundler-cache: true
- name: Install MeCab Ruby
run: |
tar xzf vendor/mecab/mecab-ruby-0.996.tar.gz
cd mecab-ruby-0.996 && bundle exec ruby extconf.rb && make && sudo make install
# - name: Prepare Assets
# run: bash .travis.d/exec.sh before_script 05-bin-deploy
- name: Prepare Config
run: bash .travis.d/exec.sh before_script 10-copy-config
- name: Prepare kana.yml
run: |
cp config/defaults/kana.yml config/
sed -i "s#/usr/local/libexec/mecab/mecab-dict-index#/usr/lib/mecab/mecab-dict-index#" config/kana.yml
sed -i "s#/usr/local/lib/mecab/dic/ipadic#/usr/share/mecab/dic/ipadic#" config/kana.yml
diff -u config/defaults/kana.yml config/kana.yml || true
- name: Prepare voice.yml
run: |
cp config/defaults/voice.yml config/
sed -i "s#/usr/local/bin/open_jtalk#/usr/bin/open_jtalk#" config/voice.yml
sed -i "s#/usr/local/dic#/var/lib/mecab/dic/open-jtalk/naist-jdic#" config/voice.yml
sed -i "s#/usr/local/bin/sox#/usr/bin/sox#" config/voice.yml
sed -i "s#/usr/local/bin/lame#/usr/bin/lame#" config/voice.yml
diff -u config/defaults/voice.yml config/voice.yml || true
- name: Prepare ImageMagick-6 policy
run: |
cd /etc/ImageMagick-6
sudo sed -i "s#<policy domain=\"coder\" rights=\"none\" pattern=\"PDF\" />#<policy domain=\"coder\" rights=\"read\" pattern=\"PDF\" />#" policy.xml
echo "### /etc/ImageMagick-6/policy.xml ###"
cat policy.xml
- name: Running Docker Containers
run: docker ps -a
- name: Run tests
run: |
file_list=$(bundle exec ruby .travis.d/split_specs.rb -p ${{ matrix.parallelism }} -i ${{ matrix.id }})
if [ $? -ne 0 ]; then
exit 1
fi
echo $file_list | xargs bundle exec rspec
env:
allow_open_jtalk: 1
LDAP_TEST: enable
ANALYZE_COVERAGE: disabled
TZ: "Asia/Tokyo"
RUBYOPT: "-W:deprecated"
- name: Coveralls Parallel
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: "./coverage/lcov/lcov.info"
flag-name: run-${{ matrix.id }}
parallel: true
- uses: actions/checkout@v2
- name: Docker Login
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin
docker info
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.3.0
with:
mongodb-version: 4.2
- name: Prepare Ldap
run: docker pull osixia/openldap
- name: Start Shirasagi Mail
run: |
docker pull shirasagi/mail
docker run --name test_mail -d -p 10143:143 -p 10587:587 shirasagi/mail
- name: Prepare Michecker
run: docker pull shirasagi/michecker
- name: Install pre requisites
run: |
sudo apt-get update
sudo apt-get -y install libmagick++-dev sox libsox-dev lame libmp3lame-dev chromium-chromedriver mecab libmecab-dev mecab-ipadic-utf8 open-jtalk open-jtalk-mecab-naist-jdic graphicsmagick
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
bundler-cache: true
- name: Install MeCab Ruby
run: |
tar xzf vendor/mecab/mecab-ruby-0.996.tar.gz
cd mecab-ruby-0.996 && bundle exec ruby extconf.rb && make && sudo make install
# - name: Prepare Assets
# run: bash .travis.d/exec.sh before_script 05-bin-deploy
- name: Prepare Config
run: bash .travis.d/exec.sh before_script 10-copy-config
- name: Prepare kana.yml
run: |
cp config/defaults/kana.yml config/
sed -i "s#/usr/local/libexec/mecab/mecab-dict-index#/usr/lib/mecab/mecab-dict-index#" config/kana.yml
sed -i "s#/usr/local/lib/mecab/dic/ipadic#/usr/share/mecab/dic/ipadic#" config/kana.yml
diff -u config/defaults/kana.yml config/kana.yml || true
- name: Prepare voice.yml
run: |
cp config/defaults/voice.yml config/
sed -i "s#/usr/local/bin/open_jtalk#/usr/bin/open_jtalk#" config/voice.yml
sed -i "s#/usr/local/dic#/var/lib/mecab/dic/open-jtalk/naist-jdic#" config/voice.yml
sed -i "s#/usr/local/bin/sox#/usr/bin/sox#" config/voice.yml
sed -i "s#/usr/local/bin/lame#/usr/bin/lame#" config/voice.yml
diff -u config/defaults/voice.yml config/voice.yml || true
- name: Prepare ImageMagick-6 policy
run: |
cd /etc/ImageMagick-6
sudo sed -i "s#<policy domain=\"coder\" rights=\"none\" pattern=\"PDF\" />#<policy domain=\"coder\" rights=\"read\" pattern=\"PDF\" />#" policy.xml
echo "### /etc/ImageMagick-6/policy.xml ###"
cat policy.xml
- name: Running Docker Containers
run: docker ps -a
- name: Run tests
run: |
file_list=$(bundle exec ruby .travis.d/split_specs.rb -p ${{ matrix.parallelism }} -i ${{ matrix.id }})
if [ $? -ne 0 ]; then
exit 1
fi
echo $file_list | xargs bundle exec rspec
env:
allow_open_jtalk: 1
LDAP_TEST: enable
ANALYZE_COVERAGE: disabled
TZ: "Asia/Tokyo"
RUBYOPT: "-W:deprecated"
- name: Coveralls Parallel
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: "./coverage/lcov/lcov.info"
flag-name: run-${{ matrix.id }}
parallel: true

finish:
needs: test
Expand Down
12 changes: 11 additions & 1 deletion .travis.d/split_specs.rb
Expand Up @@ -3,12 +3,14 @@

parallelism = 6
index = 0
includes = []
excludes = []

OptionParser.new do |opt|
opt.on('-p', '--parallelism val', Integer) { |v| parallelism = v }
opt.on('-i', '--index val', Integer) { |v| index = v }
opt.on('-e', '--exclude val', String) { |v| excludes << v }
opt.on('--include val', String) { |v| includes << v }
opt.parse!(ARGV)
end

Expand All @@ -19,7 +21,15 @@
exit!
end

spec_files = Dir.glob("#{ARGV.first || "spec"}/**/*_spec.rb")
all_spec_files = Dir.glob("#{ARGV.first || "spec"}/**/*_spec.rb")
if includes.empty?
spec_files = all_spec_files
else
spec_files = []
includes.each do |inc|
spec_files += all_spec_files.select { |file| file.include?(inc) }
end
end
excludes.each do |exclude|
spec_files.reject! { |file| file.include?(exclude) }
end
Expand Down
36 changes: 36 additions & 0 deletions app/assets/javascripts/gws/memo/export_and_backup.js.erb
@@ -0,0 +1,36 @@
function Gws_Memo_ExportAndBackup($el) {
this.$el = $el;

this.render();
}

Gws_Memo_ExportAndBackup.prototype.render = function() {
this.$el.find('a.ajax-box').data('on-select', function($item) {
var $data = $item.closest('[data-id]');
var id = $data.attr('data-id');
var attachments = $data.data('attachments');
var from = $data.data('from');
var name = $data.data('name');
var priority = $data.data('priority');
var send_date = $data.data('send_date');
var size = $data.data('display_size');

var $newTr = $('<tr />').attr('data-id', id);
var $newInput = SS_SearchUI.anchorAjaxBox.closest('dl').find('.hidden-ids').clone(false);
$newInput = $newInput.val(id).removeClass('hidden-ids');
var $newA = $('<a>').attr('class','deselect btn').attr('href','#').text('<%= I18n.t "ss.buttons.delete" %>').on('click', SS_SearchUI.deselect);

var icon = $('<i class="material-icons md-15">&#xE226;</i>');
if (!attachments) {
icon.css('visibility','hidden');
}
$newTr.append($('<td />').text(from).prepend(icon));
$newTr.append($('<td />').append($newInput).append(name));
$newTr.append($('<td />').text(priority));
$newTr.append($('<td />').text(send_date));
$newTr.append($('<td />').text(size));
$newTr.append($('<td />').append($newA));
SS_SearchUI.anchorAjaxBox.closest('dl').find('.ajax-selected tbody').prepend($newTr);
SS_SearchUI.anchorAjaxBox.closest('dl').find('.ajax-selected').trigger('change');
});
};
1 change: 1 addition & 0 deletions app/assets/javascripts/gws/script.js.erb
Expand Up @@ -19,6 +19,7 @@
//= require gws/memo/message
//= require gws/memo/folder
//= require gws/memo/filter
//= require gws/memo/export_and_backup
//= require gws/monitor/lib/monitor
//= require gws/portal/lib/portal
//= require gws/elasticsearch/highlighter
Expand Down
@@ -1,6 +1,6 @@
class Sns::Apis::ReplaceFilesController < ApplicationController
include Sns::UserFilter
include Sns::CrudFilter
class Cms::Apis::ReplaceFilesController < ApplicationController
include Cms::BaseFilter
include Cms::CrudFilter
include SS::FileFilter
include SS::AjaxFileFilter

Expand All @@ -15,7 +15,9 @@ class Sns::Apis::ReplaceFilesController < ApplicationController
def set_owner_item
@owner_item = @item.owner_item
raise "404" unless @owner_item
@site = @owner_item.site
raise "404" unless @owner_item.id.to_s == params[:owner_item_id].to_s

raise "403" unless SS::ReplaceFile.replaceable?(@owner_item, user: @cur_user, site: @cur_site, node: @cur_node)
end

def render_update(result, opts = {})
Expand All @@ -41,15 +43,13 @@ def items_json
def edit
@dst_file = SS::ReplaceTempFile.user(@cur_user).first

raise "403" unless @owner_item.allowed?(:edit, @cur_user, site: @site)
render
end

def update
@item.attributes = get_params
@item.in_file = SS::ReplaceTempFile.find(@item.in_file).uploaded_file
@item.in_updated = params[:_updated] if @item.respond_to?(:in_updated)
raise "403" unless @owner_item.allowed?(:edit, @cur_user, site: @site)

result = @item.update
SS::ReplaceTempFile.user(@cur_user).destroy_all if result
Expand All @@ -71,24 +71,20 @@ def confirm
end

def histories
raise "403" unless @owner_item.allowed?(:read, @cur_user, site: @site)
end

def restore
raise "403" unless @owner_item.allowed?(:edit, @cur_user, site: @site)
@item = SS::HistoryFile.find(params[:source])

render_update @item.restore, notice: I18n.t('history.notice.restored')
end

def destroy
raise "403" unless @owner_item.allowed?(:edit, @cur_user, site: @site)
SS::HistoryFile.find(params[:source]).destroy
render_update true
end

def download
raise "403" unless @owner_item.allowed?(:read, @cur_user, site: @site)
@item = SS::HistoryFile.find(params[:source])

send_file @item.path, type: @item.content_type, filename: @item.download_filename,
Expand Down
1 change: 0 additions & 1 deletion app/controllers/concerns/cms/page_filter.rb
Expand Up @@ -220,7 +220,6 @@ def update
save_as_branch
return
end
raise "404" if @item.try(:master?) && @item.branches.present?

publish_save
end
Expand Down
30 changes: 30 additions & 0 deletions app/controllers/concerns/gws/memo/export_and_backup_filter.rb
@@ -0,0 +1,30 @@
module Gws::Memo::ExportAndBackupFilter
extend ActiveSupport::Concern
include Gws::BaseFilter
include Gws::CrudFilter

included do
model Gws::Memo::Message

navi_view "gws/memo/messages/navi"
menu_view nil

before_action :deny_with_auth
end

private

def deny_with_auth
raise "403" unless @model.allowed?(:edit, @cur_user, site: @cur_site)
end

def fix_params
{ cur_user: @cur_user, cur_site: @cur_site }
end

public

def index
@item = @model.new
end
end

0 comments on commit b642f8c

Please sign in to comment.