diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index 0442c817..b5e7c9ca 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -47,6 +47,10 @@ def create @person.save if @person.errors.empty? session[:verified_identity_url] = nil + if global_prefs.can_send_email? && global_prefs.registration_notification? + admin = Person.find_first_admin + PersonMailer.deliver_registration_notification(admin,@person) + end if global_prefs.email_verifications? @person.email_verifications.create flash[:notice] = %(Thanks for signing up! Check your email @@ -111,6 +115,7 @@ def update flash[:success] = 'Profile updated!' format.html { redirect_to(@person) } else + @all_categories = Category.find(:all, :order => "parent_id, name") if preview? @preview = @person.description = params[:person][:description] end diff --git a/app/models/person.rb b/app/models/person.rb index 9d0a8489..fd4ec99b 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -117,6 +117,7 @@ class Person < ActiveRecord::Base before_create :create_blog, :check_config_for_deactivation after_create :create_account + after_create :create_address before_save :encrypt_password before_validation :prepare_email, :handle_nil_description #after_create :connect_to_admin @@ -243,6 +244,16 @@ def formatted_categories categories.collect { |cat| cat.long_name + "
"}.to_s.chop.chop.chop.chop end + def create_address + address = Address.new( :name => 'personal' ) + address.person = self + address.save + end + + def address + addresses.first + end + ## Account helpers def create_account diff --git a/app/models/person_mailer.rb b/app/models/person_mailer.rb index 1fb5af38..d468b5dd 100644 --- a/app/models/person_mailer.rb +++ b/app/models/person_mailer.rb @@ -62,6 +62,14 @@ def email_verification(ev) body "server_name" => server, "code" => ev.code end + + def registration_notification(admin, new_peep) + from "Registration notification " + recipients admin.email + subject formatted_subject("New registration") + body "domain" => server, + "url" => person_path(new_peep) + end private diff --git a/app/models/preference.rb b/app/models/preference.rb index 930c61de..ba5db321 100644 --- a/app/models/preference.rb +++ b/app/models/preference.rb @@ -21,7 +21,7 @@ class Preference < ActiveRecord::Base attr_accessible :app_name, :server_name, :domain, :smtp_server, :exception_notification, :email_notifications, :email_verifications, :analytics, - :about, :demo, :whitelist, :gmail + :about, :demo, :whitelist, :gmail, :registration_notification validates_presence_of :domain, :if => :using_email? validates_presence_of :smtp_server, :if => :using_email? diff --git a/app/views/admin/preferences/edit.html.erb b/app/views/admin/preferences/edit.html.erb index 8100586e..2a6d6b21 100644 --- a/app/views/admin/preferences/edit.html.erb +++ b/app/views/admin/preferences/edit.html.erb @@ -73,6 +73,15 @@
+

Notify first admin for registrations

+
+ + <%= f.check_box :registration_notification %> +
+ +
+

diff --git a/app/views/admin/preferences/show.html.erb b/app/views/admin/preferences/show.html.erb index e0bec912..f468c6f3 100644 --- a/app/views/admin/preferences/show.html.erb +++ b/app/views/admin/preferences/show.html.erb @@ -40,6 +40,11 @@ <%=h @preferences.email_verifications %>

+

+ Notify first admin of registrations: + <%=h @preferences.registration_notification %> +

+

Demo site: <%=h @preferences.demo %> diff --git a/app/views/broadcast_mailer/spew.erb b/app/views/broadcast_mailer/spew.erb index ea189ffc..1c87bdef 100644 --- a/app/views/broadcast_mailer/spew.erb +++ b/app/views/broadcast_mailer/spew.erb @@ -1,3 +1,3 @@ Hi <%= @person.name %>

-<%= simple_format_without_paragraph @message %>

+<%= @message %>

<%= @preferences_note %> diff --git a/app/views/categories/_providers.html.erb b/app/views/categories/_providers.html.erb index 42dd5ab4..be6f7cec 100644 --- a/app/views/categories/_providers.html.erb +++ b/app/views/categories/_providers.html.erb @@ -1,4 +1,8 @@

Providers

diff --git a/app/views/categories/show.html.erb b/app/views/categories/show.html.erb index 7a3cd357..a35385ce 100644 --- a/app/views/categories/show.html.erb +++ b/app/views/categories/show.html.erb @@ -1,14 +1,20 @@ <%- column_div :type => :primary do -%>

<%=h @category.long_name %>

+ <%- if @reqs.empty? -%> +

No reqs (yet!)

+ <%- else -%>

Requests

+ <%- end -%> + <%- if admin? -%> <%= link_to 'Edit', edit_category_path(@category) if 0 == @reqs.size %> + <%- end -%> <%- end -%> <%- column_div :type => :secondary do -%> - <%= render :partial => 'providers', :locals => { :category => @category } %> + <%= render :partial => 'providers', :locals => { :category => @category } %> <%- end -%> diff --git a/app/views/messages/_full_message.html.erb b/app/views/messages/_full_message.html.erb index 2cf99548..8465dc3b 100644 --- a/app/views/messages/_full_message.html.erb +++ b/app/views/messages/_full_message.html.erb @@ -6,7 +6,7 @@ <%= image_link full_message.sender, :class => "photo", :image => :thumbnail %>
- <%= display full_message.content %> + <%= display simple_format_without_paragraph full_message.content %>

Sent <%= time_ago_in_words full_message.created_at %> ago | <%= link_to "Reply", reply_message_path(full_message) %> | @@ -17,4 +17,4 @@ :method => :put %> <% end -%>

- \ No newline at end of file + diff --git a/app/views/person_mailer/registration_notification.html.erb b/app/views/person_mailer/registration_notification.html.erb new file mode 100644 index 00000000..d860eb6e --- /dev/null +++ b/app/views/person_mailer/registration_notification.html.erb @@ -0,0 +1,4 @@ +A new person has registered: + +http://<%= @domain %><%= @url %> + diff --git a/db/migrate/20081110045632_add_registration_notification_preferences.rb b/db/migrate/20081110045632_add_registration_notification_preferences.rb new file mode 100644 index 00000000..48296d63 --- /dev/null +++ b/db/migrate/20081110045632_add_registration_notification_preferences.rb @@ -0,0 +1,9 @@ +class AddRegistrationNotificationPreferences < ActiveRecord::Migration + def self.up + add_column :preferences, :registration_notification, :boolean, :default => false + end + + def self.down + remove_column :preferences, :registration_notification + end +end