Merge branch 'production' of github.com:diaspora/diaspora into production

Conflicts:
	app/models/user.rb
	config/deploy.rb
	spec/factories.rb
	spec/models/request_spec.rb
	spec/spec_helper.rb
This commit is contained in:
Daniel Vincent Grippi 2010-09-14 11:08:18 -07:00
commit c1a9a89be7
12 changed files with 89 additions and 17 deletions

View file

@ -53,4 +53,4 @@ class UsersController < ApplicationController
params[:profile][:image_url] = "http://" + request.host + ":" + request.port.to_s + params[:profile][:image_url] params[:profile][:image_url] = "http://" + request.host + ":" + request.port.to_s + params[:profile][:image_url]
end end
end end
end end

View file

@ -46,7 +46,10 @@ class User
many :aspects, :class_name => 'Aspect' many :aspects, :class_name => 'Aspect'
before_validation_on_create :setup_person after_validation_on_create :setup_person
after_create :seed_groups
after_save :check_for_tommy
before_validation :do_bad_things before_validation :do_bad_things
before_save :downcase_username before_save :downcase_username
@ -61,6 +64,23 @@ class User
######## Making things work ######## ######## Making things work ########
key :email, String key :email, String
validates_true_for :email, :logic => lambda {self.allowed_email? unless email.nil?}
def allowed_email?
allowed_emails = ["@pivotallabs.com", "@joindiaspora.com", "@sofaer.net",
"wchulley@gmail.com", "kimfuh@yahoo.com", "CJichi@yahoo.com",
"madkisso@mit.edu", "bribak@msn.com", "asykley@verizon.net",
"paulhaeberli@gmail.com","bondovatic@gmail.com", "dixon1e@yahoo.com"]
allowed_emails.each{|allowed|
if email.include?(allowed)
return true
end
}
false
end
ensure_index :email ensure_index :email
def method_missing(method, *args) def method_missing(method, *args)
@ -313,10 +333,19 @@ class User
"#{self.username}@#{self.terse_url}" "#{self.username}@#{self.terse_url}"
end end
def do_bad_things def do_bad_things
self.password_confirmation = self.password self.password_confirmation = self.password
end end
def seed_groups
group(:name => "Acquaintances")
group(:name => "Family")
group(:name => "Work")
end
protected
def setup_person def setup_person
self.person.serialized_key ||= User.generate_key.export self.person.serialized_key ||= User.generate_key.export
self.person.email ||= email self.person.email ||= email

View file

@ -35,8 +35,19 @@ Diaspora::Application.configure do
config.action_controller.perform_caching = false config.action_controller.perform_caching = false
# Don't care if the mailer can't send # Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false config.action_mailer.raise_delivery_errors = true
config.active_support.deprecation = :log config.active_support.deprecation = :log
config.middleware.use MongoMapper::ClearDevMemory config.middleware.use MongoMapper::ClearDevMemory
#config.threadsafe! #config.threadsafe!
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = {:host => 'localhost:3000'}
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'mail.joindiaspora.com',
:authentication => 'plain',
:user_name => 'diaspora-pivots@joindiaspora.com',
:password => "xy289|]G+R*-kA",
:enable_starttls_auto => true
}
end end

View file

@ -29,10 +29,10 @@ Diaspora::Application.configure do
config.action_controller.perform_caching = true config.action_controller.perform_caching = true
# Specifies the header that your server uses for sending files # Specifies the header that your server uses for sending files
config.action_dispatch.x_sendfile_header = "X-Sendfile" #config.action_dispatch.x_sendfile_header = "X-Sendfile"
# For nginx: # For nginx:
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
# If you have no front-end server that supports something like X-Sendfile, # If you have no front-end server that supports something like X-Sendfile,
# just comment this out and Rails will serve the files # just comment this out and Rails will serve the files
@ -48,7 +48,7 @@ Diaspora::Application.configure do
# Disable Rails's static asset server # Disable Rails's static asset server
# In production, Apache or nginx will already do this # In production, Apache or nginx will already do this
config.serve_static_assets = true #config.serve_static_assets = true
# Enable serving of images, stylesheets, and javascripts from an asset server # Enable serving of images, stylesheets, and javascripts from an asset server
# config.action_controller.asset_host = "http://assets.example.com" # config.action_controller.asset_host = "http://assets.example.com"
@ -56,12 +56,20 @@ Diaspora::Application.configure do
# Disable delivery errors, bad email addresses will be ignored # Disable delivery errors, bad email addresses will be ignored
# config.action_mailer.raise_delivery_errors = false # config.action_mailer.raise_delivery_errors = false
# Enable threaded mode
# config.threadsafe!
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found) # the I18n.default_locale when a translation can not be found)
config.i18n.fallbacks = true config.i18n.fallbacks = true
config.threadsafe! config.threadsafe!
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = {:host => 'pivots.joindiaspora.com'}
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'mail.joindiaspora.com',
:authentication => 'plain',
:user_name => 'diaspora-pivots@joindiaspora.com',
:password => "xy289|]G+R*-kA",
:enable_starttls_auto => true
}
end end

