This commit is contained in:
Wojciech Todryk 2012-03-24 13:23:34 +01:00
parent 7de07db812
commit 0daf487816
125 changed files with 1629 additions and 482 deletions

View file

@ -2,8 +2,9 @@ require 'yaml'
class ApplicationController < ActionController::Base
protect_from_forgery
#logger.custom("session",session.inspect)
#protect_from_forgery
before_filter :load_settings,:current_user,:set_locale
#before_filter :plugins_configuration
@ -32,13 +33,14 @@ class ApplicationController < ActionController::Base
end
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
@current_user ||= User.find(session[:user_id]) if session[:user_id]
logger.custom("current_user",@current_user.inspect)
end
def check_current_user
if @current_user.nil?
session["return_to"] = request.fullpath
redirect_to :controller => 'user', :action => 'login'
redirect_to :controller => 'user', :action => 'login'
return false
end
end

View file

@ -3,16 +3,16 @@ require 'imap_session'
class FoldersController < ApplicationController
include ImapMailboxModule
include ImapMailboxModule
include ImapSessionModule
before_filter :check_current_user,:selected_folder, :get_current_folders
before_filter :check_current_user,:selected_folder, :get_current_folders
before_filter :open_imap_session, :except => [:index,:show_hide,:system]
after_filter :close_imap_session, :except => [:index,:show_hide,:system]
before_filter :get_folders
before_filter :prepare_buttons_to_folders
#before_filter :prepare_buttons_to_folders
#theme :theme_resolver
@ -153,16 +153,16 @@ class FoldersController < ApplicationController
protected
def prepare_buttons_to_folders
@buttons = []
@buttons << {:text => 'show_hide',:scope=>'folder',:image => 'flag.png'}
@buttons << {:text => 'refresh',:scope=>'folder',:image => 'refresh.png'}
end
#def prepare_buttons_to_folders
#@buttons = []
#@buttons << {:text => 'show_hide',:scope=>'folder',:image => 'flag.png'}
#@buttons << {:text => 'refresh',:scope=>'folder',:image => 'refresh.png'}
#end
def get_folders
@folders = @current_user.folders
@folders_shown = @current_user.folders.shown
#@folders_system = @current_user.folders.sys
@folders_system = @current_user.folders.sys
@current_user.folders.inbox.first.nil? ? @folder_inbox = "" : @folder_inbox = @current_user.folders.inbox.first.id
@current_user.folders.drafts.first.nil? ? @folder_drafts = "" : @folder_drafts = @current_user.folders.drafts.first.id
@current_user.folders.sent.first.nil? ? @folder_sent = "" : @folder_sent = @current_user.folders.sent.first.id

View file

@ -9,13 +9,14 @@ class InternalController < ApplicationController
ERRORS = [
:internal_server_error,
:not_found,
:unprocessable_entity
:unprocessable_entity,
:allready_configured
].freeze
ERRORS.each do |e|
define_method e do
@title = t(e,:scope=>:internal)
@error = t(e,:scope=>:internal)
flash[:error] = t(e,:scope=>:internal)
render 'error'
end
end
@ -29,7 +30,7 @@ class InternalController < ApplicationController
@title = t(:imap_error,:scope => :internal)
@error = params[:error] || t(:unspecified_error, :scope => :internal)
logger.error "!!! InternalControllerImapError: " + @error
render 'error'
render 'error'
end
def loginfailure
@ -39,12 +40,19 @@ class InternalController < ApplicationController
redirect_to :controller=>'user', :action => 'login'
end
def onlycanlogins
reset_session
flash[:error] = t(:only_can_logins,:scope=>:user)
@current_user = nil
redirect_to :controller=>'user', :action => 'login'
end
#def onlycanlogins
#reset_session
#flash[:error] = t(:only_can_logins,:scope=>:user)
#@current_user = nil
#redirect_to :controller=>'user', :action => 'login'
#end
#def onlycanlogins
#reset_session
#flash[:error] = t(:allready_configured,:scope=>:user)
#@current_user = nil
#redirect_to :controller=>'user', :action => 'login'
#end
def about
render 'internal/about', :layout => 'application'

View file

