add support for openid
[gitorious:jsharp-adv_dev-clone.git] / config / routes.rb
1 ActionController::Routing::Routes.draw do |map|
2
3   # The priority is based upon order of creation: first created -> highest priority.
4   
5   # Sample of regular route:
6   # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
7   # Keep in mind you can assign values other than :controller and :action
8
9   # Sample of named route:
10   # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
11   # This route can be invoked with purchase_url(:id => product.id)
12
13   # You can have the root of your site routed by hooking up '' 
14   # -- just remember to delete public/index.html.
15   # map.connect '', :controller => "welcome"
16
17   # Allow downloading Web Service WSDL as a file with an extension
18   # instead of a file named 'wsdl'
19   #map.connect ':controller/service.wsdl', :action => 'wsdl'
20   VALID_SHA = /[a-zA-Z0-9~\{\}\^\.\-_]+/
21   map.root :controller => "site", :action => "index"
22   
23   map.resource :account, :member => {:password => :get, :update_password => :put} do |account|
24     account.resources :keys
25   end
26   map.connect "users/activate/:activation_code", :controller => "users", :action => "activate"
27   map.resources :users, :requirements => {:id => /.+/ }, :collection => {
28     :forgot_password => :get,
29     :reset_password => :post,
30   }, :member => { :feed => :get }
31   map.resources  :events
32   }
33   map.open_id_complete '/sessions', :controller => "sessions", :action=> "create",:requirements => { :method => :get }
34   map.resource  :sessions
35   map.with_options(:controller => "projects", :action => "category") do |project_cat|
36     project_cat.projects_category "projects/category/:id"
37     project_cat.formatted_projects_category "projects/category/:id.:format"
38   end
39   map.resources :projects, :member => {:confirm_delete => :get} do |projects|
40     projects.resources(:repositories, :member => { 
41       :new => :get, :create => :post, 
42       :writable_by => :get, 
43       :confirm_delete => :get
44     }, :as => "repos") do |repo|
45       repo.resources :committers, :name_prefix => nil, :collection => {:auto_complete_for_user_login => :post, :list => :get, :create => :post}
46       repo.resources :comments, :member => { :commmit => :get  }
47       repo.resources :merge_requests, :member => { :resolve => :put }, :collection => { :create => :post }
48       repo.commit_comment "comments/commit/:sha", :controller => "comments", 
49         :action => "commit", :conditions => { :method => :get }
50       
51       repo.resources :logs, :requirements => { :id => VALID_SHA }#, :member => { :feed => :get }
52       repo.formatted_log_feed "logs/:id/feed.:format", :controller => "logs", :action => "feed", 
53         :conditions => {:feed => :get}, :requirements => {:id => VALID_SHA}
54       repo.resources :commits
55       repo.trees          "trees/", :controller => "trees", :action => "index"
56       repo.with_options(:requirements => { :id => VALID_SHA }) do |r|
57         r.tree           "trees/:id/*path", :controller => "trees", :action => "show"
58         r.formatted_tree "trees/:id/*path.:format", :controller => "trees", :action => "show"
59         r.archive_tree   "archive/:id.tar.gz", :controller => "trees", :action => "archive"
60         r.raw_blob       "blobs/raw/:id/*path", :controller => "blobs", :action => "raw"
61         r.blob           "blobs/:id/*path", :controller => "blobs", :action => "show"
62       end
63     end
64   end
65   
66   map.resource :search
67   
68   map.with_options :controller => 'sessions' do |session|
69     session.login    '/login',  :action => 'new'
70     session.logout   '/logout', :action => 'destroy'
71   end
72
73   map.dashboard "dashboard", :controller => "site", :action => "dashboard"  
74   map.about "about", :controller => "site", :action => "about"
75   map.faq "about/faq", :controller => "site", :action => "faq"
76
77   # Install the default route as the lowest priority.
78   map.connect ':controller/:action/:id.:format'
79   map.connect ':controller/:action/:id'
80 end