comparison app/controllers/sys_controller.rb @ 156:9d2c8317d42f feature_75

* Add method to WS API controller to permit Embedded plugin to be switched on or off for a project (via /sys/projects/<id>/embedded.xml?key=<key>&enable={0,1})
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Thu, 27 Jan 2011 14:53:41 +0000
parents 513646585e45
children 6c282df74a30
comparison
equal deleted inserted replaced
155:1ca23eedd587 156:9d2c8317d42f
53 render :nothing => true, :status => 200 53 render :nothing => true, :status => 200
54 rescue ActiveRecord::RecordNotFound 54 rescue ActiveRecord::RecordNotFound
55 render :nothing => true, :status => 404 55 render :nothing => true, :status => 404
56 end 56 end
57 57
58 def set_embedded_active
59 project = Project.find(params[:id])
60 mods = project.enabled_modules
61 enable = (params[:enable] == "1")
62 if mods.detect {|m| m.name == "embedded"}
63 logger.info "Project #{project.name} currently has Embedded enabled"
64 if !enable
65 logger.info "Disabling Embedded"
66 modnames = mods.all(:select => :name).collect{|m| m.name}.reject{|n| n == "embedded"}
67 project.enabled_module_names = modnames
68 end
69 else
70 logger.info "Project #{project.name} currently has Embedded disabled"
71 if enable
72 logger.info "Enabling Embedded"
73 modnames = mods.all(:select => :name).collect{|m| m.name}
74 modnames << "embedded"
75 project.enabled_module_names = modnames
76 end
77 end
78 render :nothing => true, :status => 200
79 rescue ActiveRecord::RecordNotFound
80 render :nothing => true, :status => 404
81 end
82
58 protected 83 protected
59 84
60 def check_enabled 85 def check_enabled
61 User.current = nil 86 User.current = nil
62 unless Setting.sys_api_enabled? && params[:key].to_s == Setting.sys_api_key 87 unless Setting.sys_api_enabled? && params[:key].to_s == Setting.sys_api_key