Skip to content
Extraits de code Groupes Projets
Valider 3d105e7c rédigé par danielvincent's avatar danielvincent
Parcourir les fichiers

DG IZ; removed Friend model, now Person is used instead. Also, broke the websocket.

parent d705d39f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 213 ajouts et 109 suppressions
...@@ -2,7 +2,7 @@ class ApplicationController < ActionController::Base ...@@ -2,7 +2,7 @@ class ApplicationController < ActionController::Base
protect_from_forgery :except => :receive protect_from_forgery :except => :receive
layout 'application' layout 'application'
before_filter :set_friends before_filter :set_people
layout :layout_by_resource layout :layout_by_resource
...@@ -14,8 +14,8 @@ class ApplicationController < ActionController::Base ...@@ -14,8 +14,8 @@ class ApplicationController < ActionController::Base
end end
end end
def set_friends def set_people
@friends = Friend.all @people = Person.all
end end
end end
class FriendRequestsController < ApplicationController
before_filter :authenticate_user!
def index
@friend_requests = FriendRequest.paginate :page => params[:page], :order => 'created_at DESC'
@friend_request = FriendRequest.new
@person = Person.new
end
def show
@friend_request = FriendRequest.where(:id => params[:id]).first
end
def destroy
@friend_request = FriendRequest.where(:id => params[:id]).first
@friend_request.destroy
flash[:notice] = "Successfully destroyed friend request."
redirect_to friend_requests_url
end
def new
@friend_request = FriendRequest.new
@recipient = Person.new
end
def create
@friend_request = FriendRequest.new(params[:friend_request])
@friend_request.sender = current_user
puts
puts
puts @recipient
if @friend_request.save
flash[:notice] = "Successfully created friend request."
redirect_to @friend_request
else
render :action => 'new'
end
end
end
class PeopleController < ApplicationController
before_filter :authenticate_user!
def index
@people = Person.paginate :page => params[:page], :order => 'created_at DESC'
end
def show
@person= Person.where(:id => params[:id]).first
@person_profile = @person.profile
@person_posts = Post.where(:person_id => @person.id).sort(:created_at.desc)
end
def destroy
@person = Person.where(:id => params[:id]).first
@person.destroy
flash[:notice] = "Successfully destroyed person."
redirect_to people_url
end
def new
@person = Person.new
@profile = Profile.new
end
def create
puts params.inspect
@person = Person.new(params[:person])
if @person.save
flash[:notice] = "Successfully created person."
redirect_to @person
else
render :action => 'new'
end
end
end
class PersonRequestsController < ApplicationController
before_filter :authenticate_user!
def index
@person_requests = PersonRequest.paginate :page => params[:page], :order => 'created_at DESC'
@person_request = PersonRequest.new
@person = Person.new
end
def show
@person_request = PersonRequest.where(:id => params[:id]).first
end
def destroy
@person_request = PersonRequest.where(:id => params[:id]).first
@person_request.destroy
flash[:notice] = "Successfully destroyed person request."
redirect_to person_requests_url
end
def new
@person_request = PersonRequest.new
@recipient = Person.new
end
def create
@person_request = PersonRequest.new(params[:person_request])
@person_request.sender = current_user
if @person_request.save
flash[:notice] = "Successfully created person request."
redirect_to @person_request
else
render :action => 'new'
end
end
end
...@@ -24,10 +24,10 @@ module ApplicationHelper ...@@ -24,10 +24,10 @@ module ApplicationHelper
def person_url(person) def person_url(person)
case person.class.to_s case person.class.to_s
when "Friend"
friend_path(person)
when "User" when "User"
user_path(person) user_path(person)
when "Person"
person_path(person)
else else
"unknown person" "unknown person"
end end
......
...@@ -17,7 +17,7 @@ class Comment ...@@ -17,7 +17,7 @@ class Comment
key :person_id, ObjectId key :person_id, ObjectId
belongs_to :person, :class_name => "Person" belongs_to :person, :class_name => "Person"
after_save :send_friends_comments_on_my_posts after_save :send_people_comments_on_my_posts
after_save :send_to_view after_save :send_to_view
...@@ -28,9 +28,9 @@ class Comment ...@@ -28,9 +28,9 @@ class Comment
protected protected
def send_friends_comments_on_my_posts def send_people_comments_on_my_posts
if (User.first.mine?(self.post) && self.person.is_a?(Friend)) if User.first.mine?(self.post) && !(self.person.is_a? User)
self.push_to(self.post.friends_with_permissions) self.push_to(self.post.people_with_permissions)
end end
end end
...@@ -38,4 +38,4 @@ class Comment ...@@ -38,4 +38,4 @@ class Comment
def send_to_view def send_to_view
WebSocket.update_clients(self) WebSocket.update_clients(self)
end end
end end
\ No newline at end of file
class Friend < Person
key :active, Boolean, :default => false
end
class FriendRequest
include MongoMapper::Document
include Diaspora::Webhooks
key :url, String
attr_accessor :sender
validates_presence_of :url
before_save :check_for_friend_requests
def to_friend_xml
friend = Friend.new
friend.email = sender.email
friend.url = sender.url
friend.profile = sender.profile.clone
friend.to_xml
end
def self.for(url)
friend_request = FriendRequest.new(:url => url)
friend_request.sender = User.first
friend_request.save
friend_request.push_friend_request_to_url(friend_request.url)
end
def check_for_friend_requests
f = Friend.where(:url => self.url).first
if f
f.active = true
f.save
end
end
end
...@@ -8,6 +8,7 @@ class Person ...@@ -8,6 +8,7 @@ class Person
key :email, String key :email, String
key :url, String key :url, String
key :active, Boolean, :default => false
one :profile, :class_name => 'Profile', :foreign_key => :person_id one :profile, :class_name => 'Profile', :foreign_key => :person_id
many :posts, :class_name => 'Post', :foreign_key => :person_id many :posts, :class_name => 'Post', :foreign_key => :person_id
...@@ -27,7 +28,7 @@ class Person ...@@ -27,7 +28,7 @@ class Person
before_validation :clean_url before_validation :clean_url
def real_name def real_name
profile.first_name.to_s + " " + profile.last_name.to_s "#{profile.first_name.to_s} #{profile.last_name.to_s}"
end end
......
class PersonRequest
include MongoMapper::Document
include Diaspora::Webhooks
key :url, String
attr_accessor :sender
validates_presence_of :url
before_save :check_for_person_requests
def to_person_xml
person = Person.new
person.email = sender.email
person.url = sender.url
person.profile = sender.profile.clone
person.to_xml
end
def self.for(url)
person_request = PersonRequest.new(:url => url)
person_request.sender = User.first
person_request.save
person_request.push_person_request_to_url(person_request.url)
end
def check_for_person_requests
p = Person.where(:url => self.url).first
if p
p.active = true
p.save
end
end
end
...@@ -20,7 +20,7 @@ class Post ...@@ -20,7 +20,7 @@ class Post
timestamps! timestamps!
after_save :send_to_view after_save :send_to_view
after_save :notify_friends after_save :notify_people
before_destroy :propagate_retraction before_destroy :propagate_retraction
after_destroy :destroy_comments, :remove_from_view after_destroy :destroy_comments, :remove_from_view
...@@ -49,7 +49,7 @@ class Post ...@@ -49,7 +49,7 @@ class Post
end end
def propagate_retraction def propagate_retraction
Retraction.for(self).notify_friends Retraction.for(self).notify_people
end end
def send_to_view def send_to_view
......
...@@ -10,7 +10,7 @@ class User < Person ...@@ -10,7 +10,7 @@ class User < Person
c = Comment.new(:person_id => self.id, :text => text, :post => options[:on]) c = Comment.new(:person_id => self.id, :text => text, :post => options[:on])
if c.save if c.save
if mine?(c.post) if mine?(c.post)
c.push_to(c.post.friends_with_permissions) # should return plucky query c.push_to(c.post.people_with_permissions) # should return plucky query
else else
c.push_to([c.post.person]) c.push_to([c.post.person])
end end
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#content.span-24.last #content.span-24.last
.span-3.append-1.last .span-3.append-1.last
= link_to owner_picture, root_path = link_to owner_picture, root_path
= render 'friends/sidebar' if user_signed_in? /= render 'friends/sidebar' if user_signed_in?
.span-20 .span-20
- if user_signed_in? - if user_signed_in?
......
%h3 your people
%ul#friend_stream.nav
- for person in @people
%li= link_to person.real_name, person_path(person)
/= link_to "add a new friend", new_friend_path
- title "People"
%table
%tr
%th real name
%th email
%th url
- for person in @people
%tr
%td= person.real_name
%td= person.email
%td= person.url
%td= link_to 'Show', person
%td= link_to 'Destroy', person, :confirm => 'Are you sure?', :method => :delete
%p= link_to "New Person", new_person_path
#pagination
= will_paginate @people
- title "New Person"
= form_for @person do |f|
= f.error_messages
%p
= f.label :email
%br
= f.text_field :email
%p
= f.label :url
%br
= f.text_field :url
=f.fields_for :profile do |p|
%p
= p.label :first_name
%br
= p.text_field :first_name
%p
= p.label :last_name
%br
= p.text_field :last_name
= f.submit
%p= link_to "Back to List", people_path
.span-18.last
%h1= "#{@person.real_name}"
- if @person_profile
%p
%b First Name
%p
= @person_profile.first_name
%p
%b Last Name
%p
= @person_profile.last_name
%p
%b url
%p
= @person.url
.span-18
- if @person.posts
%h3 stream
%ul#stream
- for post in @person_posts
= render type_partial(post), :post => post
- else
%h3 no posts to display!
Diaspora::Application.routes.draw do |map| Diaspora::Application.routes.draw do |map|
resources :blogs resources :blogs
resources :bookmarks resources :bookmarks
resources :friends resources :people
resources :status_messages resources :status_messages
resources :comments resources :comments
resources :friend_requests resources :person_requests
match 'warzombie', :to => "dashboard#warzombie" match 'warzombie', :to => "dashboard#warzombie"
......
...@@ -29,9 +29,9 @@ names = [ ["George", "Washington"], ...@@ -29,9 +29,9 @@ names = [ ["George", "Washington"],
["Abraham", "Lincoln"] ["Abraham", "Lincoln"]
] ]
# Make friends # Make people
(1..10).each { |n| (1..10).each { |n|
Friend.create( :email => "b#{n}@joindiaspora.com", :url => "http://b#{n}.joindiaspora.com/", :profile => Profile.create(:first_name => names[n-1][0], :last_name => names[n-1][1])) People.create( :email => "b#{n}@joindiaspora.com", :url => "http://b#{n}.joindiaspora.com/", :profile => Profile.create(:first_name => names[n-1][0], :last_name => names[n-1][1]))
} }
# Populate feed # Populate feed
......
...@@ -54,13 +54,13 @@ def create(backer_number, password) ...@@ -54,13 +54,13 @@ def create(backer_number, password)
email = backer_info[backer_number][2].gsub(/ /,'').downcase email = backer_info[backer_number][2].gsub(/ /,'').downcase
user = User.create( :email => "#{email}@joindiaspora.com", :password => "#{email+backer_info[backer_number][0].to_s}", :profile => Profile.create( :first_name => backer_info[backer_number][1], :last_name => backer_info[backer_number][2] )) user = User.create( :email => "#{email}@joindiaspora.com", :password => "#{email+backer_info[backer_number][0].to_s}", :profile => Profile.create( :first_name => backer_info[backer_number][1], :last_name => backer_info[backer_number][2] ))
# Make friends with Diaspora Tom # Make connection with Diaspora Tom
Friend.create( :email => "tom@joindiaspora.com", :url => "http://tom.joindiaspora.com/", :profile => Profile.create(:first_name => "Alexander", :last_name => "Hamiltom")) Person.create( :email => "tom@joindiaspora.com", :url => "http://tom.joindiaspora.com/", :profile => Profile.create(:first_name => "Alexander", :last_name => "Hamiltom"))
# Make friends # Make people
(0..10).each { |n| (0..10).each { |n|
email = backer_info[n][2].gsub(/ /,'').downcase email = backer_info[n][2].gsub(/ /,'').downcase
Friend.create( :email => "#{email}@joindiaspora.com", :url => "http://#{email}.joindiaspora.com/", :profile => Profile.create(:first_name => backer_info[n][1], :last_name => backer_info[n][2])) unless n == backer_number People.create( :email => "#{email}@joindiaspora.com", :url => "http://#{email}.joindiaspora.com/", :profile => Profile.create(:first_name => backer_info[n][1], :last_name => backer_info[n][2])) unless n == backer_number
} }
end end
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter