Class: Ishapi::Ability

Inherits:
Object
  • Object
show all
Includes:
CanCan::Ability
Defined in:
app/models/ishapi/ability.rb

Instance Method Summary collapse

Constructor Details

#initialize(user) ⇒ Ability

Returns a new instance of Ability.



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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'app/models/ishapi/ability.rb', line 5

def initialize user
  #
  # signed in user
  #
  if !user.blank?

    # if user.profile && user.profile.sudoer?
    #   can :manage, :all
    # end

    can [ :my_index ], Gallery
    can [ :show ], Gallery do |gallery|
      gallery. == user.profile || # my own
      (!gallery.is_trash && gallery.is_public ) || # public
      (!gallery.is_trash && gallery.shared_profiles.include?( user.profile ) ) # shared with me
    end

    can [ :do_purchase ], ::Gameui
    can [ :show ], ::Gameui::Map do |map|
      map.creator_profile == user.profile
    end

    can [ :destroy ], Newsitem do |n|
      n.map.creator_profile.id == user.profile.id
    end

    can [ :create, :unlock ], ::Ish::Payment

    can [ :buy_stars ], ::Ish::UserProfile

  end
  #
  # anonymous user
  #
  user ||= User.new

  can [ :show ], Ish::UserProfile
  can [ :update ], Ish::UserProfile do |p|
    p.user.id.to_s == user.id.to_s
  end

  can [ :index, :show ], City

  can [ :index, :show ], Event

  #
  # G
  #
  can [ :index ], Gallery
  can [ :show ], Gallery do |gallery|
    gallery.is_public && !gallery.is_trash
  end

  #
  # I
  #
  can [ :fb_sign_in, :long_term_token, :open_permission, :welcome_home ], Ishapi

  #
  # M
  #
  can [ :index ], ::Gameui::Map
  can [ :show ], ::Gameui::Map do |map|
    map.is_public || map.shared_profiles.include?( user.profile )
  end
  can [ :show ], ::Gameui::Marker do |m|
    m.is_public
  end

  #
  # P
  #
  can [ :show ], Photo

  #
  # R
  #
  can [ :index ], Report
  can [ :my_index, :show ], Report do |report|
    report.is_public
  end

  #
  # S
  #
  can [ :index, :show ], Site

  #
  # T
  #
  can [ :index ], Tag
  can [ :show ], Tag do |tag|
    tag.is_public
  end

  #
  # V
  #
  can [ :index ], Venue
  can [ :show ], Venue do |venue|
    venue.is_public
  end
  can [ :index, :my_index ], Video
  can [ :show ], Video do |video|
    video.is_public
  end

end