Merge branch 'master' of github.com:diaspora/diaspora
19
.gitignore
vendored
|
|
@ -1,22 +1,21 @@
|
|||
.bundle
|
||||
.DS_Store
|
||||
.idea
|
||||
.rvmrc
|
||||
*.swap
|
||||
*.swp
|
||||
*.swo
|
||||
*.swp
|
||||
*~
|
||||
.bundle
|
||||
bin/*
|
||||
config/app_config.yml
|
||||
config/fb_config.yml
|
||||
config/initializers/secret_token.rb
|
||||
db/*.sqlite3
|
||||
log/*
|
||||
tmp/**/*
|
||||
nbproject
|
||||
gpg/diaspora-development/*.gpg
|
||||
gpg/diaspora-production/*.gpg
|
||||
gpg/*/random_seed
|
||||
public/uploads/*
|
||||
.rvmrc
|
||||
.DS_Store
|
||||
config/app_config.yml
|
||||
bin/*
|
||||
nbproject
|
||||
config/initializers/secret_token.rb
|
||||
public/source.tar
|
||||
config/fb_config.yml
|
||||
tmp/**/*
|
||||
|
|
|
|||
|
|
@ -18,7 +18,10 @@ instructions.
|
|||
You are welcome to contribute, add to and extend Diaspora however you see fit. We
|
||||
will do our best to incorporate everything that meets our guidelines.
|
||||
|
||||
Please do not rebase our tree into yours.
|
||||
Please make your changes on a topic branch in your repo and submit your pull request
|
||||
from there, so that commits you don't want to submit aren't included.
|
||||
|
||||
Please do not rebase our tree into yours.
|
||||
See [here](http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg39091.html)
|
||||
for when to rebase.
|
||||
|
||||
|
|
@ -56,7 +59,7 @@ Ongoing discussion:
|
|||
More general info and updates about the project can be found on:
|
||||
[Our blog](http://joindiaspora.com),
|
||||
[and on Twitter](http://twitter.com/joindiaspora).
|
||||
Also, be sure to join the official [mailing list](http://http://eepurl.com/Vebk).
|
||||
Also, be sure to join the official [mailing list](http://eepurl.com/Vebk).
|
||||
|
||||
If you wish to contact us privately about any exploits in Diaspora you may
|
||||
find, you can email
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@ class AspectsController < ApplicationController
|
|||
|
||||
begin
|
||||
current_user.drop_aspect @aspect
|
||||
flash[:notice] = i18n.t 'aspects.destroy.success',:name => @aspect.name
|
||||
rescue RuntimeError => e
|
||||
flash[:notice] = I18n.t 'aspects.destroy.success',:name => @aspect.name
|
||||
rescue RuntimeError => e
|
||||
flash[:error] = e.message
|
||||
end
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ class AspectsController < ApplicationController
|
|||
|
||||
respond_with @aspect
|
||||
end
|
||||
|
||||
|
||||
def manage
|
||||
@aspect = :manage
|
||||
@remote_requests = Request.for_user(current_user).all
|
||||
|
|
@ -67,7 +67,7 @@ class AspectsController < ApplicationController
|
|||
|
||||
data = clean_hash(params[:aspect])
|
||||
@aspect.update_attributes( data )
|
||||
flash[:notice] = i18n.t 'aspects.update.success',:name => @aspect.name
|
||||
flash[:notice] = I18n.t 'aspects.update.success',:name => @aspect.name
|
||||
respond_with @aspect
|
||||
end
|
||||
|
||||
|
|
@ -75,13 +75,13 @@ class AspectsController < ApplicationController
|
|||
params[:moves].each{ |move|
|
||||
move = move[1]
|
||||
unless current_user.move_friend(move)
|
||||
flash[:error] = i18n.t 'aspects.move_friends.failure', :real_name => Person.find_by_id( move[:friend_id] ).real_name
|
||||
flash[:error] = I18n.t 'aspects.move_friends.failure', :real_name => Person.find_by_id( move[:friend_id] ).real_name
|
||||
redirect_to aspects_manage_path
|
||||
return
|
||||
end
|
||||
}
|
||||
|
||||
flash[:notice] = i18n.t 'aspects.move_friends.success'
|
||||
flash[:notice] = I18n.t 'aspects.move_friends.success'
|
||||
redirect_to aspects_manage_path
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class PublicsController < ApplicationController
|
|||
|
||||
def hub
|
||||
if params['hub.mode'] == 'subscribe' || params['hub.mode'] == 'unsubscribe'
|
||||
render :text => params['hub.challenge'], :status => 202, :layout => false
|
||||
render :text => params['hub.challenge'], :status => 202, :layout => false
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -12,18 +12,18 @@ class StatusMessagesController < ApplicationController
|
|||
params[:status_message][:to] = params[:aspect_ids]
|
||||
|
||||
data = clean_hash params[:status_message]
|
||||
|
||||
|
||||
if @logged_in && params[:status_message][:public] == 'true'
|
||||
id = 'me'
|
||||
type = 'feed'
|
||||
|
||||
|
||||
Rails.logger.info("Sending a message: #{params[:status_message][:message]} to Facebook")
|
||||
@res = MiniFB.post(@access_token, id, :type=>type,
|
||||
:metadata=>true, :params=>{:message => params[:status_message][:message]})
|
||||
end
|
||||
|
||||
@status_message = current_user.post(:status_message, data)
|
||||
respond_with @status_message
|
||||
render :nothing => true
|
||||
end
|
||||
|
||||
def destroy
|
||||
|
|
|
|||
|
|
@ -27,16 +27,16 @@ class UsersController < ApplicationController
|
|||
|
||||
params[:user].delete(:password) if params[:user][:password].blank?
|
||||
params[:user].delete(:password_confirmation) if params[:user][:password].blank? and params[:user][:password_confirmation].blank?
|
||||
|
||||
|
||||
if params[:user][:password] && params[:user][:password_confirmation]
|
||||
if @user.update_attributes(:password => params[:user][:password], :password_confirmation => params[:user][:password_confirmation])
|
||||
flash[:notice] = "Password Changed"
|
||||
else
|
||||
flash[:error] = "Password Change Failed"
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
@user.update_profile data
|
||||
redirect_to edit_user_path(@user)
|
||||
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@
|
|||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
class FbStatus
|
||||
class FbStatus
|
||||
include MongoMapper::Document
|
||||
|
||||
key :graph_id, String
|
||||
key :author_id, String
|
||||
key :author_name, String
|
||||
key :message, String
|
||||
key :updated_time, Time
|
||||
key :updated_time, Time
|
||||
|
||||
timestamps!
|
||||
|
||||
|
|
@ -18,7 +18,7 @@ class FbStatus
|
|||
|
||||
def self.from_api(hash)
|
||||
#just keeping them in memory for now
|
||||
self.new(
|
||||
self.new(
|
||||
:graph_id => hash['id'],
|
||||
:author_id => hash['from']['id'],
|
||||
:author_name => hash['from']['name'],
|
||||
|
|
@ -26,6 +26,6 @@ class FbStatus
|
|||
:updated_time => Time.parse(hash['updated_time'])
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -254,7 +254,7 @@ class User
|
|||
def self.instantiate!( opts = {} )
|
||||
opts[:person][:diaspora_handle] = "#{opts[:username]}@#{APP_CONFIG[:terse_pod_url]}"
|
||||
opts[:person][:url] = APP_CONFIG[:pod_url]
|
||||
|
||||
|
||||
opts[:serialized_private_key] = generate_key
|
||||
opts[:person][:serialized_public_key] = opts[:serialized_private_key].public_key
|
||||
User.create(opts)
|
||||
|
|
@ -288,7 +288,7 @@ class User
|
|||
def self.generate_key
|
||||
OpenSSL::PKey::RSA::generate 4096
|
||||
end
|
||||
|
||||
|
||||
def encryption_key
|
||||
OpenSSL::PKey::RSA.new( serialized_private_key )
|
||||
end
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
- content_for :publish do
|
||||
- if @logged_in
|
||||
= render "shared/publisher", :aspect_ids => :public
|
||||
- else
|
||||
- else
|
||||
= render "shared/publisher", :aspect_ids => :all
|
||||
|
||||
%ul#stream
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
= person_image_link(friend)
|
||||
- if @logged_in && (@aspect == :public)
|
||||
%h3 Facebook Friends
|
||||
- @fb_friends = MiniFB.get(@access_token, 'me', :type => "friends")
|
||||
- @fb_friends[:data].each do |friend|
|
||||
- @fb_friends = MiniFB.get(@access_token, 'me', :type => "friends")
|
||||
- @fb_friends[:data].each do |friend|
|
||||
= image_tag( "http://graph.facebook.com/#{friend[:id]}/picture" )
|
||||
-unless (@aspect == :all) || (@aspect == :public)
|
||||
= link_to (image_tag('add_friend_button.png', :height => "50px", :width => "50px")), "#add_request_pane", :id => 'add_request_button'
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
%p
|
||||
- if @logged_in
|
||||
= connected_fb_as(@access_token)
|
||||
|
||||
|
||||
%p
|
||||
- @fb_friends = MiniFB.get(@access_token, 'me', :type => "friends")
|
||||
- @fb_friends[:data].each do |friend|
|
||||
|
|
|
|||
|
|
@ -26,5 +26,5 @@
|
|||
|
||||
#services.settings_pane
|
||||
= render 'users/services'
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ namespace :db do
|
|||
end
|
||||
|
||||
task :backer_seed, :roles => :backer do
|
||||
(0..10).each { |n|
|
||||
(0..2).each { |n|
|
||||
run "curl -silent http://localhost/set_backer_number?number=#{n}", :only => {:number => n}
|
||||
}
|
||||
run "cd #{current_path} && bundle exec rake db:seed:backer --trace RAILS_ENV=#{rails_env}"
|
||||
|
|
|
|||
|
|
@ -15,15 +15,15 @@ servers:
|
|||
- username: 'jackson'
|
||||
given_name: 'Andrew'
|
||||
family_name: 'Jackson'
|
||||
number: 6
|
||||
number: 0
|
||||
pin: 8670
|
||||
- username: 'tyler'
|
||||
given_name: 'John'
|
||||
family_name: 'Tyler'
|
||||
number: 9
|
||||
number: 1
|
||||
pin: 6431
|
||||
- username: 'polk'
|
||||
given_name: 'James K.'
|
||||
family_name: 'Polk'
|
||||
number: 10
|
||||
number: 2
|
||||
pin: 1957
|
||||
|
|
|
|||
|
|
@ -2,13 +2,10 @@
|
|||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
if ENV['MONGOHQ_URL']
|
||||
MongoMapper.config = {RAILS_ENV => {'uri' => ENV['MONGOHQ_URL']}}
|
||||
else
|
||||
MongoMapper.connection = Mongo::Connection.new(APP_CONFIG['mongo_host'], APP_CONFIG['mongo_port'])
|
||||
end
|
||||
ENV['MONGODB_URL'] = ENV['MONGOHQ_URL'] || URI::Generic.build(:scheme => 'mongodb', :host => APP_CONFIG['mongo_host'], :port => APP_CONFIG['mongo_port'], :path => "/diaspora-#{Rails.env}").to_s
|
||||
|
||||
MongoMapper.database = "diaspora-#{Rails.env}"
|
||||
MongoMapper.config = {RAILS_ENV => {'uri' => ENV['MONGODB_URL']}}
|
||||
MongoMapper.connect RAILS_ENV
|
||||
|
||||
if defined?(PhusionPassenger)
|
||||
PhusionPassenger.on_event(:starting_worker_process) do |forked|
|
||||
|
|
@ -16,4 +13,4 @@ if defined?(PhusionPassenger)
|
|||
end
|
||||
end
|
||||
|
||||
Magent.connection = Mongo::Connection.new(APP_CONFIG['mongo_host'], APP_CONFIG['mongo_port'])
|
||||
Magent.connection = MongoMapper.connection
|
||||
|
|
|
|||
40
config/locales/devise/devise.ar.yml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
ar:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "لم يتم العثور على"
|
||||
already_confirmed: "وقد أكد بالفعل"
|
||||
not_locked: "لم يكن مغلق"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: ".تحتاج إلى تسجيل الدخول أو قم بالتسجيل قبل الشروع في الاستمرار"
|
||||
unconfirmed: ".لديك لتأكيد الحساب الخاص بك قبل المتابعة"
|
||||
locked: ".مؤمن حسابك"
|
||||
invalid: ".بريد إلكتروني غير صالح أو كلمة المرور"
|
||||
invalid_token: ".المصادقة غير صالح الرمز المميز"
|
||||
timeout: ".انتهت الدورة الخاصة بك ، الرجاء تسجيل الدخول مرة أخرى للمتابعة"
|
||||
inactive: ".ولم يتم تفعيل حسابك بعد"
|
||||
sessions:
|
||||
signed_in: ".وقعت في بنجاح"
|
||||
signed_out: ".بتسجيل الخروج بنجاح"
|
||||
passwords:
|
||||
send_instructions: ".سوف تتلقى رسالة بريد إلكتروني مع تعليمات حول كيفية إعادة تعيين كلمة السر الخاصة بك في بضع دقائق"
|
||||
updated: ".تم تغيير كلمة السر الخاصة بك بنجاح. وقعت الآن دخولك"
|
||||
confirmations:
|
||||
send_instructions: ".سوف تتلقى رسالة بريد إلكتروني مع تعليمات حول كيفية تأكيد الحساب الخاص بك في بضع دقائق"
|
||||
confirmed: ".وأكد حسابك بنجاح. وقعت الآن دخولك"
|
||||
registrations:
|
||||
signed_up: ".لقد قمت بتسجيل بنجاح. إذا مكن، وجهت رسالة تأكيد إلى البريد الإلكتروني الخاص بك"
|
||||
updated: ".قمت بتحديث حسابك بنجاح"
|
||||
destroyed: ".وداعا! تم إلغاء حسابك بنجاح. ونأمل أن نراكم مرة أخرى قريبا"
|
||||
unlocks:
|
||||
send_instructions: ".سوف تتلقى رسالة بريد إلكتروني مع تعليمات حول كيفية فتح حساب في بضع دقائق"
|
||||
unlocked: ".كان حسابك مقفلة بنجاح. وقعت الآن دخولك"
|
||||
mailer:
|
||||
confirmation_instructions: "تأكيد تعليمات"
|
||||
reset_password_instructions: "تعليمات إعادة تعيين كلمة المرور"
|
||||
unlock_instructions: "فتح التعليمات"
|
||||
40
config/locales/devise/devise.nb.yml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
no_NO:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "ble ikke funnet"
|
||||
already_confirmed: "er allerede bekrefta"
|
||||
not_locked: "er ikke låst"
|
||||
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: "Du må logge inn eller lage en bruker før du kan fortsette."
|
||||
unconfirmed: "Du må bekrefte brukeren din før du kan fortsette."
|
||||
locked: "Brukeren din er låst."
|
||||
invalid: "Ugyldig e-postadresse eller passord."
|
||||
invalid_token: "Ugyldig authentication token."
|
||||
timeout: "Økta har løpt ut, logg inn igjen for å fortsette."
|
||||
inactive: "Brukeren din er ikke aktivert ennå."
|
||||
sessions:
|
||||
signed_in: "Innlogginga var vellykka."
|
||||
signed_out: "Utlogginga var vellykka."
|
||||
passwords:
|
||||
send_instructions: "Du vil få en e-post med instrukser om hvordan du tilbakestiller passordet ditt om kort tid."
|
||||
updated: "Passordet ditt er nå endra, og du har logga inn."
|
||||
confirmations:
|
||||
send_instructions: "Du vil få en e-post med instrukser om hvordan du bekrefter brukeren din om kort tid."
|
||||
confirmed: "Brukeren din er nå bekrefta, og du er logga inn."
|
||||
registrations:
|
||||
signed_up: "Du har nå laga en bruker. Hvis du valgte å få en e-post med bekreftelse på dette, er den nå sendt."
|
||||
updated: "Du har oppdatert brukeren din."
|
||||
destroyed: "Ha det! Brukeren din er nå sagt opp. Vi håper å se deg igjen snart."
|
||||
unlocks:
|
||||
send_instructions: "Du vil få en e-post med instrukser om hvordan du låser opp brukeren din om kort tid."
|
||||
unlocked: "Brukeren din er nå låst opp, og du er logga in."
|
||||
mailer:
|
||||
confirmation_instructions: "Instrukser for bekreftelse"
|
||||
reset_password_instructions: "Instrukser for tilbakestilling av passord"
|
||||
unlock_instructions: "Instrukser for å låse opp"
|
||||
206
config/locales/diaspora/ar.yml
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
# Sample localization file for Arabic.
|
||||
|
||||
ar:
|
||||
hello: "مرحبا العالم"
|
||||
application:
|
||||
helper:
|
||||
unknown_person: "غير معروف شخص"
|
||||
new_requests: "طلبات جديدة"
|
||||
dashboards:
|
||||
helper:
|
||||
home: "منزل"
|
||||
error_messages:
|
||||
helper:
|
||||
invalid_fields: "الحقول غير صالحة"
|
||||
correct_the_following_errors_and_try_again: ".تصحيح الأخطاء التالية وحاول مرة أخرى"
|
||||
people:
|
||||
helper:
|
||||
results_for: "%{params} نتائج "
|
||||
people_on_pod_are_aware_of: "الناس في جراب على علم "
|
||||
layouts:
|
||||
application:
|
||||
edit_profile: "تعديل الملف الشخصي"
|
||||
logout: "خروج"
|
||||
shared:
|
||||
aspect_nav:
|
||||
all_aspects: "جميع الجوانب"
|
||||
manage: "نجح"
|
||||
manage_your_aspects: "إدارة جوانب الخاص"
|
||||
sub_header:
|
||||
all_aspects: "جميع الجوانب"
|
||||
manage_aspects: "إدارة الجوانب"
|
||||
publisher:
|
||||
share: "تقاسم"
|
||||
aspect_friends:
|
||||
add_friends: "أضف أصدقاء"
|
||||
albums:
|
||||
album:
|
||||
you: "أنت"
|
||||
new_album:
|
||||
create: "خلق"
|
||||
add_a_new_album: "إضافة ألبوم جديد"
|
||||
show:
|
||||
edit_album: "تعديل الألبوم"
|
||||
albums: "البومات"
|
||||
updated: "تحديث"
|
||||
by: "بواسطة"
|
||||
edit:
|
||||
editing: "التحرير"
|
||||
updated: "تحديث"
|
||||
are_you_sure: "هل أنت متأكد؟"
|
||||
delete_album: "حذف ألبوم"
|
||||
cancel: "إلغاء"
|
||||
index:
|
||||
home: "منزل"
|
||||
new_album: "ألبوم جديد"
|
||||
create:
|
||||
success: ".ألبوما %{name} لقد قمت دعا"
|
||||
update:
|
||||
success: ".تحرير بنجاح %{name} الألبوم"
|
||||
failure: ".%{name} فشلت في تحرير ألبوم"
|
||||
destroy:
|
||||
success: ".حذفها %{name} الألبوم"
|
||||
helper:
|
||||
friends_albums: "أصدقاء البومات"
|
||||
your_albums: "البومات الخاص"
|
||||
aspects:
|
||||
index:
|
||||
photos: "صور"
|
||||
show:
|
||||
photos: "صور"
|
||||
manage:
|
||||
add_a_new_aspect: "أضف جانبا جديدا"
|
||||
add_a_new_friend: "إضافة صديق جديد"
|
||||
show: "عرض"
|
||||
update_aspects: "تحديث الجوانب"
|
||||
requests: "طلبات"
|
||||
ignore_remove: "تجاهل/إزالة"
|
||||
new_aspect:
|
||||
add_a_new_aspect: "أضف جانبا جديدا"
|
||||
create: "خلق"
|
||||
create:
|
||||
success: ".الذي يمكن أن نرى الجانب الجديد الخاص بك Diaspora انقر على علامة الجمع على الجانب الأيسر لنقو"
|
||||
failure: ".فشل إنشاء الجانب"
|
||||
destroy:
|
||||
success: ".%{name} وقد نجحت في إزالة"
|
||||
update:
|
||||
success: ".تحرير بنجاح ,%{name} ,وقد الجانب الخاص بك"
|
||||
move_friends:
|
||||
failure: ".%{real_name} فشل تحرير آسبكت لصدي"
|
||||
success: ".جوانب الموضوع بنجاح"
|
||||
move_friend:
|
||||
failure: "%{inspect} لم تنجح"
|
||||
success: ".أنت الآن عرض صديقك جانبا مختلفا من جوانب نفسك"
|
||||
helper:
|
||||
remove: "نزع"
|
||||
aspect_not_empty: "الجانب يست فارغ"
|
||||
users:
|
||||
edit:
|
||||
editing_profile: "تحرير الملف الشخصي"
|
||||
profile:
|
||||
cancel: "إلغاء"
|
||||
update_profile: "تحديث الملف الشخصي"
|
||||
home: "منزل"
|
||||
diaspora_username: "اسم المستخدم DIASPORA"
|
||||
info: "معلومات"
|
||||
picture: "صورة"
|
||||
editing_profile: "تحرير الملف الشخصي"
|
||||
albums: "البومات"
|
||||
you_dont_have_any_photos: "ليس لديك أي صوا! نتقل إلى"
|
||||
page_to_upload_some: ".الصفحة لتحميل بعض"
|
||||
comments:
|
||||
comment:
|
||||
ago: "منذ"
|
||||
new_comment:
|
||||
comment: "كيف"
|
||||
photos:
|
||||
show:
|
||||
prev: "السابق"
|
||||
full_size: "الحجم الكام"
|
||||
next: "القادم"
|
||||
edit_photo: "تحرير الصو"
|
||||
delete_photo: "حذف الصو"
|
||||
are_you_sure: "هل أنت متأكد؟"
|
||||
comments: "تعليقات"
|
||||
edit:
|
||||
editing: "تصحيح"
|
||||
are_you_sure: "هل أنت متأك؟"
|
||||
delete_photo: "حذف الصو"
|
||||
photo:
|
||||
show_comments: "sعرض التعليقا"
|
||||
posted_a_new_photo_to: "أرسلت صورة جديدة ل"
|
||||
new:
|
||||
new_photo: "جديد الصو"
|
||||
back_to_list: "عودة إلى قائم"
|
||||
post_it: "!بعد ذلك"
|
||||
create:
|
||||
runtime_error: "?فشل تحميل الصور. هل أنت متأكد من أن يتم ربط حزام الأمان"
|
||||
integrity_error: "?فشل تحميل الصور. هل أنت متأكد من أن صورة"
|
||||
type_error: "?فشل تحميل الصور. هل أنت متأكد من وأضيف صورة"
|
||||
update:
|
||||
notice: ".الصورة تحديثها بنجاح"
|
||||
error: ".فشل لتحرير الصو"
|
||||
destroy:
|
||||
notice: ".الصور المحذوفة"
|
||||
registrations:
|
||||
new:
|
||||
sign_up: "قم بالتسجي"
|
||||
create:
|
||||
success: "!Diaspora لقد انضممت"
|
||||
status_messages:
|
||||
new_status_message:
|
||||
tell_me_something_good: "قل لي شيئا جيد"
|
||||
oh_yeah: "!نعم"
|
||||
status_message:
|
||||
show_comments: "عرض التعليقا"
|
||||
delete: "حذف"
|
||||
are_you_sure: "هل أنت متأكد؟"
|
||||
show:
|
||||
status_message: "رسالة الحالة"
|
||||
comments: "تعليقات"
|
||||
are_you_sure: "هل أنت متأكد؟"
|
||||
destroy: "هدم"
|
||||
view_all: "عرض الك"
|
||||
message: "رسالة"
|
||||
owner: "مالك"
|
||||
helper:
|
||||
no_message_to_display: ".أي رسالة لعرضه"
|
||||
people:
|
||||
person:
|
||||
add_friend: "أضف صدي"
|
||||
pending_request: "في انتظار طلب"
|
||||
index:
|
||||
add_friend: "أضف صدي"
|
||||
real_name: "اسمه الحقيقي"
|
||||
diaspora_handle: "اسمك المستعار diaspora"
|
||||
thats_you: "!هذا لك"
|
||||
friend_request_pending: "طلب صديق معلقة"
|
||||
you_have_a_friend_request_from_this_person: "لديك صديق طلب من هذا الشخص"
|
||||
new:
|
||||
new_person: "شخص جديد"
|
||||
back_to_list: "عودة إلى قائمة"
|
||||
show:
|
||||
last_seen: "%{how_long_ago} :المشاهدة الأخيرة"
|
||||
friends_since: "%{how_long_ago} :أصدقاء منذ"
|
||||
save: "حفظ"
|
||||
are_you_sure: "هل أنت متأكد؟"
|
||||
remove_friend: "إزالة صديق"
|
||||
requests:
|
||||
new_request:
|
||||
add_a_new_friend_to: "إضافة صديق جديد إلى"
|
||||
enter_a_diaspora_username: ":Diaspora أدخل اسم مستخدم"
|
||||
your_diaspora_username_is: "%{diaspora_handle} :هو Diaspora اسم المستخدم الخاص"
|
||||
friends_username: "صديق اسم المستخدم"
|
||||
destroy:
|
||||
success: ".أنت الآن أصدقاء"
|
||||
error: "!الرجاء اختيار جانبا"
|
||||
ignore: ".صديق تجاهل الطلب"
|
||||
create:
|
||||
error: "!مع هذا البريد الإلكتروني diaspora لم يتم العثور على بذور"
|
||||
already_friends: "!%{destination_url} كنت بالفعل مع أصدقاء"
|
||||
success: ".%{destination_url} وأرسل طلب صداقة إلى"
|
||||
horribly_wrong: ".ذهب شيء خاطئ"
|
||||
|
|
@ -57,7 +57,7 @@ cs:
|
|||
new_album:
|
||||
create: "vytvořit"
|
||||
add_a_new_album: "Přidat nové album"
|
||||
show:
|
||||
show:
|
||||
edit_album: "Upravit album"
|
||||
albums: "alba"
|
||||
updated: "aktualizované"
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ he:
|
|||
new_album:
|
||||
create: "יצירה"
|
||||
add_a_new_album: "הוספת אלבום חדש"
|
||||
show:
|
||||
show:
|
||||
edit_album: "עריכת אלבום"
|
||||
albums: "אלבומים"
|
||||
updated: "תאריך העדכון"
|
||||
|
|
|
|||
207
config/locales/diaspora/nb.yml
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
# Sample localization file for English. Add more files in this directory for other locales.
|
||||
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
|
||||
|
||||
en:
|
||||
hello: "Hallo, verden!"
|
||||
application:
|
||||
helper:
|
||||
unknown_person: "ukjent person"
|
||||
new_requests: "nye forespørsler"
|
||||
dashboards:
|
||||
helper:
|
||||
home: "hjem"
|
||||
error_messages:
|
||||
helper:
|
||||
invalid_fields: "Ugyldige felter"
|
||||
correct_the_following_errors_and_try_again: "Rett opp de følgende feilene og prøv igjen."
|
||||
people:
|
||||
helper:
|
||||
results_for: " resultater for %{params}"
|
||||
people_on_pod_are_aware_of: " folk i belgen er oppmerksomme på"
|
||||
layouts:
|
||||
application:
|
||||
edit_profile: "endre profil"
|
||||
logout: "logg ut"
|
||||
shared:
|
||||
aspect_nav:
|
||||
all_aspects: "Alle aspekter"
|
||||
manage: "Organisere"
|
||||
manage_your_aspects: "Organiser aspektene dine"
|
||||
sub_header:
|
||||
all_aspects: "Alle aspekter"
|
||||
manage_aspects: "Organiser aspekter"
|
||||
publisher:
|
||||
share: "Del"
|
||||
aspect_friends:
|
||||
add_friends: "legg til venner"
|
||||
albums:
|
||||
album:
|
||||
you: "deg"
|
||||
new_album:
|
||||
create: "Opprett"
|
||||
add_a_new_album: "Legg til et nytt album"
|
||||
show:
|
||||
edit_album: "Endre album"
|
||||
albums: "album"
|
||||
updated: "oppdatert"
|
||||
by: "av"
|
||||
edit:
|
||||
editing: "Redigerer"
|
||||
updated: "oppdatert"
|
||||
are_you_sure: "Er du sikker?"
|
||||
delete_album: "Slett album"
|
||||
cancel: "Avbryt"
|
||||
index:
|
||||
home: "hjem"
|
||||
new_album: "Nytt album"
|
||||
create:
|
||||
success: "Du har oppretta albumet %{name}."
|
||||
update:
|
||||
success: "Albumet %{name} er endra."
|
||||
failure: "Greide ikke å endre albumet %{name}."
|
||||
destroy:
|
||||
success: "Albumet %{name} er sletta."
|
||||
helper:
|
||||
friends_albums: "Venners album"
|
||||
your_albums: "Dine album"
|
||||
aspects:
|
||||
index:
|
||||
photos: "bilder"
|
||||
show:
|
||||
photos: "bilder"
|
||||
manage:
|
||||
add_a_new_aspect: "Legg til et nytt aspekt"
|
||||
add_a_new_friend: "Legg til en ny venn"
|
||||
show: "Vis"
|
||||
update_aspects: "Oppdater aspekter"
|
||||
requests: "Forespørsler"
|
||||
ignore_remove: "Ignorer/fjern"
|
||||
new_aspect:
|
||||
add_a_new_aspect: "Legg til et nytt aspekt"
|
||||
create: "Opprett"
|
||||
create:
|
||||
success: "Klikk på plusstegnet på venstre side for å fortelle Diaspora hvem som kan se det nye aspektet ditt."
|
||||
failure: "Greide ikke å opprette aspektet."
|
||||
destroy:
|
||||
success: "%{name} har blitt fjerna."
|
||||
update:
|
||||
success: "Aspektet ditt, %{name}, har blitt endra."
|
||||
move_friends:
|
||||
failure: "Greide ikke å endre aspektet for vennen %{real_name}."
|
||||
success: "Aspektene har blitt endra."
|
||||
move_friend:
|
||||
failure: "virka ikke %{inspect}"
|
||||
success: "Vennen din ser nå et annet aspekt av deg."
|
||||
helper:
|
||||
remove: "fjern"
|
||||
aspect_not_empty: "Aspektet er ikke tomt"
|
||||
users:
|
||||
edit:
|
||||
editing_profile: "Redigerer profil"
|
||||
profile:
|
||||
cancel: "Avbryt"
|
||||
update_profile: "Oppdater profil"
|
||||
home: "Hjem"
|
||||
diaspora_username: "DIASPORA-BRUKERNAVN"
|
||||
info: "Informasjon"
|
||||
picture: "Bilde"
|
||||
editing_profile: "Redigerer profil"
|
||||
albums: "Album"
|
||||
you_dont_have_any_photos: "Du har ikke noen bilder! Gå til"
|
||||
page_to_upload_some: "for å laste opp noen."
|
||||
comments:
|
||||
comment:
|
||||
ago: "sia"
|
||||
new_comment:
|
||||
comment: "Kommenter"
|
||||
photos:
|
||||
show:
|
||||
prev: "forrige"
|
||||
full_size: "full størrelse"
|
||||
next: "neste"
|
||||
edit_photo: "Rediger bilde"
|
||||
delete_photo: "Slett bilde"
|
||||
are_you_sure: "Er du sikker?"
|
||||
comments: "kommentarer"
|
||||
edit:
|
||||
editing: "Redigerer"
|
||||
are_you_sure: "Er du sikker?"
|
||||
delete_photo: "Slett bilde"
|
||||
photo:
|
||||
show_comments: "vis kommentarer"
|
||||
posted_a_new_photo_to: "la til ett nytt bilde i"
|
||||
new:
|
||||
new_photo: "Nytt bilde"
|
||||
back_to_list: "Tilbake til lista"
|
||||
post_it: "legg ut!"
|
||||
create:
|
||||
runtime_error: "Greide ikke å laste opp bildet. Er du sikker på at setebeltet er festa?"
|
||||
integrity_error: "Greide ikke å laste opp bildet. Er du sikker på at det var et bilde?"
|
||||
type_error: "Greide ikke å laste opp bildet. Er du sikker på at et bilde ble lagt til?"
|
||||
update:
|
||||
notice: "Bildet er oppdatert."
|
||||
error: "Greide ikke å endre bildet."
|
||||
destroy:
|
||||
notice: "Bildet er sletta."
|
||||
registrations:
|
||||
new:
|
||||
sign_up: "Registrer deg"
|
||||
create:
|
||||
success: "Du er nå med i Diaspora!"
|
||||
status_messages:
|
||||
new_status_message:
|
||||
tell_me_something_good: "Fortell noe tøft"
|
||||
oh_yeah: "Ja da!"
|
||||
status_message:
|
||||
show_comments: "vis kommentarer"
|
||||
delete: "Slett"
|
||||
are_you_sure: "Er du sikker?"
|
||||
show:
|
||||
status_message: "Statusmelding"
|
||||
comments: "kommentarer"
|
||||
are_you_sure: "Er du sikker?"
|
||||
destroy: "Utslett"
|
||||
view_all: "Vis alle"
|
||||
message: "Melding"
|
||||
owner: "Eier"
|
||||
helper:
|
||||
no_message_to_display: "Ingen melding å vise."
|
||||
people:
|
||||
person:
|
||||
add_friend: "legg til venn"
|
||||
pending_request: "venter på svar"
|
||||
index:
|
||||
add_friend: "legg til venn"
|
||||
real_name: "ekte navn"
|
||||
diaspora_handle: "diaspora-bruker"
|
||||
thats_you: "det er deg!"
|
||||
friend_request_pending: "ubesvart venneforespørsel"
|
||||
you_have_a_friend_request_from_this_person: "du har en venneforespørsel fra denne personen"
|
||||
new:
|
||||
new_person: "Ny person"
|
||||
back_to_list: "Tilbake til lista"
|
||||
show:
|
||||
last_seen: "sist sett: %{how_long_ago}"
|
||||
friends_since: "venner sia: %{how_long_ago}"
|
||||
save: "lagre"
|
||||
are_you_sure: "Er du sikker?"
|
||||
remove_friend: "fjern venn"
|
||||
requests:
|
||||
new_request:
|
||||
add_a_new_friend_to: "Legg til en ny venn i"
|
||||
enter_a_diaspora_username: "Skriv en Diaspora-bruker:"
|
||||
your_diaspora_username_is: "Din Diaspora-bruker er: %{diaspora_handle}"
|
||||
friends_username: "Brukeren til vennen"
|
||||
destroy:
|
||||
success: "Dere er nå venner."
|
||||
error: "Velg et aspekt først!"
|
||||
ignore: "Ignorerte venneforespørsel"
|
||||
create:
|
||||
error: "Fant ingen diasporabruker med denne e-posten!"
|
||||
already_friends: "Du er allerede venn med %{destination_url}!"
|
||||
success: "Du sendte en venneforespørsel til %{destination_url}."
|
||||
horribly_wrong: "Noe gikk forferdelig galt."
|
||||
|
|
@ -9,7 +9,7 @@ Diaspora::Application.routes.draw do
|
|||
resources :requests, :except => [:edit, :update]
|
||||
resources :photos, :except => [:index]
|
||||
resources :albums
|
||||
|
||||
|
||||
# added public route to user
|
||||
match 'public/:username', :to => 'users#public'
|
||||
resources :users, :except => [:create, :new, :show]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env sprinkle -s
|
||||
#
|
||||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3. See
|
||||
# the COPYRIGHT file.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
||||
# files.
|
||||
|
||||
|
|
@ -191,7 +191,7 @@ Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should not be checked$/ do |
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Then /^(?:|I )should be on (.+)$/ do |page_name|
|
||||
current_path = URI.parse(current_url).path
|
||||
if current_path.respond_to? :should
|
||||
|
|
@ -205,8 +205,8 @@ Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
|
|||
query = URI.parse(current_url).query
|
||||
actual_params = query ? CGI.parse(query) : {}
|
||||
expected_params = {}
|
||||
expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')}
|
||||
|
||||
expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')}
|
||||
|
||||
if actual_params.respond_to? :should
|
||||
actual_params.should == expected_params
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
||||
# files.
|
||||
|
||||
|
|
@ -24,7 +24,7 @@ Capybara.default_selector = :css
|
|||
|
||||
WebMock.disable_net_connect!(:allow_localhost => true)
|
||||
|
||||
# If you set this to false, any error raised from within your app will bubble
|
||||
# If you set this to false, any error raised from within your app will bubble
|
||||
# up to your step definition and out to cucumber unless you catch it somewhere
|
||||
# on the way. You can make Rails rescue errors and render error pages on a
|
||||
# per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
|
||||
|
|
|
|||
|
|
@ -62,9 +62,9 @@ module Diaspora
|
|||
@user.visible_posts(:person_id => @user.person.id, :public=>true).inject("") do |xml,curr|
|
||||
if curr.respond_to?(:to_activity)
|
||||
unless xml
|
||||
curr.to_activity
|
||||
curr.to_activity
|
||||
else
|
||||
xml + curr.to_activity
|
||||
xml + curr.to_activity
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -38,7 +38,8 @@ module Diaspora
|
|||
end
|
||||
|
||||
def dispatch_friend_acceptance(request, requester)
|
||||
salmon request, :to => requester
|
||||
friend_acceptance = salmon(request)
|
||||
push_to_person requester, friend_acceptance.xml_for(requester)
|
||||
request.destroy unless request.callback_url.include? url
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ module Salmon
|
|||
salmon.magic_sig = MagicSigEnvelope.create(user , user.person.aes_encrypt(activity, aes_key_hash))
|
||||
salmon
|
||||
end
|
||||
|
||||
|
||||
def self.parse(xml, user)
|
||||
slap = self.new
|
||||
doc = Nokogiri::XML(xml)
|
||||
|
|
@ -63,6 +63,7 @@ module Salmon
|
|||
### Header ##
|
||||
decrypted_header = user.decrypt(doc.search('encrypted_header').text)
|
||||
header_doc = Nokogiri::XML(decrypted_header)
|
||||
slap.author_email= header_doc.search('uri').text.split("acct:").last
|
||||
slap.aes_key = header_doc.search('aes_key').text
|
||||
slap.iv = header_doc.search('iv').text
|
||||
|
||||
|
|
@ -81,8 +82,6 @@ module Salmon
|
|||
|
||||
raise ArgumentError, "Magic Signature data must be signed with RSA-SHA256, was #{slap.magic_sig.alg}" unless 'RSA-SHA256' == slap.magic_sig.alg
|
||||
|
||||
uri = doc.search('uri').text
|
||||
slap.author_email = uri.split("acct:").last
|
||||
slap
|
||||
end
|
||||
|
||||
|
|
@ -91,10 +90,6 @@ module Salmon
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<entry xmlns='http://www.w3.org/2005/Atom'>
|
||||
<encrypted_header>#{person.encrypt(decrypted_header)}</encrypted_header>
|
||||
<author>
|
||||
<name>#{@author.real_name}</name>
|
||||
<uri>acct:#{@author.diaspora_handle}</uri>
|
||||
</author>
|
||||
#{@magic_sig.to_xml}
|
||||
</entry>
|
||||
ENTRY
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
||||
# files.
|
||||
|
||||
|
|
|
|||
0
public/javascripts/fancybox/blank.gif
Executable file → Normal file
|
Before Width: | Height: | Size: 43 B After Width: | Height: | Size: 43 B |
0
public/javascripts/fancybox/fancy_close.png
Executable file → Normal file
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
public/javascripts/fancybox/fancy_loading.png
Executable file → Normal file
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
0
public/javascripts/fancybox/fancy_nav_left.png
Executable file → Normal file
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
0
public/javascripts/fancybox/fancy_nav_right.png
Executable file → Normal file
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
0
public/javascripts/fancybox/fancy_shadow_e.png
Executable file → Normal file
|
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 107 B |
0
public/javascripts/fancybox/fancy_shadow_n.png
Executable file → Normal file
|
Before Width: | Height: | Size: 106 B After Width: | Height: | Size: 106 B |
0
public/javascripts/fancybox/fancy_shadow_ne.png
Executable file → Normal file
|
Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 347 B |
0
public/javascripts/fancybox/fancy_shadow_nw.png
Executable file → Normal file
|
Before Width: | Height: | Size: 324 B After Width: | Height: | Size: 324 B |
0
public/javascripts/fancybox/fancy_shadow_s.png
Executable file → Normal file
|
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 111 B |
0
public/javascripts/fancybox/fancy_shadow_se.png
Executable file → Normal file
|
Before Width: | Height: | Size: 352 B After Width: | Height: | Size: 352 B |
0
public/javascripts/fancybox/fancy_shadow_sw.png
Executable file → Normal file
|
Before Width: | Height: | Size: 340 B After Width: | Height: | Size: 340 B |
0
public/javascripts/fancybox/fancy_shadow_w.png
Executable file → Normal file
|
Before Width: | Height: | Size: 103 B After Width: | Height: | Size: 103 B |
0
public/javascripts/fancybox/fancy_title_left.png
Executable file → Normal file
|
Before Width: | Height: | Size: 503 B After Width: | Height: | Size: 503 B |
0
public/javascripts/fancybox/fancy_title_main.png
Executable file → Normal file
|
Before Width: | Height: | Size: 96 B After Width: | Height: | Size: 96 B |
0
public/javascripts/fancybox/fancy_title_over.png
Executable file → Normal file
|
Before Width: | Height: | Size: 70 B After Width: | Height: | Size: 70 B |
0
public/javascripts/fancybox/fancy_title_right.png
Executable file → Normal file
|
Before Width: | Height: | Size: 506 B After Width: | Height: | Size: 506 B |
0
public/javascripts/fancybox/fancybox-x.png
Executable file → Normal file
|
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 203 B |
0
public/javascripts/fancybox/fancybox-y.png
Executable file → Normal file
|
Before Width: | Height: | Size: 176 B After Width: | Height: | Size: 176 B |
0
public/javascripts/fancybox/fancybox.png
Executable file → Normal file
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
0
public/javascripts/jquery.cycle/src/jquery.cycle.lite.js
Executable file → Normal file
0
public/stylesheets/blueprint/plugins/buttons/icons/cross.png
Executable file → Normal file
|
Before Width: | Height: | Size: 655 B After Width: | Height: | Size: 655 B |
0
public/stylesheets/blueprint/plugins/buttons/icons/key.png
Executable file → Normal file
|
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 455 B |
0
public/stylesheets/blueprint/plugins/buttons/icons/tick.png
Executable file → Normal file
|
Before Width: | Height: | Size: 537 B After Width: | Height: | Size: 537 B |
0
public/stylesheets/brandongrotesque_light/Brandon_light-webfont.eot
Executable file → Normal file
0
public/stylesheets/brandongrotesque_light/Brandon_light-webfont.ttf
Executable file → Normal file
0
public/stylesheets/brandongrotesque_light/Brandon_light-webfont.woff
Executable file → Normal file
0
public/stylesheets/brandongrotesque_light/Extras/alt_base64_stylesheet.css
Executable file → Normal file
0
public/stylesheets/loading.gif
Executable file → Normal file
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
|
@ -11,7 +11,7 @@
|
|||
# USAGE: ./script/ubuntu-setup.bash
|
||||
# Do NOT run this script as root.
|
||||
|
||||
# Set extented globbing
|
||||
# Set extented globbing
|
||||
shopt -s extglob
|
||||
|
||||
# fail on error
|
||||
|
|
@ -23,29 +23,29 @@ We need to do some actions as an ordinary user. We use sudo where necessary." &&
|
|||
# Check if the user has sudo privileges.
|
||||
sudo -v >/dev/null 2>&1 || { echo $(whoami) has no sudo privileges ; exit 1; }
|
||||
|
||||
# Check if universal repository is enabled
|
||||
# Check if universal repository is enabled
|
||||
grep -i universe /etc/apt/sources.list > /dev/null || \
|
||||
{ echo "Please enable universe repository" ; exit 1 ; }
|
||||
|
||||
# Make sure that we only install the latest version of packages
|
||||
sudo apt-get update
|
||||
|
||||
# Check if wget is installed
|
||||
# Check if wget is installed
|
||||
test wget || { echo "Installing wget.." && sudo apt-get install wget \
|
||||
&& echo "Installed wget.." ; }
|
||||
|
||||
# Install build tools
|
||||
# Install build tools
|
||||
echo "Installing build tools.."
|
||||
sudo apt-get -y --no-install-recommends install \
|
||||
build-essential libxslt1.1 libxslt1-dev libxml2
|
||||
echo "..Done installing build tools"
|
||||
|
||||
# Install Ruby 1.8.7
|
||||
echo "Installing ruby-full Ruby 1.8.7.."
|
||||
# Install Ruby 1.8.7
|
||||
echo "Installing ruby-full Ruby 1.8.7.."
|
||||
sudo apt-get -y --no-install-recommends install ruby-full
|
||||
echo "..Done installing Ruby"
|
||||
|
||||
# Install Rake
|
||||
# Install Rake
|
||||
echo "Installing rake.."
|
||||
sudo apt-get -y --no-install-recommends install rake
|
||||
echo "..Done installing rake"
|
||||
|
|
@ -121,8 +121,8 @@ echo "Fetching and installing ruby gems.."
|
|||
echo "."
|
||||
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
|
||||
echo "."
|
||||
fi
|
||||
)
|
||||
fi
|
||||
)
|
||||
echo "Done installing the gems.."
|
||||
|
||||
# Install bundler
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ describe PublicsController do
|
|||
|
||||
user.reload
|
||||
user.visible_post_ids.include?(message.id).should be false
|
||||
|
||||
|
||||
xml = user2.salmon(message).xml_for(user.person)
|
||||
|
||||
post :receive, :id => user.person.id, :xml => xml
|
||||
|
|
|
|||
|
|
@ -20,11 +20,11 @@ describe UsersController do
|
|||
|
||||
it "doesn't overwrite the profile photo when an empty string is passed in" do
|
||||
image_url = @user.person.profile.image_url
|
||||
put("update", :id => @user.id, "user"=> {"profile"=>
|
||||
put("update", :id => @user.id, "user"=> {"profile"=>
|
||||
{"image_url" => "",
|
||||
"last_name" => @user.person.profile.last_name,
|
||||
"first_name" => @user.person.profile.first_name}})
|
||||
|
||||
|
||||
@user.person.profile.image_url.should == image_url
|
||||
end
|
||||
end
|
||||
|
|
@ -33,33 +33,33 @@ describe UsersController do
|
|||
it 'should change a users password ' do
|
||||
old_password = @user.encrypted_password
|
||||
|
||||
put("update", :id => @user.id, "user"=> {"password" => "foobaz", 'password_confirmation' => "foobaz","profile"=>
|
||||
put("update", :id => @user.id, "user"=> {"password" => "foobaz", 'password_confirmation' => "foobaz","profile"=>
|
||||
{"image_url" => "",
|
||||
"last_name" => @user.person.profile.last_name,
|
||||
"first_name" => @user.person.profile.first_name}})
|
||||
"first_name" => @user.person.profile.first_name}})
|
||||
|
||||
@user.reload
|
||||
@user.encrypted_password.should_not == old_password
|
||||
end
|
||||
|
||||
it 'should not change a password if they do not match' do
|
||||
old_password = @user.encrypted_password
|
||||
put("update", :id => @user.id, "user"=> {"password" => "foobarz", 'password_confirmation' => "not_the_same","profile"=>
|
||||
it 'should not change a password if they do not match' do
|
||||
old_password = @user.encrypted_password
|
||||
put("update", :id => @user.id, "user"=> {"password" => "foobarz", 'password_confirmation' => "not_the_same","profile"=>
|
||||
{"image_url" => "",
|
||||
"last_name" => @user.person.profile.last_name,
|
||||
"first_name" => @user.person.profile.first_name}})
|
||||
"first_name" => @user.person.profile.first_name}})
|
||||
@user.reload
|
||||
@user.encrypted_password.should == old_password
|
||||
end
|
||||
|
||||
|
||||
it 'should not update if the password fields are left blank' do
|
||||
|
||||
old_password = @user.encrypted_password
|
||||
put("update", :id => @user.id, "user"=> {"password" => "", 'password_confirmation' => "","profile"=>
|
||||
|
||||
it 'should not update if the password fields are left blank' do
|
||||
|
||||
old_password = @user.encrypted_password
|
||||
put("update", :id => @user.id, "user"=> {"password" => "", 'password_confirmation' => "","profile"=>
|
||||
{"image_url" => "",
|
||||
"last_name" => @user.person.profile.last_name,
|
||||
"first_name" => @user.person.profile.first_name}})
|
||||
"first_name" => @user.person.profile.first_name}})
|
||||
@user.reload
|
||||
@user.encrypted_password.should == old_password
|
||||
end
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ describe Diaspora::Parser do
|
|||
before do
|
||||
@user = Factory.create(:user, :email => "bob@aol.com")
|
||||
@aspect = @user.aspect(:name => 'spies')
|
||||
|
||||
|
||||
@user3 = Factory.create :user
|
||||
@person = @user3.person
|
||||
@user2 = Factory.create(:user)
|
||||
|
|
|
|||
|
|
@ -11,17 +11,17 @@ describe Salmon do
|
|||
let(:post){ user.post :status_message, :message => "hi", :to => user.aspect(:name => "sdg").id }
|
||||
|
||||
let!(:created_salmon) {Salmon::SalmonSlap.create(user, post.to_diaspora_xml)}
|
||||
|
||||
|
||||
describe '#create' do
|
||||
|
||||
it 'has data in the magic envelope' do
|
||||
created_salmon.magic_sig.data.should_not be nil
|
||||
end
|
||||
|
||||
|
||||
it 'has no parsed_data' do
|
||||
created_salmon.parsed_data.should be nil
|
||||
end
|
||||
|
||||
|
||||
it 'sets aes and iv key' do
|
||||
created_salmon.aes_key.should_not be nil
|
||||
created_salmon.iv.should_not be nil
|
||||
|
|
@ -33,7 +33,7 @@ describe Salmon do
|
|||
user.aes_decrypt(decoded_string, key_hash).should == post.to_diaspora_xml
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
describe '#xml_for' do
|
||||
let(:xml) {created_salmon.xml_for user2.person}
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ describe Salmon do
|
|||
|
||||
context 'marshaling' do
|
||||
let(:xml) {created_salmon.xml_for user2.person}
|
||||
let(:parsed_salmon) { Salmon::SalmonSlap.parse(xml, user2)}
|
||||
let(:parsed_salmon) { Salmon::SalmonSlap.parse(xml, user2)}
|
||||
|
||||
it 'should parse out the aes key' do
|
||||
parsed_salmon.aes_key.should == created_salmon.aes_key
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
require File.dirname(__FILE__) + '/../spec_helper'
|
||||
|
||||
describe FbStatus do
|
||||
|
||||
|
||||
let(:fb_status) { Factory.create :fb_status }
|
||||
|
||||
|
||||
it 'is valid' do
|
||||
fb_status.should be_valid
|
||||
end
|
||||
|
|
@ -22,7 +22,7 @@ describe FbStatus do
|
|||
it 'has graph_id' do
|
||||
status_from_json.graph_id.should == json_object['id']
|
||||
end
|
||||
|
||||
|
||||
it 'has author_id' do
|
||||
status_from_json.author_id.should == json_object['from']['id']
|
||||
end
|
||||
|
|
@ -39,5 +39,5 @@ describe FbStatus do
|
|||
status_from_json.updated_time.should == Time.parse(json_object['updated_time'])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ describe 'user encryption' do
|
|||
unstub_mocha_stubs
|
||||
@user = Factory.create(:user)
|
||||
@aspect = @user.aspect(:name => 'dudes')
|
||||
|
||||
|
||||
@user2 = Factory.create(:user)
|
||||
@aspect2 = @user2.aspect(:name => 'dudes')
|
||||
end
|
||||
|
|
|
|||