On Tue, Feb 28, 2012 at 9:51 AM, Scorpio <[email protected]> wrote:
> I've added omniauth to my 1.3 app based on the app from
> https://github.com/enwood/hobo-omniauth-bare-app/
>
> The thing is the app was set to send an activation link and there is
> no way to resend one tho it should.
It looks like your request_password_reset :inactive => :inactive
transition can be used to resend an activation.
> There is also no way to reset the
> password if the user isn't active (It works if he is active.)
Try adding this transition:
transition :reset_password, { :inactive => :inactive }, :available_to
=> :key_holder,
:params => [ :password, :password_confirmation ]
>
> I'm not sure if its due to omniauth as it has an active transition or
> what but it seems to process the controller but doesn't send the
> email. Any ideas?
>
> Relevant models and controllers below.
>
> class UsersController < ApplicationController
>
> hobo_user_controller
>
> auto_actions :all, :except => [ :index, :new, :create ]
> index_action :omniauth_callback
>
> # Normally, users should be created via the user lifecycle, except
> # for the initial user created via the form on the front screen on
> # first run. This method creates the initial user.
> def create
> hobo_create do
> if valid?
> self.current_user = this
> flash[:notice] =
> t("hobo.messages.you_are_site_admin", :default=>"You are now the site
> administrator")
> redirect_to home_page
> end
> end
> end
>
> def omniauth_callback
> # Try and find a user with matching authorization credentials
> if self.this = Authorization.auth(request.env["omniauth.auth"],
> current_user)
> sign_user_in(self.this.user)
> else
> if !request.env["omniauth.auth"].nil?
> raise request.env["omniauth.auth"].to_yaml
> else
> raise request.env["message"].to_yaml
> end
> end
> end
>
> end
>
> class User < ActiveRecord::Base
>
> hobo_user_model # Don't put anything above this
>
> fields do
> name :string, :required, :unique
> email_address :email_address, :login => true, :validate => false
> administrator :boolean, :default => false
> timestamps
> end
>
>
> # --- Associations --- #
> has_many :authorizations
> has_many :comments, :class_name => "Comment", :foreign_key =>
> "owner_id"
> has_many :chapters, :class_name => "Chapter", :foreign_key =>
> "owner_id"
> has_many :pages, :class_name => "Page", :foreign_key => "owner_id"
>
>
> # This gives admin rights and an :active state to the first sign-up.
> # Just remove it if you don't want that
> before_create do |user|
> if !Rails.env.test? && user.class.count == 0
> user.administrator = true
> user.state = "active"
> end
> end
>
>
> # --- Signup lifecycle --- #
>
> lifecycle do
>
> state :inactive, :default => true
> state :active
>
> # Called from Authorization#auth to create a new user with the
> name
> # supplied by the provider.
> create :authorize, :params => [:name], :become => :active
>
> create :signup, :available_to => "Guest",
> :params =>
> [:name, :email_address, :password, :password_confirmation],
> :become => :inactive, :new_key => true do
> UserMailer.activation(self, lifecycle.key).deliver
> end
>
> transition :activate, { :inactive => :active }, :available_to
> => :key_holder
>
> transition :request_password_reset, { :inactive
> => :inactive }, :new_key => true do
> UserMailer.activation(self, lifecycle.key).deliver
> end
>
> transition :request_password_reset, { :active
> => :active }, :new_key => true do
> UserMailer.forgot_password(self, lifecycle.key).deliver
> end
>
> transition :reset_password, { :active => :active }, :available_to
> => :key_holder,
> :params => [ :password, :password_confirmation ]
>
> end
>
> def signed_up?
> state=="active"
> end
>
> # --- Permissions --- #
>
> def create_permitted?
> # Only the initial admin user can be created
> self.class.count == 0
> end
>
> def update_permitted?
> acting_user.administrator? ||
> (acting_user == self && only_changed?
> (:email_address, :crypted_password,
> :current_password, :password,
> :password_confirmation))
> # Note: crypted_password has attr_protected so although it is
> permitted to change, it cannot be changed
> # directly from a form submission.
> end
>
> def destroy_permitted?
> acting_user.administrator?
> end
>
> def view_permitted?(field)
> true
> end
> end
>
>
> class UserMailer < ActionMailer::Base
> default :from => "no-reply@#{host}"
>
> def forgot_password(user, key)
> @user, @key = user, key
> mail( :subject => "#{app_name} -- forgotten password",
> :to => user.email_address )
> end
>
>
> def activation(user, key)
> @user, @key = user, key
> mail( :subject => "#{app_name} -- activate",
> :to => user.email_address )
> end
>
> end
>
> --
> You received this message because you are subscribed to the Google Groups
> "Hobo Users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/hobousers?hl=en.
>
--
You received this message because you are subscribed to the Google Groups "Hobo
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/hobousers?hl=en.