From 9d759c33cf0df61f25679668c7a47bafb38ff7e4 Mon Sep 17 00:00:00 2001 From: Nicolas Bally Date: Tue, 4 Feb 2020 13:17:30 +0100 Subject: [PATCH] suite --- app/controllers/public/kapsmes_controller.rb | 31 ++++++++++++++++++- app/models/kaps_rappel_item.rb | 6 ++-- app/models/kapsme.rb | 16 ++++++++++ app/views/public/kaps_days/show.html.haml | 2 +- config/routes.rb | 6 +++- .../20200204120448_add_token_to_kapsmes.rb | 9 ++++++ db/schema.rb | 3 +- 7 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 db/migrate/20200204120448_add_token_to_kapsmes.rb diff --git a/app/controllers/public/kapsmes_controller.rb b/app/controllers/public/kapsmes_controller.rb index b7ea470..3e7edec 100644 --- a/app/controllers/public/kapsmes_controller.rb +++ b/app/controllers/public/kapsmes_controller.rb @@ -2,9 +2,38 @@ class Public::KapsmesController < ApplicationController layout "public" - before_filter :auth_p_customer + before_filter :auth_p_customer, :except => :validate_by_token skip_before_action :update + + def validate_by_token + @kapsme = Kapsme.where(:token => params[:id]).first + @kapsme.done = true + + @kapsme.save + + + user = @kapsme.p_customer + + cookies[:p_customer_auth_token] = user.token + + + user.last_sign_in_at = Time.now + + + user.save(:validate => false) + + + + + + redirect_to today_public_kaps_days_path + + + + + end + def index @kapsmes = Kapsme.order(:name).all diff --git a/app/models/kaps_rappel_item.rb b/app/models/kaps_rappel_item.rb index ed9b764..2a5ffa5 100644 --- a/app/models/kaps_rappel_item.rb +++ b/app/models/kaps_rappel_item.rb @@ -3,14 +3,14 @@ class KapsRappelItem < ActiveRecord::Base belongs_to :kapsme belongs_to :kaps_day - + include Rails.application.routes.url_helpers #require 'mailjet' def generate_token() begin self[:token] = SecureRandom.urlsafe_base64 - end while DataFile.exists?(:token => self[:token]) + end while KapsRappelItem.exists?(:token => self[:token]) end @@ -19,7 +19,7 @@ class KapsRappelItem < ActiveRecord::Base after_create do puts "BBBBBBBB" - GeneralMailer.new_send_qi_mail(:to => self.kaps_rappel.kap.p_customer.email, :subject => "Rappel : #{self.kapsme.name}", :body => "Rappel, la tâche \"#{self.kapsme.name}\" n'a pas été cochée aujourd'hui :(
http://kaps.quartz.xyz/", :custom_id => self.token).deliver + GeneralMailer.new_send_qi_mail(:to => self.kaps_rappel.kap.p_customer.email, :subject => "Rappel : #{self.kapsme.name}", :body => "Rappel, la tâche \"#{self.kapsme.name}\" n'a pas été cochée aujourd'hui :(

Marquer comme réalisé : #{validate_by_token_public_kapsme_url(self.kapsme.token)}

http://kaps.quartz.xyz/", :custom_id => self.token).deliver end diff --git a/app/models/kapsme.rb b/app/models/kapsme.rb index a26446b..2aa3e5c 100644 --- a/app/models/kapsme.rb +++ b/app/models/kapsme.rb @@ -23,8 +23,24 @@ class Kapsme < ActiveRecord::Base else self.point_to_count = self.points end + + if !self.token + self.generate_token + end + end + def generate_token + + begin + self[:token] = SecureRandom.urlsafe_base64 + end while Kapsme.exists?(:token => self[:token]) + + + end + + + belongs_to :kaps_day diff --git a/app/views/public/kaps_days/show.html.haml b/app/views/public/kaps_days/show.html.haml index ad31385..1e4d119 100644 --- a/app/views/public/kaps_days/show.html.haml +++ b/app/views/public/kaps_days/show.html.haml @@ -7,7 +7,7 @@ -#@kaps_day.generate_kapsmes - -#KapsRappel.generate_rappels + -KapsRappel.generate_rappels .qi_row diff --git a/config/routes.rb b/config/routes.rb index 6341a7f..7a32b20 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -38,7 +38,11 @@ Rails.application.routes.draw do end end resources :kaps - resources :kapsmes + resources :kapsmes do + member do + get :validate_by_token + end + end resources :kaps_days do collection do diff --git a/db/migrate/20200204120448_add_token_to_kapsmes.rb b/db/migrate/20200204120448_add_token_to_kapsmes.rb new file mode 100644 index 0000000..995a938 --- /dev/null +++ b/db/migrate/20200204120448_add_token_to_kapsmes.rb @@ -0,0 +1,9 @@ +class AddTokenToKapsmes < ActiveRecord::Migration + def change + add_column :kapsmes, :token, :string + + Kapsme.all.each do |kp| + kp.save + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 3a32b0f..908a834 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20200203203853) do +ActiveRecord::Schema.define(version: 20200204120448) do create_table "admin_admin_roles", force: :cascade do |t| t.integer "admin_id", limit: 4 @@ -530,6 +530,7 @@ ActiveRecord::Schema.define(version: 20200203203853) do t.datetime "updated_at", null: false t.boolean "paused", default: false t.integer "point_to_count", limit: 4 + t.string "token", limit: 255 end add_index "kapsmes", ["kap_id"], name: "index_kapsmes_on_kap_id", using: :btree