From fac34e1fb21d9310227c4cfc28c3ef03806ba465 Mon Sep 17 00:00:00 2001 From: jessib Date: Thu, 26 Dec 2013 12:37:26 -0800 Subject: Very very rough start to having messages for payment automatically created. --- users/lib/leap_web_users/engine.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'users/lib') diff --git a/users/lib/leap_web_users/engine.rb b/users/lib/leap_web_users/engine.rb index f8ed71c..61131ef 100644 --- a/users/lib/leap_web_users/engine.rb +++ b/users/lib/leap_web_users/engine.rb @@ -8,6 +8,7 @@ require "warden/session_serializer" require "warden/strategies/secure_remote_password" require "webfinger" +require "whenever" module LeapWebUsers class Engine < ::Rails::Engine -- cgit v1.2.3 From c7e66852324714a166dd35dc3d5873a0053dcb9b Mon Sep 17 00:00:00 2001 From: jessib Date: Tue, 7 Jan 2014 12:57:01 -0800 Subject: Some refactoring, to simplify user model, optimize, and allow messages to be sorted by date (although are not now.) Also, rather than use whenever gem, will have cron job created to call task. --- users/lib/leap_web_users/engine.rb | 1 - users/lib/tasks/leap_web_users_tasks.rake | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'users/lib') diff --git a/users/lib/leap_web_users/engine.rb b/users/lib/leap_web_users/engine.rb index 61131ef..f8ed71c 100644 --- a/users/lib/leap_web_users/engine.rb +++ b/users/lib/leap_web_users/engine.rb @@ -8,7 +8,6 @@ require "warden/session_serializer" require "warden/strategies/secure_remote_password" require "webfinger" -require "whenever" module LeapWebUsers class Engine < ::Rails::Engine diff --git a/users/lib/tasks/leap_web_users_tasks.rake b/users/lib/tasks/leap_web_users_tasks.rake index 3d0649c..62bcbe9 100644 --- a/users/lib/tasks/leap_web_users_tasks.rake +++ b/users/lib/tasks/leap_web_users_tasks.rake @@ -2,3 +2,9 @@ # task :leap_web_users do # # Task goes here # end + +# recommended that for our setup, we should have this triggered from a cron job in puppet rather than using whenever gem +desc "Send one month warning messages" +task :leap_web_users do + User.send_one_month_warnings +end -- cgit v1.2.3 From 53808b073f539ba2b442738b6abf97228488e311 Mon Sep 17 00:00:00 2001 From: Azul Date: Tue, 8 Apr 2014 09:12:37 +0200 Subject: moving all of core into toplevel, tests fail. --- users/lib/leap_web_users/engine.rb | 2 -- 1 file changed, 2 deletions(-) (limited to 'users/lib') diff --git a/users/lib/leap_web_users/engine.rb b/users/lib/leap_web_users/engine.rb index f8ed71c..a2be168 100644 --- a/users/lib/leap_web_users/engine.rb +++ b/users/lib/leap_web_users/engine.rb @@ -1,6 +1,4 @@ # thou shall require all your dependencies in an engine. -require "leap_web_core" -require "leap_web_core/ui_dependencies" require "rails_warden" require "ruby-srp" -- cgit v1.2.3 From 9776dd10fc60efde38946588d0955c406f6c1f5e Mon Sep 17 00:00:00 2001 From: Azul Date: Tue, 8 Apr 2014 14:22:56 +0200 Subject: move users: config and lib --- users/lib/leap_web_users.rb | 4 -- users/lib/leap_web_users/engine.rb | 14 ---- users/lib/tasks/leap_web_users_tasks.rake | 10 --- users/lib/warden/session_serializer.rb | 13 ---- .../warden/strategies/secure_remote_password.rb | 81 ---------------------- users/lib/webfinger.rb | 6 -- users/lib/webfinger/host_meta_presenter.rb | 30 -------- users/lib/webfinger/user_presenter.rb | 35 ---------- 8 files changed, 193 deletions(-) delete mode 100644 users/lib/leap_web_users.rb delete mode 100644 users/lib/leap_web_users/engine.rb delete mode 100644 users/lib/tasks/leap_web_users_tasks.rake delete mode 100644 users/lib/warden/session_serializer.rb delete mode 100644 users/lib/warden/strategies/secure_remote_password.rb delete mode 100644 users/lib/webfinger.rb delete mode 100644 users/lib/webfinger/host_meta_presenter.rb delete mode 100644 users/lib/webfinger/user_presenter.rb (limited to 'users/lib') diff --git a/users/lib/leap_web_users.rb b/users/lib/leap_web_users.rb deleted file mode 100644 index e1b7b1f..0000000 --- a/users/lib/leap_web_users.rb +++ /dev/null @@ -1,4 +0,0 @@ -require "leap_web_users/engine" - -module LeapWebUsers -end diff --git a/users/lib/leap_web_users/engine.rb b/users/lib/leap_web_users/engine.rb deleted file mode 100644 index a2be168..0000000 --- a/users/lib/leap_web_users/engine.rb +++ /dev/null @@ -1,14 +0,0 @@ -# thou shall require all your dependencies in an engine. -require "rails_warden" -require "ruby-srp" - -require "warden/session_serializer" -require "warden/strategies/secure_remote_password" - -require "webfinger" - -module LeapWebUsers - class Engine < ::Rails::Engine - - end -end diff --git a/users/lib/tasks/leap_web_users_tasks.rake b/users/lib/tasks/leap_web_users_tasks.rake deleted file mode 100644 index 62bcbe9..0000000 --- a/users/lib/tasks/leap_web_users_tasks.rake +++ /dev/null @@ -1,10 +0,0 @@ -# desc "Explaining what the task does" -# task :leap_web_users do -# # Task goes here -# end - -# recommended that for our setup, we should have this triggered from a cron job in puppet rather than using whenever gem -desc "Send one month warning messages" -task :leap_web_users do - User.send_one_month_warnings -end diff --git a/users/lib/warden/session_serializer.rb b/users/lib/warden/session_serializer.rb deleted file mode 100644 index 81d7076..0000000 --- a/users/lib/warden/session_serializer.rb +++ /dev/null @@ -1,13 +0,0 @@ -module Warden - # Setup Session Serialization - class SessionSerializer - def serialize(record) - [record.class.name, record.id] - end - - def deserialize(keys) - klass, id = keys - klass.constantize.find(id) - end - end -end diff --git a/users/lib/warden/strategies/secure_remote_password.rb b/users/lib/warden/strategies/secure_remote_password.rb deleted file mode 100644 index 2c334c6..0000000 --- a/users/lib/warden/strategies/secure_remote_password.rb +++ /dev/null @@ -1,81 +0,0 @@ -module Warden - module Strategies - class SecureRemotePassword < Warden::Strategies::Base - - def valid? - handshake? || authentication? - end - - def authenticate! - if authentication? - validate! - else # handshake - initialize! - end - end - - protected - - def handshake? - params['A'] && params['login'] - end - - def authentication? - params['client_auth'] && session[:handshake] - end - - def validate! - if client = validate - success!(User.find_by_login(client.username)) - else - Rails.logger.warn "Login attempt failed." - Rails.logger.debug debug_info - Rails.logger.debug "Received: #{params['client_auth']}" - session.delete(:handshake) - fail!(:base => "invalid_user_pass") - end - end - - def validate - session[:handshake].authenticate(params['client_auth']) - end - - def initialize! - if user = User.find_by_login(id) - client = SRP::Client.new user.username, - :verifier => user.verifier, - :salt => user.salt - session[:handshake] = SRP::Session.new(client, params['A']) - custom! json_response(session[:handshake]) - else - fail! :base => 'invalid_user_pass' - end - rescue SRP::InvalidEphemeral - fail!(:base => "invalid_ephemeral") - end - - def json_response(object) - [ 200, - {"Content-Type" => "application/json; charset=utf-8"}, - [object.to_json] - ] - end - - def id - params["id"] || params["login"] - end - - protected - - def debug_info - JSON.pretty_generate(session[:handshake].internal_state) - end - - end - end - Warden::Strategies.add :secure_remote_password, - Warden::Strategies::SecureRemotePassword - -end - - diff --git a/users/lib/webfinger.rb b/users/lib/webfinger.rb deleted file mode 100644 index dd49b41..0000000 --- a/users/lib/webfinger.rb +++ /dev/null @@ -1,6 +0,0 @@ -module Webfinger - - autoload :HostMetaPresenter, 'webfinger/host_meta_presenter' - autoload :UserPresenter, 'webfinger/user_presenter' - -end diff --git a/users/lib/webfinger/host_meta_presenter.rb b/users/lib/webfinger/host_meta_presenter.rb deleted file mode 100644 index 84ab7a9..0000000 --- a/users/lib/webfinger/host_meta_presenter.rb +++ /dev/null @@ -1,30 +0,0 @@ -require 'uri' - -class Webfinger::HostMetaPresenter - def initialize(request) - @request = request - end - - def to_json(options = {}) - { - subject: subject, - links: links - }.to_json(options) - end - - def subject - url = URI.parse(@request.url) - url.path = '' - url.to_s - end - - def links - { lrdd: { type: 'application/xrd+xml', template: webfinger_template } } - end - - protected - - def webfinger_template(path = 'webfinger', query_param='q') - "#{subject}/#{path}?#{query_param}={uri}" - end -end diff --git a/users/lib/webfinger/user_presenter.rb b/users/lib/webfinger/user_presenter.rb deleted file mode 100644 index 329f477..0000000 --- a/users/lib/webfinger/user_presenter.rb +++ /dev/null @@ -1,35 +0,0 @@ -class Webfinger::UserPresenter - include Rails.application.routes.url_helpers - attr_accessor :user - - def initialize(user, request) - @user = user - @request = request - end - - def to_json(options = {}) - { - subject: subject, - links: links - }.to_json(options) - end - - def subject - "acct:#{@user.email_address}" - end - - def links - links = {} - links[:public_key] = { type: 'PGP', href: key } if key - return links - end - - protected - - def key - if @user.public_key.present? - Base64.encode64(@user.public_key.to_s) - end - end - -end -- cgit v1.2.3