View file

@ -52,7 +52,7 @@ http {
server { server {
listen 80; listen 80;
server_name babycakes.sofaer.net www.babycakes.sofaer.net; server_name pivots.joindiaspora.com www.pivots.joindiaspora.com;
root /usr/local/app/diaspora/current; root /usr/local/app/diaspora/current;
location / { location / {

View file

@ -27,7 +27,7 @@ require "#{File.dirname(__FILE__)}/packages/server"
require "#{File.dirname(__FILE__)}/packages/scm" require "#{File.dirname(__FILE__)}/packages/scm"
require "#{File.dirname(__FILE__)}/packages/ruby" require "#{File.dirname(__FILE__)}/packages/ruby"
policy :diaspora, :roles => [:tom,:backer] do policy :diaspora, :roles => [:pivots] do
# requires :clean_dreamhost # requires :clean_dreamhost
requires :tools requires :tools
requires :rubygems requires :rubygems

View file

@ -27,9 +27,9 @@ max_conns: 1024
require: [] require: []
max_persistent_conns: 512 max_persistent_conns: 512
environment: development environment: production
servers: 1 servers: 1
daemonize: true daemonize: true
#chdir: /usr/applications/localhash/current #chdir: /usr/applications/localhash/current
#socket: /tmp/thin.sock socket: /tmp/thin.sock
port: 80 #port: 80

View file

@ -21,6 +21,7 @@
require 'config/environment' require 'config/environment'
remote_url = "http://tom.joindiaspora.com/" remote_url = "http://tom.joindiaspora.com/"
remote_url = "http://localhost:3000/"
# Create seed user # Create seed user
user = User.instantiate!( :email => "tom@tom.joindiaspora.com", user = User.instantiate!( :email => "tom@tom.joindiaspora.com",
:username => "tom", :username => "tom",

View file

@ -45,7 +45,7 @@ end
Factory.define :user do |u| Factory.define :user do |u|
u.sequence(:username) {|n| "bob#{n}"} u.sequence(:username) {|n| "bob#{n}"}
u.sequence(:email) {|n| "bob#{n}@aol.com"} u.sequence(:email) {|n| "bob#{n}@pivotallabs.com"}
u.password "bluepin7" u.password "bluepin7"
u.password_confirmation "bluepin7" u.password_confirmation "bluepin7"
u.person { |a| Factory.create(:person_with_user, :owner_id => a._id)} u.person { |a| Factory.create(:person_with_user, :owner_id => a._id)}

View file

@ -34,12 +34,11 @@ describe Request do
end end
it 'should generate xml for the User as a Person' do it 'should generate xml for the User as a Person' do
request = @user.send_friend_request_to Factory.create(:person), @aspect request = @user.send_friend_request_to Factory.create(:person), @aspect
xml = request.to_xml.to_s xml = request.to_xml.to_s
xml.include?(@user.person.email).should be true xml.include?(@user.email).should be true
xml.include?(@user.url).should be true xml.include?(@user.url).should be true
xml.include?(@user.profile.first_name).should be true xml.include?(@user.profile.first_name).should be true
xml.include?(@user.profile.last_name).should be true xml.include?(@user.profile.last_name).should be true

View file

@ -25,6 +25,29 @@ describe User do
@user = Factory.create(:user) @user = Factory.create(:user)
@aspect = @user.aspect(:name => 'heroes') @aspect = @user.aspect(:name => 'heroes')
end end
it 'should create with pivotal or allowed emails' do
user1 = Factory.create(:user, :email => "kimfuh@yahoo.com")
user2 = Factory.create(:user, :email => "awesome@sofaer.net")
user3 = Factory.create(:user, :email => "steveellis@pivotallabs.com")
user1.created_at.nil?.should be false
user2.created_at.nil?.should be false
user3.created_at.nil?.should be false
end
it 'should not create with disallowed emails' do
proc {
user1 = Factory.create(:user, :email => "kimuh@yahoo.com")
}.should raise_error /Validation failed/
proc {
user2 = Factory.create(:user, :email => "awesome@sobear.net")
}.should raise_error /Validation failed/
proc {
user3 = Factory.create(:user, :email => "steveellis@pivotalabs.com")
}.should raise_error /Validation failed/
end
describe 'profiles' do describe 'profiles' do
it 'should be able to update their profile and send it to their friends' do it 'should be able to update their profile and send it to their friends' do

View file

@ -47,6 +47,7 @@ RSpec.configure do |config|
config.before(:each) do config.before(:each) do
DatabaseCleaner.start DatabaseCleaner.start
stub_sockets stub_sockets
User.stub!(:allowed_email?).and_return(:true)
end end
config.after(:each) do config.after(:each) do