@ -16,9 +16,9 @@ class MessagesController < ApplicationController
before_filter :prepare_compose_buttons, :only => [:compose]
before_filter :get_system_folders, :only => [:index]
before_filter :create_message_with_params, :only => [:compose]
before_filter :prepare_multi1_buttons, :only => [:index,:show]
before_filter :prepare_multi2_buttons, :only => [:index]
before_filter :prepare_multi3_buttons, :only => [:show]
#before_filter :prepare_multi1_buttons, :only => [:index,:show]
#before_filter :prepare_multi2_buttons, :only => [:index]
#before_filter :prepare_multi3_buttons, :only => [:show]
after_filter :close_imap_session
#theme :theme_resolver
@ -129,7 +129,9 @@ class MessagesController < ApplicationController
end
end
else
part = Mail::Part.new(mail)
logger.custom('mail',mail.inspect)
part = mail
#part = Mail::Part.new(mail)
part.idx = 0
part.parent_id = @message.uid
if part.isText?
@ -175,7 +177,8 @@ class MessagesController < ApplicationController
if mail.multipart? == true
attachments = mail.attachments
else
attachments << Mail::Part.new(mail)
#attachments << Mail::Part.new(mail)
attachments << mail
end
a = attachments[params[:idx].to_i]
headers['Content-type'] = a.main_type + "/" + a.sub_type
@ -188,23 +191,23 @@ class MessagesController < ApplicationController
protected
def prepare_multi2_buttons
@multi2_buttons = []
@multi2_buttons << {:text => 'trash',:scope=>:message,:image => 'trash.png'}
@multi2_buttons << {:text => 'set_unread',:scope=>:message,:image => 'unseen.png'}
@multi2_buttons << {:text => 'set_read',:scope=>:message,:image => 'seen.png'}
end
#def prepare_multi2_buttons
#@multi2_buttons = []
#@multi2_buttons << {:text => 'trash',:scope=>:message,:image => 'trash.png'}
#@multi2_buttons << {:text => 'set_unread',:scope=>:message,:image => 'unseen.png'}
#@multi2_buttons << {:text => 'set_read',:scope=>:message,:image => 'seen.png'}
#end
def prepare_multi1_buttons
@multi1_buttons = []
@multi1_buttons << {:text => 'copy',:scope=>:message,:image => 'copy.png'}
@multi1_buttons << {:text => 'move',:scope=>:message,:image => 'move.png'}
end
#def prepare_multi1_buttons
#@multi1_buttons = []
#@multi1_buttons << {:text => 'copy',:scope=>:message,:image => 'copy.png'}
#@multi1_buttons << {:text => 'move',:scope=>:message,:image => 'move.png'}
#end
def prepare_multi3_buttons
@multi3_buttons = []
@multi3_buttons << {:text => 'show_header',:scope=>:show,:image => 'zoom.png'}
@multi3_buttons << {:text => 'trash',:scope=>:show,:image => 'trash.png'}
@multi3_buttons << {:text => 'reply',:scope=>:show,:image => 'reply.png'}
end
#def prepare_multi3_buttons
#@multi3_buttons = []
#@multi3_buttons << {:text => 'show_header',:scope=>:show,:image => 'zoom.png'}
#@multi3_buttons << {:text => 'trash',:scope=>:show,:image => 'trash.png'}
#@multi3_buttons << {:text => 'reply',:scope=>:show,:image => 'reply.png'}
#end
end

View file

@ -4,6 +4,12 @@ class UserController < ApplicationController
layout "simple"
def login
# database empty redirect to setup screen
users = User.all
if users.count.zero?
redirect_to :controller => 'user', :action => 'setup'
return false
end
end
def logout
@ -14,29 +20,31 @@ class UserController < ApplicationController
def authenticate
users = User.all
if users.count.zero?
redirect_to :controller => 'user', :action => 'setup'
return false
end
# check if user can use application
if not $defaults["only_can_logins"].nil?
if not $defaults["only_can_logins"].include?(params[:user][:login])
redirect_to :controller => 'internal', :action => 'onlycanlogins'
flash[:error] = t(:only_can_logins,:scope=>:user)
redirect_to :action => 'login'
return false
end
end
user = User.find_by_login(params[:user][:login])
if user.nil?
redirect_to :action => 'unknown' ,:login=> params[:user][:login]
flash[:error] = t(:login_failure,:scope=>:user)
redirect_to :action => 'login'
return false
else
session[:user_id] = user.id
session[:user_id] = user.id
user.set_cached_password(session,params[:user][:password])
if session["return_to"]
redirect_to(session["return_to"])
redirect = session["return_to"]
session["return_to"] = nil
redirect_to(redirect)
else
redirect_to :controller=> 'messages', :action=> 'index'
end
@ -44,17 +52,19 @@ class UserController < ApplicationController
end
end
def loginfailure
end
#def loginfailure
#end
def setup
users = User.all
if !users.count.zero?
redirect_to :controller => 'internal', :action => 'allready_configured'
return false
end
@user = User.new
@server = Server.new
end
def unknown
end
def create
@user = User.new
@ -62,7 +72,7 @@ class UserController < ApplicationController
@user.first_name = params[:user][:first_name]
@user.last_name = params[:user][:last_name]
@server = Server.new
@server = Server.new
@server.name = params[:server][:name]
if @user.valid? and @server.valid?