Sorry for the late update. That transition fixed it. Thanks

On Feb 28, 5:18 pm, Scorpio <[email protected]> wrote:
> Thats the problem. I figured that much out. Using reset on an inactive
> user does not send the activation email.
>
> On Feb 28, 4:07 pm, Bryan Larsen <[email protected]> wrote:
>
>
>
>
>
>
>
> > 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 
> > > athttp://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.

Reply via email to