public
Description: A fully featured forum system compatible with Rails 2.3
Homepage: http://forum.frozenplague.net
Clone URL: git://github.com/radar/rboard.git
Click here to lend your support to: rboard and make a donation at www.pledgie.com !
rboard / config / routes.rb
100755 97 lines (75 sloc) 3.559 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
ActionController::Routing::Routes.draw do |map|
  map.root :controller => "forums"
  map.login 'login', :controller => 'users', :action => 'login'
  map.logout 'logout', :controller => 'users', :action => 'logout'
  map.signup 'signup', :controller => "users", :action => 'signup'
  
  map.search 'search', :controller => "search", :action => "index"
    
  map.namespace :admin do |admin|
    admin.root :controller => "index"
    
    admin.resources :categories, :member => { :move_up => :put, :move_down => :put, :move_to_top => :put, :move_to_bottom => :put } do |category|
      category.resources :forums
      category.resources :permissions
    end
    
    admin.chronic 'chronic', :controller => 'chronic'
    
    admin.resources :configurations, :collection => { :update_all => :put }
    admin.resources :forums, :member => { :move_up => :put, :move_down => :put, :move_to_top => :put, :move_to_bottom => :put } do |forum|
      forum.resources :permissions
    end
    
    admin.resources :groups do |group|
      group.resources :members
      group.resources :users
      # For finding the permissions for a group in regards to a single forum.
      group.resources :forums do |forum|
        forum.resources :permissions
      end
      
      group.resources :permissions
    end
    
    admin.resources :ips do |ip|
      ip.resources :topics, :only => [:index]
      ip.resources :posts, :only => [:index]
      ip.resources :users, :only => [:index]
    end
    
    admin.resources :ranks
    admin.resources :themes, :member => { :make_default => :put }
    admin.resources :users, :collection => { :ban_ip => :any, :search => :get}, :member => { :ban => :any, :ban_ip => :any, :remove_banned_ip => :post } do |user|
      user.resources :ips
    end
  end
  
  
  map.namespace :moderator do |moderator|
    moderator.root :controller => "index"
    moderator.resources :topics, :member => { :lock => :put, :sticky => :put }, :collection => { :moderate => :post, :merge => :put } do |topic|
      topic.resources :moderations
      topic.resources :posts, :member => { :split => [:get, :post] }
      topic.resources :reports
    end
    
    moderator.resources :posts do |post|
      post.resources :moderations
      post.resources :reports
    end
    
    moderator.resources :moderations
    
    moderator.resources :reports
  end
  
  map.resources :categories do |category|
    category.resources :forums
  end
  
  map.resources :forums, :collection => { :list => :get } do |forum|
    forum.resources :topics, :member => { :lock => :put, :unlock => :put }
  end
  
  map.resources :messages, :member => { :reply => :get }, :collection => { :sent => :get }
  
  map.resources :posts, :member => { :destroy => :any } do |post|
    post.resources :edits
    post.resources :reports
  end
  
  map.resources :subscriptions
  
  map.resources :topics, :member => { :reply => :get, :unlock => :put, :lock => :put } do |topic|
    topic.resources :posts, :member => { :reply => :get }
    topic.resources :subscriptions
    topic.resources :reports
  end
 
  map.resources :users, :member => { :profile => :any }, :collection => { :signup => [:get, :post], :ip_is_banned => :get }
  
  # pretty pagination links
  map.connect 'forums/:forum_id/topics/:id/:page#:anchor', :controller => "topics", :action => "show"
  map.connect 'forums/:forum_id/topics/:id/:page', :controller => "topics", :action => "show"
  map.connect 'forums/:id/:page', :controller => "forums", :action => "show"
  map.connect ':controller/:action/:id'
end