wordjelly-auth 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +35 -0
- data/app/assets/images/auth/activity.jpg +0 -0
- data/app/assets/images/auth/facebook.svg +1 -0
- data/app/assets/images/auth/google_oauth2.svg +1 -0
- data/app/assets/images/auth/js_pic3.jpg +0 -0
- data/app/assets/images/auth/profile.jpg +0 -0
- data/app/assets/javascripts/auth/admin_create_users.js +2 -0
- data/app/assets/javascripts/auth/application.js +20 -0
- data/app/assets/javascripts/auth/auth_dependencies.js +12 -0
- data/app/assets/javascripts/auth/auth_modals_and_navbar.js +218 -0
- data/app/assets/javascripts/auth/clients.js +2 -0
- data/app/assets/javascripts/auth/search.js +2 -0
- data/app/assets/javascripts/auth/shopping/discounts.js +2 -0
- data/app/assets/javascripts/auth/users/profiles.js +188 -0
- data/app/assets/stylesheets/auth/admin_create_users.css +4 -0
- data/app/assets/stylesheets/auth/application.scss +14 -0
- data/app/assets/stylesheets/auth/auth_default_css.scss +13 -0
- data/app/assets/stylesheets/auth/common-styles.scss +579 -0
- data/app/assets/stylesheets/auth/overrides.scss +26 -0
- data/app/assets/stylesheets/auth/search.css +4 -0
- data/app/assets/stylesheets/auth/shopping/discounts.css +4 -0
- data/app/assets/stylesheets/auth/users/profiles.scss +40 -0
- data/app/assets/stylesheets/scaffold.css +56 -0
- data/app/controllers/auth/admin_create_users_controller.rb +89 -0
- data/app/controllers/auth/application_controller.rb +97 -0
- data/app/controllers/auth/clients_controller.rb +105 -0
- data/app/controllers/auth/concerns/activity_controller_concern.rb +32 -0
- data/app/controllers/auth/concerns/devise_concern.rb +193 -0
- data/app/controllers/auth/concerns/omni_concern.rb +310 -0
- data/app/controllers/auth/concerns/otp_concern.rb +251 -0
- data/app/controllers/auth/concerns/shopping/cart_controller_concern.rb +105 -0
- data/app/controllers/auth/concerns/shopping/cart_item_controller_concern.rb +150 -0
- data/app/controllers/auth/concerns/shopping/discount_controller_concern.rb +97 -0
- data/app/controllers/auth/concerns/shopping/pay_u_money_controller_concern.rb +38 -0
- data/app/controllers/auth/concerns/shopping/payment_controller_concern.rb +101 -0
- data/app/controllers/auth/concerns/shopping/product_controller_concern.rb +68 -0
- data/app/controllers/auth/concerns/token_concern.rb +187 -0
- data/app/controllers/auth/confirmations_controller.rb +3 -0
- data/app/controllers/auth/mailgun_controller.rb +8 -0
- data/app/controllers/auth/omniauth_callbacks_controller.rb +6 -0
- data/app/controllers/auth/passwords_controller.rb +4 -0
- data/app/controllers/auth/profiles_controller.rb +156 -0
- data/app/controllers/auth/registrations_controller.rb +99 -0
- data/app/controllers/auth/search_controller.rb +61 -0
- data/app/controllers/auth/sessions_controller.rb +20 -0
- data/app/controllers/auth/shopping/cart_items_controller.rb +14 -0
- data/app/controllers/auth/shopping/carts_controller.rb +13 -0
- data/app/controllers/auth/shopping/discounts_controller.rb +19 -0
- data/app/controllers/auth/shopping/payments_controller.rb +13 -0
- data/app/controllers/auth/shopping/products_controller.rb +17 -0
- data/app/controllers/auth/shopping/shopping_controller.rb +86 -0
- data/app/controllers/auth/unlocks_controller.rb +3 -0
- data/app/controllers/auth/webhooks_controller.rb +3 -0
- data/app/helpers/auth/admin_create_users_helper.rb +2 -0
- data/app/helpers/auth/application_helper.rb +136 -0
- data/app/helpers/auth/clients_helper.rb +4 -0
- data/app/helpers/auth/resource_helper.rb +10 -0
- data/app/helpers/auth/search_helper.rb +2 -0
- data/app/helpers/auth/shopping/cart_items/cart_items_helper.rb +29 -0
- data/app/helpers/auth/shopping/carts/carts_helper.rb +25 -0
- data/app/helpers/auth/shopping/discounts/discounts_helper.rb +39 -0
- data/app/helpers/auth/shopping/payments/pay_u_money_helper.rb +56 -0
- data/app/helpers/auth/shopping/payments/payments_helper.rb +54 -0
- data/app/helpers/auth/shopping/products/products_helper.rb +52 -0
- data/app/helpers/auth/shopping/shopping_helper.rb +3 -0
- data/app/helpers/auth/users/profiles_helper.rb +12 -0
- data/app/jobs/otp_job.rb +92 -0
- data/app/mailers/application_mailer.rb +4 -0
- data/app/mailers/auth/notifier.rb +9 -0
- data/app/models/auth/admin_create_user.rb +3 -0
- data/app/models/auth/client.rb +52 -0
- data/app/models/auth/concerns/activity_concern.rb +112 -0
- data/app/models/auth/concerns/chief_model_concern.rb +73 -0
- data/app/models/auth/concerns/es_concern.rb +21 -0
- data/app/models/auth/concerns/notification_concern.rb +232 -0
- data/app/models/auth/concerns/notification_response_concern.rb +71 -0
- data/app/models/auth/concerns/owner_concern.rb +81 -0
- data/app/models/auth/concerns/shopping/cart_concern.rb +329 -0
- data/app/models/auth/concerns/shopping/cart_item_concern.rb +437 -0
- data/app/models/auth/concerns/shopping/discount_concern.rb +482 -0
- data/app/models/auth/concerns/shopping/discount_flow.txt +11 -0
- data/app/models/auth/concerns/shopping/pay_u_money_concern.rb +184 -0
- data/app/models/auth/concerns/shopping/payment_concern.rb +613 -0
- data/app/models/auth/concerns/shopping/product_concern.rb +102 -0
- data/app/models/auth/concerns/sms_otp_concern.rb +68 -0
- data/app/models/auth/concerns/user_concern.rb +788 -0
- data/app/models/auth/identity.rb +23 -0
- data/app/models/auth/shopping/cart.rb +3 -0
- data/app/models/auth/shopping/cart_item.rb +6 -0
- data/app/models/auth/shopping/cart_item_payment_result.rb +7 -0
- data/app/models/auth/shopping/discount.rb +4 -0
- data/app/models/auth/shopping/payment.rb +5 -0
- data/app/models/auth/shopping/product.rb +5 -0
- data/app/models/auth/user.rb +3 -0
- data/app/views/auth/admin_create_users/_admin_actions.html.erb +46 -0
- data/app/views/auth/admin_create_users/_form.html.erb +19 -0
- data/app/views/auth/admin_create_users/edit.html.erb +6 -0
- data/app/views/auth/admin_create_users/index.html.erb +25 -0
- data/app/views/auth/admin_create_users/new.html.erb +5 -0
- data/app/views/auth/admin_create_users/show.html.erb +8 -0
- data/app/views/auth/clients/_form.html.erb +41 -0
- data/app/views/auth/clients/edit.html.erb +6 -0
- data/app/views/auth/clients/index.html.erb +33 -0
- data/app/views/auth/clients/new.html.erb +5 -0
- data/app/views/auth/clients/show.html.erb +21 -0
- data/app/views/auth/confirmations/_enter_otp.html.erb +27 -0
- data/app/views/auth/confirmations/_get_otp_status.html.erb +25 -0
- data/app/views/auth/confirmations/_new_otp_input.js.erb +11 -0
- data/app/views/auth/confirmations/_resend_otp.js.erb +8 -0
- data/app/views/auth/confirmations/_resend_sms_otp.html.erb +18 -0
- data/app/views/auth/confirmations/_verify_otp.js.erb +64 -0
- data/app/views/auth/confirmations/create.js.erb +8 -0
- data/app/views/auth/confirmations/enter_otp.html.erb +7 -0
- data/app/views/auth/confirmations/get_otp_status.html.erb +3 -0
- data/app/views/auth/confirmations/new.html.erb +1 -0
- data/app/views/auth/confirmations/new.js.erb +16 -0
- data/app/views/auth/confirmations/otp_status_result.html.erb +20 -0
- data/app/views/auth/mailer/confirmation_instructions.html.erb +5 -0
- data/app/views/auth/mailer/password_change.html.erb +3 -0
- data/app/views/auth/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/auth/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/auth/modals/_ajax_error_modal.html.erb +3 -0
- data/app/views/auth/modals/_ajax_error_modal_content.html.erb +0 -0
- data/app/views/auth/modals/_edit_account_content.html.erb +68 -0
- data/app/views/auth/modals/_edit_account_success_content.html.erb +5 -0
- data/app/views/auth/modals/_error_notification.html.erb +8 -0
- data/app/views/auth/modals/_forgot_password_content.html.erb +18 -0
- data/app/views/auth/modals/_forgot_password_success_content.html.erb +8 -0
- data/app/views/auth/modals/_login_default_content.html.erb +3 -0
- data/app/views/auth/modals/_login_forms.html.erb +13 -0
- data/app/views/auth/modals/_login_navigation_options.html.erb +12 -0
- data/app/views/auth/modals/_new_otp_input.html.erb +28 -0
- data/app/views/auth/modals/_oauth_and_submit.html.erb +21 -0
- data/app/views/auth/modals/_recaptcha_tags.html.erb +4 -0
- data/app/views/auth/modals/_resend_confirmation_content.html.erb +17 -0
- data/app/views/auth/modals/_resend_confirmation_success_content.html.erb +8 -0
- data/app/views/auth/modals/_resend_otp.html.erb +23 -0
- data/app/views/auth/modals/_resource_errors.js.erb +24 -0
- data/app/views/auth/modals/_sign_in_inputs.html.erb +10 -0
- data/app/views/auth/modals/_sign_in_needed_modal.html.erb +3 -0
- data/app/views/auth/modals/_sign_in_success_content.html.erb +5 -0
- data/app/views/auth/modals/_sign_up_inputs.html.erb +9 -0
- data/app/views/auth/modals/_sign_up_success_content.html.erb +1 -0
- data/app/views/auth/modals/_sign_up_success_inactive_content.html.erb +2 -0
- data/app/views/auth/modals/_unlock_content.html.erb +17 -0
- data/app/views/auth/modals/_verify_otp.html.erb +1 -0
- data/app/views/auth/modals/base_modal/_base.html.erb +25 -0
- data/app/views/auth/modals/login.js.erb +120 -0
- data/app/views/auth/modals/unlock_success_content.html.erb +8 -0
- data/app/views/auth/notifier/_email.html.erb +3 -0
- data/app/views/auth/notifier/notification.html.erb +2 -0
- data/app/views/auth/notifier/notification.text.erb +1 -0
- data/app/views/auth/omniauth_callbacks/failure.html.erb +4 -0
- data/app/views/auth/passwords/create.js.erb +12 -0
- data/app/views/auth/passwords/edit.html.erb +25 -0
- data/app/views/auth/passwords/new.html.erb +16 -0
- data/app/views/auth/passwords/new.js.erb +19 -0
- data/app/views/auth/profiles/_proxy_resource.html.erb +5 -0
- data/app/views/auth/profiles/set_proxy_resource.js.erb +1 -0
- data/app/views/auth/profiles/show.html.erb +8 -0
- data/app/views/auth/registrations/create.js.erb +40 -0
- data/app/views/auth/registrations/edit.html.erb +2 -0
- data/app/views/auth/registrations/edit.js.erb +5 -0
- data/app/views/auth/registrations/new.html.erb +33 -0
- data/app/views/auth/registrations/update.js.erb +47 -0
- data/app/views/auth/search/_search_bar.html.erb +11 -0
- data/app/views/auth/search/_search_result.html.erb +7 -0
- data/app/views/auth/search/_search_results.html.erb +4 -0
- data/app/views/auth/search/authenticated_user_search.js.erb +45 -0
- data/app/views/auth/search/authenticated_user_search.json +7 -0
- data/app/views/auth/sessions/create.js.erb +5 -0
- data/app/views/auth/sessions/new.html.erb +4 -0
- data/app/views/auth/sessions/new.js.erb +20 -0
- data/app/views/auth/shared/_devise_error_messages.html.erb +9 -0
- data/app/views/auth/shared/_links.html.erb +25 -0
- data/app/views/auth/shared/_object_errors.html.erb +12 -0
- data/app/views/auth/shared/_proxy_resource.html.erb +18 -0
- data/app/views/auth/shopping/cart_items/_form.html.erb +34 -0
- data/app/views/auth/shopping/cart_items/_show_cart_items_collection.html.erb +31 -0
- data/app/views/auth/shopping/cart_items/create_multiple.html.erb +6 -0
- data/app/views/auth/shopping/cart_items/create_multiple.json.erb +9 -0
- data/app/views/auth/shopping/cart_items/edit.html.erb +6 -0
- data/app/views/auth/shopping/cart_items/index.html.erb +52 -0
- data/app/views/auth/shopping/cart_items/new.html.erb +5 -0
- data/app/views/auth/shopping/cart_items/show.html.erb +13 -0
- data/app/views/auth/shopping/carts/_form.html.erb +35 -0
- data/app/views/auth/shopping/carts/_payment_links.html.erb +27 -0
- data/app/views/auth/shopping/carts/_remove_cart_item.html.erb +11 -0
- data/app/views/auth/shopping/carts/_show_cart_balance_info.html.erb +35 -0
- data/app/views/auth/shopping/carts/edit.html.erb +6 -0
- data/app/views/auth/shopping/carts/index.html.erb +43 -0
- data/app/views/auth/shopping/carts/new.html.erb +5 -0
- data/app/views/auth/shopping/carts/show.html.erb +46 -0
- data/app/views/auth/shopping/discounts/_form.html.erb +18 -0
- data/app/views/auth/shopping/discounts/_form_for_create_multiple_cart_items.html.erb +17 -0
- data/app/views/auth/shopping/discounts/_show_pending_discount_request.html.erb +17 -0
- data/app/views/auth/shopping/discounts/destroy.html.erb +2 -0
- data/app/views/auth/shopping/discounts/edit.html.erb +29 -0
- data/app/views/auth/shopping/discounts/index.html.erb +40 -0
- data/app/views/auth/shopping/discounts/new.html.erb +1 -0
- data/app/views/auth/shopping/discounts/show.html.erb +18 -0
- data/app/views/auth/shopping/discounts/update.html.erb +2 -0
- data/app/views/auth/shopping/payments/_approve_payment.html.erb +7 -0
- data/app/views/auth/shopping/payments/_cash_card_cheque.html.erb +24 -0
- data/app/views/auth/shopping/payments/_create_discount_coupon.html.erb +5 -0
- data/app/views/auth/shopping/payments/_form.html.erb +19 -0
- data/app/views/auth/shopping/payments/_gateway.html.erb +21 -0
- data/app/views/auth/shopping/payments/_proceed_to_gateway_or_verify_payment.html.erb +18 -0
- data/app/views/auth/shopping/payments/_refresh_payment.html.erb +7 -0
- data/app/views/auth/shopping/payments/_refund.html.erb +10 -0
- data/app/views/auth/shopping/payments/_show_payment_receipt.html.erb +12 -0
- data/app/views/auth/shopping/payments/edit.html.erb +6 -0
- data/app/views/auth/shopping/payments/index.html.erb +43 -0
- data/app/views/auth/shopping/payments/new.html.erb +13 -0
- data/app/views/auth/shopping/payments/show.html.erb +36 -0
- data/app/views/auth/shopping/products/_form.html.erb +27 -0
- data/app/views/auth/shopping/products/edit.html.erb +6 -0
- data/app/views/auth/shopping/products/index.html.erb +48 -0
- data/app/views/auth/shopping/products/index.json.erb +7 -0
- data/app/views/auth/shopping/products/new.html.erb +5 -0
- data/app/views/auth/shopping/products/show.html.erb +12 -0
- data/app/views/auth/shopping/products/show.json.erb +1 -0
- data/app/views/auth/unlocks/create.js.erb +12 -0
- data/app/views/auth/unlocks/new.html.erb +14 -0
- data/app/views/auth/unlocks/new.js.erb +17 -0
- data/app/views/auth/users/_search_result.html.erb +8 -0
- data/app/views/auth/users/profiles/_user_data.html.erb +4 -0
- data/app/views/auth/users/profiles/show.html.erb +54 -0
- data/app/views/layouts/auth/_modals.html.erb +2 -0
- data/app/views/layouts/auth/application.html.erb +17 -0
- data/app/views/layouts/auth/navbar/_navbar.html.erb +49 -0
- data/app/views/layouts/auth/navbar/_personalization.html.erb +17 -0
- data/app/views/layouts/auth/navbar/_progress_spinner.html.erb +11 -0
- data/app/views/layouts/mailer.html.erb +5 -0
- data/app/views/layouts/mailer.text.erb +1 -0
- data/config/initializers/active_model.rb +36 -0
- data/config/initializers/devise.rb +623 -0
- data/config/initializers/json.rb +10 -0
- data/config/initializers/omniauth.rb +447 -0
- data/config/initializers/redis.rb +2 -0
- data/config/initializers/redis.yml +14 -0
- data/config/locales/devise.en.yml +63 -0
- data/config/routes.rb +1 -0
- data/lib/assets/javascripts/data.js +126 -0
- data/lib/assets/javascripts/jquery.calendario.js +394 -0
- data/lib/assets/javascripts/jquery.tagcloud.js +92 -0
- data/lib/assets/javascripts/leanModal.js +236 -0
- data/lib/assets/javascripts/main.js +668 -0
- data/lib/assets/javascripts/modernizr.custom.63321.js +4 -0
- data/lib/assets/javascripts/payumoney.js +9 -0
- data/lib/assets/javascripts/search.js +36 -0
- data/lib/assets/javascripts/spinner.js +77 -0
- data/lib/assets/javascripts/trianglify.min.js +2 -0
- data/lib/assets/javascripts/you_need_to_sign_in.js.erb +478 -0
- data/lib/assets/stylesheets/calendar.css +111 -0
- data/lib/assets/stylesheets/calendar_modifications.scss +276 -0
- data/lib/auth.rb +32 -0
- data/lib/auth/custom_failure.rb +3 -0
- data/lib/auth/engine.rb +231 -0
- data/lib/auth/job_exception_handler.rb +7 -0
- data/lib/auth/mailgun.rb +28 -0
- data/lib/auth/notify.rb +8 -0
- data/lib/auth/omniauth/path.rb +104 -0
- data/lib/auth/partials.rb +12 -0
- data/lib/auth/rails/routes.rb +169 -0
- data/lib/auth/search/main.rb +97 -0
- data/lib/auth/sidekiq_up.rb +16 -0
- data/lib/auth/two_factor_otp.rb +202 -0
- data/lib/auth/url_shortener.rb +29 -0
- data/lib/auth/version.rb +3 -0
- data/lib/tasks/auth_tasks.rake +4 -0
- metadata +863 -0
@@ -0,0 +1,156 @@
|
|
1
|
+
class Auth::ProfilesController < Auth::ApplicationController
|
2
|
+
|
3
|
+
CONDITIONS_FOR_TOKEN_AUTH = [:get_user_id,:show,:update,:set_proxy_resource]
|
4
|
+
|
5
|
+
TCONDITIONS = {:only => CONDITIONS_FOR_TOKEN_AUTH}
|
6
|
+
|
7
|
+
include Auth::Concerns::DeviseConcern
|
8
|
+
include Auth::Concerns::TokenConcern
|
9
|
+
|
10
|
+
before_action :do_before_request, TCONDITIONS
|
11
|
+
before_action :initialize_vars, TCONDITIONS
|
12
|
+
before_action :is_admin_user, :only => [:set_proxy_user]
|
13
|
+
|
14
|
+
|
15
|
+
def initialize_vars
|
16
|
+
@resource_params = {}
|
17
|
+
@profile_resource = nil
|
18
|
+
@all_params = permitted_params.deep_symbolize_keys
|
19
|
+
|
20
|
+
if collection = @all_params[:resource]
|
21
|
+
|
22
|
+
if Auth.configuration.auth_resources[collection.singularize.capitalize]
|
23
|
+
|
24
|
+
@resource_class = collection.singularize.capitalize.constantize
|
25
|
+
@resource_symbol = collection.singularize.to_sym
|
26
|
+
|
27
|
+
@resource_params = @all_params.fetch(@resource_symbol,{})
|
28
|
+
|
29
|
+
@profile_resource = @all_params[:id] ? @resource_class.find_resource(@all_params[:id],current_signed_in_resource) : @resource_class.new(@resource_params)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
## this method needs token authentication, or for the user to be authenticated.
|
36
|
+
## this method also needs an :id, hence the profile_resource is returned.
|
37
|
+
## so what if i sign in as one user,and send in the id of another user?, no because we use the find_resource method, which also considers the current_signed_in_Resource.
|
38
|
+
def show
|
39
|
+
@profile_resource
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
## this method needs the token authentication and an :id, hence the profile resource is updated.
|
44
|
+
## expected params hash:
|
45
|
+
##{:resource => "users", :user => {:admin,:request_send_reset_password_link}, :id}
|
46
|
+
def update
|
47
|
+
check_for_update(@profile_resource)
|
48
|
+
|
49
|
+
if @resource_params[:admin]
|
50
|
+
@profile_resource.admin = @resource_params[:admin]
|
51
|
+
end
|
52
|
+
|
53
|
+
if @resource_params[:created_by_admin]
|
54
|
+
@profile_resource.created_by_admin = @resource_params[:created_by_admin]
|
55
|
+
end
|
56
|
+
|
57
|
+
@profile_resource.m_client = self.m_client
|
58
|
+
|
59
|
+
|
60
|
+
respond_to do |format|
|
61
|
+
if @profile_resource.save
|
62
|
+
flash[:notice] = "Success"
|
63
|
+
format.json {head :no_content}
|
64
|
+
format.html {redirect_to profile_path({:id => @profile_resource.id.to_s, :resource => @profile_resource.class.name.pluralize.downcase.to_s})}
|
65
|
+
else
|
66
|
+
flash[:notice] = "Failed"
|
67
|
+
format.json {render :json => @profile_resource.errors, :status => :unprocessable_entity}
|
68
|
+
format.html {redirect_to profile_path({:id => @profile_resource.id.to_s, :resource => @profile_resource.class.name.pluralize.downcase.to_s})}
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
## here the idea is to just return the current_signed_in_resource's id.
|
74
|
+
## it doesn't have anything to do with the profiel
|
75
|
+
## since no id is sent into the params, so profile_resource will never be found.
|
76
|
+
def get_user_id
|
77
|
+
res = current_signed_in_resource
|
78
|
+
res.m_client = self.m_client
|
79
|
+
respond_with current_signed_in_resource do |format|
|
80
|
+
format.json {render json: current_signed_in_resource.as_json({:show_id => true})}
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
## THIS IS HOW YOU SET A PROXY USER AS AN ADMIN.
|
85
|
+
## this method takes an id.
|
86
|
+
## it also needs current signed in user to be an admin.
|
87
|
+
## it basically takes the @profile_resource
|
88
|
+
## then it shoves it into the session as proxy_resource_id and proxy_resource_class
|
89
|
+
## then it returns the profile_resource.
|
90
|
+
## it responds only to js
|
91
|
+
## it is meant to be used only for setting the proxied user by an admin in the web application.
|
92
|
+
## expect the params to contain
|
93
|
+
## params[:proxy_resource_id] and params[:proxy_resource_class]
|
94
|
+
def set_proxy_resource
|
95
|
+
not_found("that user doesn't exist") unless @profile_resource
|
96
|
+
session[:proxy_resource_id] = @profile_resource.id.to_s
|
97
|
+
session[:proxy_resource_class] = @profile_resource.class.name.to_s
|
98
|
+
#puts "the session variables set are as follows:"
|
99
|
+
#puts session[:proxy_resource_id]
|
100
|
+
#puts session[:proxy_resource_class]
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
##@used_in: email check if already exists.
|
107
|
+
## this method is only usable through web.
|
108
|
+
## not available currently for api use.
|
109
|
+
def credential_exists
|
110
|
+
filt = permitted_params
|
111
|
+
resource = get_model(filt["resource"])
|
112
|
+
is_valid = false
|
113
|
+
if resource
|
114
|
+
conditions = resource.credential_exists(filt)
|
115
|
+
is_valid = (resource.or(*conditions).count == 0)
|
116
|
+
end
|
117
|
+
respond_to do |format|
|
118
|
+
format.json { render json: {"is_valid" => is_valid} }
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
private
|
123
|
+
def permitted_params
|
124
|
+
if action_name.to_s == "credential_exists"
|
125
|
+
params.require(:credential).permit(Devise.authentication_keys + [:resource])
|
126
|
+
else
|
127
|
+
filters = []
|
128
|
+
## this basically enables passing in something like;
|
129
|
+
## to help us to set a user as admin.
|
130
|
+
## provided that the current_signed_in_Resource is an admin.
|
131
|
+
## "user" => {:admin => true}
|
132
|
+
## we also want to allow to set :created_by_admin => true,
|
133
|
+
## so that is also enabled, if the user is an admin,
|
134
|
+
Auth.configuration.auth_resources.keys.each do |model|
|
135
|
+
if current_signed_in_resource && current_signed_in_resource.is_admin?
|
136
|
+
filters << {model.downcase.to_sym => [:admin,:created_by_admin]}
|
137
|
+
end
|
138
|
+
end
|
139
|
+
filters << [:resource,:api_key,:current_app_id,:id]
|
140
|
+
params.permit(filters)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
##@used_in : profiles_controller
|
145
|
+
##@param[String] resource name : it is expected to end with the model name, preceeded by a slash. eg: authenticate/user
|
146
|
+
##@return[Object] : returns the the klass of the model. eg.: User
|
147
|
+
def get_model(resource_name)
|
148
|
+
model_name = nil
|
149
|
+
resource_name.scan(/\/(?<model_name>[a-z]+)$/) do |jj|
|
150
|
+
ll = Regexp.last_match
|
151
|
+
model_name = ll[:model_name]
|
152
|
+
end
|
153
|
+
return unless model_name
|
154
|
+
return Object.const_get(model_name.singularize.capitalize)
|
155
|
+
end
|
156
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
class Auth::RegistrationsController < Devise::RegistrationsController
|
2
|
+
|
3
|
+
TCONDITIONS = {:only => [:update,:destroy]}
|
4
|
+
|
5
|
+
include Auth::Concerns::TokenConcern
|
6
|
+
|
7
|
+
#before_action :check_recaptcha, only: [:create, :update]
|
8
|
+
|
9
|
+
|
10
|
+
def create
|
11
|
+
check_recaptcha
|
12
|
+
build_resource(sign_up_params)
|
13
|
+
resource.m_client = self.m_client
|
14
|
+
resource.set_client_authentication
|
15
|
+
resource.save
|
16
|
+
yield resource if block_given?
|
17
|
+
if resource.persisted?
|
18
|
+
if resource.active_for_authentication?
|
19
|
+
set_flash_message! :notice, :signed_up
|
20
|
+
sign_up(resource_name, resource)
|
21
|
+
respond_with resource, location: after_sign_up_path_for(resource)
|
22
|
+
else
|
23
|
+
set_flash_message! :notice, :"signed_up_but_#{resource.inactive_message}"
|
24
|
+
expire_data_after_sign_in!
|
25
|
+
respond_with resource, location: after_inactive_sign_up_path_for(resource)
|
26
|
+
end
|
27
|
+
else
|
28
|
+
clean_up_passwords resource
|
29
|
+
set_minimum_password_length
|
30
|
+
respond_with resource
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
def update
|
40
|
+
check_recaptcha
|
41
|
+
self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)
|
42
|
+
prev_unconfirmed_email = resource.unconfirmed_email if resource.respond_to?(:unconfirmed_email)
|
43
|
+
## added these two lines
|
44
|
+
resource.m_client = self.m_client
|
45
|
+
resource.set_client_authentication
|
46
|
+
## end.
|
47
|
+
resource_updated = update_resource(resource, account_update_params)
|
48
|
+
yield resource if block_given?
|
49
|
+
if resource_updated
|
50
|
+
if is_flashing_format?
|
51
|
+
flash_key = update_needs_confirmation?(resource, prev_unconfirmed_email) ?
|
52
|
+
:update_needs_confirmation : :updated
|
53
|
+
set_flash_message :notice, flash_key
|
54
|
+
end
|
55
|
+
sign_in resource_name, resource, bypass: true
|
56
|
+
respond_with resource, location: after_update_path_for(resource)
|
57
|
+
else
|
58
|
+
clean_up_passwords resource
|
59
|
+
respond_with resource
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
##had to do this, cuz after update, the authentication token changes, and that needs to be communicated back to the client, or they will never be able to update or access the resource again.
|
64
|
+
def respond_with(*args)
|
65
|
+
if is_json_request?
|
66
|
+
if args[0] && args[0].respond_to?(:authentication_token)
|
67
|
+
render :json => args[0]
|
68
|
+
else
|
69
|
+
super(*args)
|
70
|
+
end
|
71
|
+
else
|
72
|
+
super(*args)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def respond_with_navigational(*args, &block)
|
77
|
+
if is_json_request?
|
78
|
+
respond_with(*args)
|
79
|
+
else
|
80
|
+
respond_with(*args) do |format|
|
81
|
+
format.any(*navigational_formats, &block)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
## only required in case of registrations controller, for the update action, and destroy actions, wherein we need to make sure that the resource is authenticated before doing anything.
|
88
|
+
## have overridden the devise method here.
|
89
|
+
## it has nothing to do with the simple_token_authentication being done in other controllers.
|
90
|
+
## this was just done here because we cannot add simple_token_authentication to a devise controller.
|
91
|
+
def authenticate_scope!
|
92
|
+
|
93
|
+
|
94
|
+
do_before_request
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
@@ -0,0 +1,61 @@
|
|
1
|
+
class Auth::SearchController < ApplicationController
|
2
|
+
|
3
|
+
|
4
|
+
CONDITIONS_FOR_TOKEN_AUTH = [:authenticated_user_search]
|
5
|
+
|
6
|
+
TCONDITIONS = {:only => CONDITIONS_FOR_TOKEN_AUTH}
|
7
|
+
|
8
|
+
include Auth::Concerns::DeviseConcern
|
9
|
+
include Auth::Concerns::TokenConcern
|
10
|
+
|
11
|
+
before_action :do_before_request, TCONDITIONS
|
12
|
+
|
13
|
+
|
14
|
+
## the intention of this action is :
|
15
|
+
## to search all records as admin.
|
16
|
+
## to search a user's own records if you are user.
|
17
|
+
## to search all public records
|
18
|
+
|
19
|
+
## so if the user is an admin, then no resource_id is provided to the search.(basically all records are searched)
|
20
|
+
## if he's not an admin, then the lookup_resource user's id is provided.
|
21
|
+
|
22
|
+
## this action assumes that the user is signed_in, will return not authenticated otherwise.
|
23
|
+
|
24
|
+
## rendering logic :
|
25
|
+
## @js erb -> renders html erb -> there each result class is detected and the requisite "_search.html.erb" partial is found for that class and rendered.
|
26
|
+
## @json => authenticated_user_search.json is rendered.
|
27
|
+
## @html => currently does not support html request.
|
28
|
+
def authenticated_user_search
|
29
|
+
|
30
|
+
## m client will be available at this stage.
|
31
|
+
## the problem is that it is hard to pass it forward to the mongoid elasticsearch object.
|
32
|
+
## because while initializing the user it will have to first be set on the user.
|
33
|
+
## is there any other way to achieve this?
|
34
|
+
query = permitted_params[:query]
|
35
|
+
query[:resource_id] = lookup_resource.id.to_s if !current_signed_in_resource.is_admin?
|
36
|
+
|
37
|
+
@search_results = Auth::Search::Main.search(query)
|
38
|
+
|
39
|
+
puts "these are the search results."
|
40
|
+
puts @search_results.to_s
|
41
|
+
|
42
|
+
#dummy_product = Auth.configuration.product_class.constantize.new
|
43
|
+
#dummy_product.name = "test product"
|
44
|
+
#dummy_product.price = 100.20
|
45
|
+
#@search_results = [dummy_product,dummy_product]
|
46
|
+
@search_results.each do |res|
|
47
|
+
if res.respond_to? :m_client
|
48
|
+
res.m_client = self.m_client
|
49
|
+
end
|
50
|
+
end
|
51
|
+
respond_with @search_results
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
def permitted_params
|
57
|
+
params.permit({query: [:query_string, :size]})
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Auth::SessionsController < Devise::SessionsController
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
def create
|
6
|
+
self.resource = warden.authenticate!(auth_options)
|
7
|
+
## added these two lines
|
8
|
+
resource.m_client = self.m_client
|
9
|
+
resource.set_client_authentication
|
10
|
+
## end.
|
11
|
+
set_flash_message!(:notice, :signed_in)
|
12
|
+
sign_in(resource_name, resource)
|
13
|
+
yield resource if block_given?
|
14
|
+
respond_with resource, location: after_sign_in_path_for(resource)
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Auth::Shopping::CartItemsController < Auth::Shopping::ShoppingController
|
2
|
+
include Auth::Concerns::Shopping::CartItemControllerConcern
|
3
|
+
|
4
|
+
|
5
|
+
## only these actions need an authenticated user to be present for them to be executed.
|
6
|
+
CONDITIONS_FOR_TOKEN_AUTH = [:create,:update,:destroy,:edit,:new,:index,:show,:create_multiple]
|
7
|
+
|
8
|
+
TCONDITIONS = {:only => CONDITIONS_FOR_TOKEN_AUTH}
|
9
|
+
##this ensures api access to this controller.
|
10
|
+
include Auth::Concerns::DeviseConcern
|
11
|
+
include Auth::Concerns::TokenConcern
|
12
|
+
before_filter :do_before_request , TCONDITIONS
|
13
|
+
before_filter :initialize_vars , TCONDITIONS
|
14
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Auth::Shopping::CartsController < Auth::Shopping::ShoppingController
|
2
|
+
include Auth::Concerns::Shopping::CartControllerConcern
|
3
|
+
|
4
|
+
## only these actions need an authenticated user to be present for them to be executed.
|
5
|
+
CONDITIONS_FOR_TOKEN_AUTH = [:create,:update,:destroy,:edit,:new,:index,:show]
|
6
|
+
|
7
|
+
TCONDITIONS = {:only => CONDITIONS_FOR_TOKEN_AUTH}
|
8
|
+
##this ensures api access to this controller.
|
9
|
+
include Auth::Concerns::DeviseConcern
|
10
|
+
include Auth::Concerns::TokenConcern
|
11
|
+
before_filter :do_before_request , TCONDITIONS
|
12
|
+
before_filter :initialize_vars , TCONDITIONS
|
13
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Auth::Shopping::DiscountsController < Auth::Shopping::ShoppingController
|
2
|
+
|
3
|
+
include Auth::Concerns::Shopping::DiscountControllerConcern
|
4
|
+
## only these actions need an authenticated user to be present for them to be executed.
|
5
|
+
## SHOW IS EXCLUDED SO THAT NON SIGNED IN USERS CAN view any discount/ product bundle.
|
6
|
+
CONDITIONS_FOR_TOKEN_AUTH = [:create,:update,:destroy,:edit,:new,:index]
|
7
|
+
|
8
|
+
TCONDITIONS = {:only => CONDITIONS_FOR_TOKEN_AUTH}
|
9
|
+
##this ensures api access to this controller.
|
10
|
+
include Auth::Concerns::DeviseConcern
|
11
|
+
include Auth::Concerns::TokenConcern
|
12
|
+
before_filter :do_before_request , TCONDITIONS
|
13
|
+
before_filter :initialize_vars , TCONDITIONS
|
14
|
+
|
15
|
+
## remember to add the before_filter is_admin as well.
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Auth::Shopping::PaymentsController < Auth::Shopping::ShoppingController
|
2
|
+
include Auth::Concerns::Shopping::PaymentControllerConcern
|
3
|
+
|
4
|
+
## only these actions need an authenticated user to be present for them to be executed.
|
5
|
+
CONDITIONS_FOR_TOKEN_AUTH = [:create,:update,:destroy,:edit,:new,:index,:show]
|
6
|
+
|
7
|
+
TCONDITIONS = {:only => CONDITIONS_FOR_TOKEN_AUTH}
|
8
|
+
##this ensures api access to this controller.
|
9
|
+
include Auth::Concerns::DeviseConcern
|
10
|
+
include Auth::Concerns::TokenConcern
|
11
|
+
before_filter :do_before_request , TCONDITIONS
|
12
|
+
before_filter :initialize_vars , TCONDITIONS
|
13
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Auth::Shopping::ProductsController < Auth::Shopping::ShoppingController
|
2
|
+
|
3
|
+
|
4
|
+
include Auth::Concerns::Shopping::ProductControllerConcern
|
5
|
+
|
6
|
+
## only these actions need an authenticated user to be present for them to be executed.
|
7
|
+
CONDITIONS_FOR_TOKEN_AUTH = [:create,:update,:destroy,:edit,:new]
|
8
|
+
|
9
|
+
TCONDITIONS = {:only => CONDITIONS_FOR_TOKEN_AUTH}
|
10
|
+
##this ensures api access to this controller.
|
11
|
+
include Auth::Concerns::DeviseConcern
|
12
|
+
include Auth::Concerns::TokenConcern
|
13
|
+
before_filter :do_before_request , TCONDITIONS
|
14
|
+
before_filter :initialize_vars , TCONDITIONS
|
15
|
+
before_filter :is_admin_user , :only => [:create,:update,:destroy,:edit]
|
16
|
+
|
17
|
+
end
|