social_stream 0.4.5 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/permissions_controller.rb +6 -1
- data/app/controllers/relation/customs_controller.rb +8 -0
- data/app/models/actor.rb +3 -3
- data/app/models/tie.rb +4 -0
- data/app/views/contacts/_form.html.erb +8 -3
- data/app/views/layouts/_account.html.erb +3 -3
- data/app/views/toolbar/_profile_menu_tie_options.html.erb +2 -2
- data/config/locales/en.yml +5 -0
- data/lib/generators/social_stream/templates/public/stylesheets/default/contacts.css +2 -2
- data/lib/social_stream/ability.rb +0 -1
- data/lib/social_stream/version.rb +1 -1
- data/social_stream.gemspec +1 -1
- data/spec/controllers/permissions_controller_spec.rb +0 -2
- data/spec/controllers/relation_customs_controller_spec.rb +7 -4
- data/spec/models/tie_spec.rb +0 -13
- metadata +7 -7
@@ -1,10 +1,15 @@
|
|
1
1
|
class PermissionsController < InheritedResources::Base
|
2
2
|
before_filter :authenticate_user!
|
3
|
-
load_and_authorize_resource
|
4
3
|
|
5
4
|
respond_to :js
|
6
5
|
|
7
6
|
actions :index
|
8
7
|
|
9
8
|
belongs_to :relation
|
9
|
+
|
10
|
+
def index
|
11
|
+
authorize! :read, parent
|
12
|
+
|
13
|
+
index!
|
14
|
+
end
|
10
15
|
end
|
@@ -5,4 +5,12 @@ class Relation::CustomsController < InheritedResources::Base
|
|
5
5
|
respond_to :js
|
6
6
|
|
7
7
|
belongs_to :sphere, :optional => true
|
8
|
+
|
9
|
+
def index
|
10
|
+
# Must authorize index, because Cancan does not filter collection with conditions.
|
11
|
+
# See https://github.com/ryanb/cancan/wiki/checking-abilities
|
12
|
+
authorize! :read, parent.customs.new
|
13
|
+
|
14
|
+
index!
|
15
|
+
end
|
8
16
|
end
|
data/app/models/actor.rb
CHANGED
@@ -75,11 +75,11 @@ class Actor < ActiveRecord::Base
|
|
75
75
|
scope :distinct_initials, select('DISTINCT SUBSTR(actors.name,1,1) as initial').order("initial ASC")
|
76
76
|
|
77
77
|
scope :contacted_to, lambda { |a|
|
78
|
-
joins(:sent_ties).merge(Tie.received_by(a))
|
78
|
+
joins(:sent_ties).merge(Tie.received_by(a).intended)
|
79
79
|
}
|
80
80
|
|
81
81
|
scope :contacted_from, lambda { |a|
|
82
|
-
joins(:received_ties).merge(Tie.sent_by(a))
|
82
|
+
joins(:received_ties).merge(Tie.sent_by(a).intended)
|
83
83
|
}
|
84
84
|
|
85
85
|
after_create :create_initial_relations
|
@@ -250,7 +250,7 @@ class Actor < ActiveRecord::Base
|
|
250
250
|
|
251
251
|
# Set of ties sent by this actor received by a
|
252
252
|
def ties_to(a)
|
253
|
-
sent_ties.received_by(a)
|
253
|
+
sent_ties.received_by(a).intended
|
254
254
|
end
|
255
255
|
|
256
256
|
# Get the first of the ties created to a, or create a new one with the {Relation::Public}
|
data/app/models/tie.rb
CHANGED
@@ -45,6 +45,8 @@
|
|
45
45
|
# integer, array
|
46
46
|
# replied:: ties having at least another tie in the other way, a tie from a to b
|
47
47
|
# is replied if there is a tie from b to a
|
48
|
+
# intended:: ties can be desactivated by subjects when they change their connections.
|
49
|
+
# This scope gathers the active ones
|
48
50
|
#
|
49
51
|
class Tie < ActiveRecord::Base
|
50
52
|
# Facilitates relation assigment along with find_relation callback
|
@@ -107,6 +109,8 @@ class Tie < ActiveRecord::Base
|
|
107
109
|
joins(:relation).where('relations.type' => 'Relation::Public')
|
108
110
|
}
|
109
111
|
|
112
|
+
scope :intended, where(:intended => true)
|
113
|
+
|
110
114
|
validates_presence_of :sender_id, :receiver_id, :relation
|
111
115
|
|
112
116
|
before_validation :find_or_build_relation
|
@@ -55,9 +55,14 @@
|
|
55
55
|
</div>
|
56
56
|
</li>
|
57
57
|
<% end %>
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
</li>
|
59
|
+
<% end %>
|
60
|
+
<li class="new_sphere"><span class="sphere_name"><%= link_to t('contact.type.new'), spheres_path %></span></li>
|
61
|
+
|
62
|
+
</ul>
|
63
|
+
|
64
|
+
</dd>
|
65
|
+
|
61
66
|
</div>
|
62
67
|
</div>
|
63
68
|
</div>
|
@@ -3,13 +3,13 @@
|
|
3
3
|
<a href="#" class="sf-with-ul" id="btn_menu_config"><%= t('account.one') %><span class="sf-sub-indicator"> »</span></a>
|
4
4
|
<ul>
|
5
5
|
<li>
|
6
|
-
<%= link_to '
|
6
|
+
<%= link_to t('account.settings'), edit_user_registration_path %>
|
7
7
|
</li>
|
8
8
|
<li>
|
9
|
-
<%= link_to '
|
9
|
+
<%= link_to t('account.notifications'), '#' %>
|
10
10
|
</li>
|
11
11
|
<li class="current">
|
12
|
-
<%= link_to '
|
12
|
+
<%= link_to t('account.privacy'), spheres_path %>
|
13
13
|
</li>
|
14
14
|
</ul>
|
15
15
|
</li>
|
@@ -12,13 +12,13 @@
|
|
12
12
|
<% if current_subject.ties_to(subject).present? %>
|
13
13
|
<li >
|
14
14
|
<%= link_to image_tag("btn/btn_friend.png", :class => "menu_icon") +
|
15
|
-
|
15
|
+
current_subject.ties_to(subject).map(&:relation_name).join(", "),
|
16
16
|
edit_contact_path(subject.actor_id) %>
|
17
17
|
</li>
|
18
18
|
<% else %>
|
19
19
|
<li >
|
20
20
|
<%= link_to image_tag("btn/btn_friend.png", :class => "menu_icon") +
|
21
|
-
t('
|
21
|
+
t('contact.new.title'),
|
22
22
|
edit_contact_path(subject.actor_id),
|
23
23
|
:id => 'contacts_menu' %>
|
24
24
|
</li>
|
data/config/locales/en.yml
CHANGED
@@ -6,6 +6,9 @@ en:
|
|
6
6
|
accept: "Accept"
|
7
7
|
account:
|
8
8
|
one: "Account"
|
9
|
+
notifications: "Notifications"
|
10
|
+
privacy: "Privacy"
|
11
|
+
settings: "Settings"
|
9
12
|
activity:
|
10
13
|
confirm_delete: "Delete activity?"
|
11
14
|
delete: "Delete"
|
@@ -91,6 +94,8 @@ en:
|
|
91
94
|
one: "Suggestion"
|
92
95
|
other: "Suggestions"
|
93
96
|
all: "All"
|
97
|
+
type:
|
98
|
+
new: "New type"
|
94
99
|
copyright: "2010 Copyright - All rights reserved"
|
95
100
|
days: Days
|
96
101
|
delete:
|
@@ -69,13 +69,13 @@ span.ui-radio-state-checked-hover {
|
|
69
69
|
}
|
70
70
|
|
71
71
|
|
72
|
-
li.sphere_name {
|
72
|
+
li.sphere_name, li.new_sphere {
|
73
73
|
background-color: #1F4A75;
|
74
74
|
padding: 5px;
|
75
75
|
text-align: left;
|
76
76
|
}
|
77
77
|
|
78
|
-
span.sphere_name{
|
78
|
+
span.sphere_name, span.sphere_name a{
|
79
79
|
color: white;
|
80
80
|
}
|
81
81
|
|
@@ -78,7 +78,6 @@ module SocialStream
|
|
78
78
|
# Privacy
|
79
79
|
can [:create, :read, :update, :destroy], Sphere, :actor_id => subject.try(:actor_id)
|
80
80
|
can [:create, :read, :update, :destroy], Relation::Custom, :sphere => { :actor_id => subject.try(:actor_id) }
|
81
|
-
can :read, Permission
|
82
81
|
end
|
83
82
|
end
|
84
83
|
end
|
data/social_stream.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
# Pagination
|
33
33
|
s.add_runtime_dependency('will_paginate', '~> 3.0.pre2')
|
34
34
|
# OAuth client
|
35
|
-
s.add_runtime_dependency('omniauth','~> 0.2.
|
35
|
+
s.add_runtime_dependency('omniauth','~> 0.2.6')
|
36
36
|
# OAuth provider
|
37
37
|
s.add_runtime_dependency('oauth-plugin','~> 0.4.0.pre1')
|
38
38
|
# Theme support
|
@@ -75,11 +75,14 @@ describe Relation::CustomsController do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
it "should not render index" do
|
78
|
-
|
78
|
+
begin
|
79
|
+
get :index, :sphere_id => @sphere.id, :format => "js"
|
79
80
|
|
80
|
-
|
81
|
-
|
82
|
-
|
81
|
+
# Should not get here
|
82
|
+
assert false
|
83
|
+
rescue CanCan::AccessDenied
|
84
|
+
assigns(:customs).should be_blank
|
85
|
+
end
|
83
86
|
end
|
84
87
|
|
85
88
|
context "a new relation" do
|
data/spec/models/tie_spec.rb
CHANGED
@@ -15,19 +15,6 @@ describe Tie do
|
|
15
15
|
|
16
16
|
tie.should_not be_new_record
|
17
17
|
end
|
18
|
-
|
19
|
-
it "should be created from relation_name and permissions" do
|
20
|
-
pending "Redesign forms"
|
21
|
-
|
22
|
-
tie = Tie.create :sender_id => @sender.actor_id,
|
23
|
-
:receiver_id => @receiver.actor_id,
|
24
|
-
:relation_name => "new relation",
|
25
|
-
:relation_permissions => [ Permission.first.id, Permission.last.id ]
|
26
|
-
|
27
|
-
puts tie.errors
|
28
|
-
tie.should_not be_new_record
|
29
|
-
tie.relation.should_not be_new_record
|
30
|
-
end
|
31
18
|
end
|
32
19
|
|
33
20
|
describe "follower_count" do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 6
|
10
|
+
version: 0.4.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- GING - DIT - UPM
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-
|
19
|
+
date: 2011-06-01 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -188,12 +188,12 @@ dependencies:
|
|
188
188
|
requirements:
|
189
189
|
- - ~>
|
190
190
|
- !ruby/object:Gem::Version
|
191
|
-
hash:
|
191
|
+
hash: 27
|
192
192
|
segments:
|
193
193
|
- 0
|
194
194
|
- 2
|
195
|
-
-
|
196
|
-
version: 0.2.
|
195
|
+
- 6
|
196
|
+
version: 0.2.6
|
197
197
|
type: :runtime
|
198
198
|
version_requirements: *id011
|
199
199
|
- !ruby/object:Gem::Dependency
|