Class: Management::UserController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/management/user_controller.rb

Instance Method Summary collapse

Instance Method Details

#complete_login(user) ⇒ Object



38
39
# File 'app/controllers/management/user_controller.rb', line 38

def (user)
end

#complete_logout(user) ⇒ Object



72
73
# File 'app/controllers/management/user_controller.rb', line 72

def complete_logout(user)
end

#create_firstObject

first time setup



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'app/controllers/management/user_controller.rb', line 98

def create_first
  redirect_to action: 'login' and return unless User.list.size == 0

  @user = User.new(params[:user])
  
  if request.post?
    @user.active = true
    @user.is_superuser = true
    
    if @user.save
      flash[:notice] = 'User created successfully. Please log in now.'
      redirect_to action: 'login'
    else
      @errors = 'The following errors occurred:'
      @errors = @user.errors.full_messages
      flash.now[:error] = @errors
    end
  end
end

#loginObject

login page



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/controllers/management/user_controller.rb', line 9

def 
  if request.post?
    test = ::User.find_by_username(params[:login][:username]) rescue nil
    if (test && test.password_hash == User.hash_password(params[:login][:password], test.password_hash[0,16]))
      if test.active != true && test.active != 1
        flash[:error] = 'Your account has been disabled by an administrator.'
        redirect_to action: 'login' and return false
      end
      session[:user_authenticated] = true
      
      session[:user_id] = test.id
      session[:user_username] = test.username
      session[:user_first_name] = test.first_name
      session[:user_last_name] = test.last_name
      
      (test)
      
      if params[:redirect_on_success]
        redirect_to params[:redirect_on_success] and return
      else
        restore_request(test)
      end
    else
      flash[:error] = 'Invalid username or password, please try again.'
      redirect_to params[:redirect_on_failure] || { action: 'login' }
    end
  end
end

#logoutObject

logout



62
63
64
65
66
67
68
69
70
# File 'app/controllers/management/user_controller.rb', line 62

def logout
  complete_logout(User.find_by_id(session[:user_id])) if session[:authenticated]
  reset_session
  cookies.delete(:user_auth_status)
  flash[:notice] = 'You have been logged out of the system.'
  redirect_to UserRedirectAfterLogout and return if defined?(UserRedirectAfterLogout)
  redirect_to params[:redirect] and return unless params[:redirect].blank?
  redirect_to :action => 'login'
end

#profileObject

update profile



80
81
82
83
84
85
86
87
88
89
90
91
# File 'app/controllers/management/user_controller.rb', line 80

def profile
  @user = User.find(session[:user_id])
  
  if request.post?
    @user.attributes = @user.attributes.update(params[:user])
    
    if @user.save
      flash[:notice] = 'Your profile has been updated.'
      redirect_to :action => 'profile' and return true
    end
  end
end

#redirect_to_default(user) ⇒ Object



52
53
54
55
# File 'app/controllers/management/user_controller.rb', line 52

def redirect_to_default(user)
  redirect_to UserRedirectAfterLogin and return if defined?(UserRedirectAfterLogin)
  redirect_to :controller => '/management/default', :action => 'index'
end

#restore_request(user) ⇒ Object



41
42
43
44
45
46
47
48
49
50
# File 'app/controllers/management/user_controller.rb', line 41

def restore_request(user)
  # restore saved request uri & params if they exist
  if session[:saved_user_uri]
    uri = session[:saved_user_uri]
    session[:saved_user_uri] = nil
    redirect_to uri
  else
    return redirect_to_default(user)
  end
end