##// END OF EJS Templates
Only show allowed statuses in context menu (#10181)....
Only show allowed statuses in context menu (#10181). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8825 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r8636:7574ab730d90
r8705:07a93c2731c5
Show More
sys_controller.rb
75 lines | 2.6 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Replaces the repositories management SOAP API with a simple REST API....
r2374 # Redmine - project management software
Toshi MARUYAMA
remove trailing white-spaces from sys controller source....
r5768 # Copyright (C) 2006-2011 Jean-Philippe Lang
Jean-Philippe Lang
Initial commit for svn repository management and access control:...
r393 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from sys controller source....
r5768 #
Jean-Philippe Lang
Initial commit for svn repository management and access control:...
r393 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from sys controller source....
r5768 #
Jean-Philippe Lang
Initial commit for svn repository management and access control:...
r393 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class SysController < ActionController::Base
Jean-Philippe Lang
Replaces the repositories management SOAP API with a simple REST API....
r2374 before_filter :check_enabled
Toshi MARUYAMA
remove trailing white-spaces from sys controller source....
r5768
Jean-Philippe Lang
Replaces the repositories management SOAP API with a simple REST API....
r2374 def projects
Toshi MARUYAMA
code layout cleanup app/controllers/sys_controller.rb...
r8636 p = Project.active.has_module(:repository).find(
:all,
:include => :repository,
:order => "#{Project.table_name}.identifier"
)
Jean-Philippe Lang
Do not include extra_info attribute in SysController responses because it breaks reposman activeresource client (#8707)....
r7836 # extra_info attribute from repository breaks activeresource client
Toshi MARUYAMA
code layout cleanup app/controllers/sys_controller.rb...
r8636 render :xml => p.to_xml(
:only => [:id, :identifier, :name, :is_public, :status],
:include => {:repository => {:only => [:id, :url]}}
)
Jean-Philippe Lang
Initial commit for svn repository management and access control:...
r393 end
Toshi MARUYAMA
remove trailing white-spaces from sys controller source....
r5768
Jean-Philippe Lang
Replaces the repositories management SOAP API with a simple REST API....
r2374 def create_project_repository
project = Project.find(params[:id])
if project.repository
render :nothing => true, :status => 409
else
logger.info "Repository for #{project.name} was reported to be created by #{request.remote_ip}."
project.repository = Repository.factory(params[:vendor], params[:repository])
if project.repository && project.repository.save
Jean-Philippe Lang
Do not include extra_info attribute in SysController responses because it breaks reposman activeresource client (#8707)....
r7836 render :xml => project.repository.to_xml(:only => [:id, :url]), :status => 201
Jean-Philippe Lang
Replaces the repositories management SOAP API with a simple REST API....
r2374 else
render :nothing => true, :status => 422
end
end
Jean-Philippe Lang
Initial commit for svn repository management and access control:...
r393 end
Toshi MARUYAMA
remove trailing white-spaces from sys controller source....
r5768
Jean-Philippe Lang
Adds an action to SysController to fetch changesets of one or all projects (#2925)....
r2993 def fetch_changesets
projects = []
if params[:id]
projects << Project.active.has_module(:repository).find(params[:id])
else
Jean-Philippe Lang
Adds support for multiple repositories per project (#779)....
r8530 projects = Project.active.has_module(:repository).all
Jean-Philippe Lang
Adds an action to SysController to fetch changesets of one or all projects (#2925)....
r2993 end
projects.each do |project|
Jean-Philippe Lang
Adds support for multiple repositories per project (#779)....
r8530 project.repositories.each do |repository|
repository.fetch_changesets
Jean-Philippe Lang
Adds an action to SysController to fetch changesets of one or all projects (#2925)....
r2993 end
end
render :nothing => true, :status => 200
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => 404
end
Jean-Philippe Lang
Initial commit for svn repository management and access control:...
r393
Jean-Philippe Lang
Replaces the repositories management SOAP API with a simple REST API....
r2374 protected
Jean-Philippe Lang
Initial commit for svn repository management and access control:...
r393
Jean-Philippe Lang
Replaces the repositories management SOAP API with a simple REST API....
r2374 def check_enabled
User.current = nil
Jean-Philippe Lang
Adds on optional API key to repositories management controller and reposman.rb....
r3087 unless Setting.sys_api_enabled? && params[:key].to_s == Setting.sys_api_key
render :text => 'Access denied. Repository management WS is disabled or key is invalid.', :status => 403
Jean-Philippe Lang
Replaces the repositories management SOAP API with a simple REST API....
r2374 return false
end
Jean-Philippe Lang
Initial commit for svn repository management and access control:...
r393 end
end