aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorKir2011-11-17 14:35:45 +0400
committerKir2011-11-17 14:35:45 +0400
commitabcb2bf3ec5adfd5111049d2dd15093e3917041f (patch)
treed18da24411ca619b2dd33212e2a3d41a473dfb2e /lib
parent668fde12b58214c3cfa8721958e6c29af0e57423 (diff)
downloadinboxes-abcb2bf3ec5adfd5111049d2dd15093e3917041f.tar.bz2
Switched to CanCan
Diffstat (limited to 'lib')
-rw-r--r--lib/inboxes/ability.rb24
-rw-r--r--lib/inboxes/engine.rb5
2 files changed, 29 insertions, 0 deletions
diff --git a/lib/inboxes/ability.rb b/lib/inboxes/ability.rb
new file mode 100644
index 0000000..18fca88
--- /dev/null
+++ b/lib/inboxes/ability.rb
@@ -0,0 +1,24 @@
+module Inboxes
+ class InboxesAbility
+ include CanCan::Ability
+
+ def initialize(user)
+ # Discussion
+ can [:index, :create], Discussion
+ can :read, Discussion do |discussion|
+ discussion.can_participate?(user)
+ end
+
+ # Message
+ # can :create, Message do |message|
+ # message.discussion.can_participate?(user)
+ # end
+ #
+ # # Speaker
+ # can [:create, :destroy], Speaker do |speaker|
+ # speaker.discussion.can_participate?(user)
+ # end
+ end
+ end
+
+end \ No newline at end of file
diff --git a/lib/inboxes/engine.rb b/lib/inboxes/engine.rb
index 061694e..4395cde 100644
--- a/lib/inboxes/engine.rb
+++ b/lib/inboxes/engine.rb
@@ -1,4 +1,9 @@
+require "inboxes/ability"
+
module Inboxes
class Engine < ::Rails::Engine
+ def self.activate
+ Ability.register_ability(InboxesAbility)
+ end
end
end \ No newline at end of file