This commit is contained in:
Nicolas Bally 2020-02-04 13:17:30 +01:00
parent a96a1dafac
commit 9d759c33cf
7 changed files with 66 additions and 7 deletions

View File

@ -2,9 +2,38 @@
class Public::KapsmesController < ApplicationController class Public::KapsmesController < ApplicationController
layout "public" layout "public"
before_filter :auth_p_customer before_filter :auth_p_customer, :except => :validate_by_token
skip_before_action :update 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 def index
@kapsmes = Kapsme.order(:name).all @kapsmes = Kapsme.order(:name).all

View File

@ -3,14 +3,14 @@ class KapsRappelItem < ActiveRecord::Base
belongs_to :kapsme belongs_to :kapsme
belongs_to :kaps_day belongs_to :kaps_day
include Rails.application.routes.url_helpers
#require 'mailjet' #require 'mailjet'
def generate_token() def generate_token()
begin begin
self[:token] = SecureRandom.urlsafe_base64 self[:token] = SecureRandom.urlsafe_base64
end while DataFile.exists?(:token => self[:token]) end while KapsRappelItem.exists?(:token => self[:token])
end end
@ -19,7 +19,7 @@ class KapsRappelItem < ActiveRecord::Base
after_create do after_create do
puts "BBBBBBBB" 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 :( <br /> 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 :( <br /><br />Marquer comme réalisé : #{validate_by_token_public_kapsme_url(self.kapsme.token)}<br /><br /> http://kaps.quartz.xyz/", :custom_id => self.token).deliver
end end

View File

@ -23,8 +23,24 @@ class Kapsme < ActiveRecord::Base
else else
self.point_to_count = self.points self.point_to_count = self.points
end end
if !self.token
self.generate_token
end
end end
def generate_token
begin
self[:token] = SecureRandom.urlsafe_base64
end while Kapsme.exists?(:token => self[:token])
end
belongs_to :kaps_day belongs_to :kaps_day

View File

@ -7,7 +7,7 @@
-#@kaps_day.generate_kapsmes -#@kaps_day.generate_kapsmes
-#KapsRappel.generate_rappels -KapsRappel.generate_rappels
.qi_row .qi_row

View File

@ -38,7 +38,11 @@ Rails.application.routes.draw do
end end
end end
resources :kaps resources :kaps
resources :kapsmes resources :kapsmes do
member do
get :validate_by_token
end
end
resources :kaps_days do resources :kaps_days do
collection do collection do

View File

@ -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

View File

@ -11,7 +11,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # 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| create_table "admin_admin_roles", force: :cascade do |t|
t.integer "admin_id", limit: 4 t.integer "admin_id", limit: 4
@ -530,6 +530,7 @@ ActiveRecord::Schema.define(version: 20200203203853) do
t.datetime "updated_at", null: false t.datetime "updated_at", null: false
t.boolean "paused", default: false t.boolean "paused", default: false
t.integer "point_to_count", limit: 4 t.integer "point_to_count", limit: 4
t.string "token", limit: 255
end end
add_index "kapsmes", ["kap_id"], name: "index_kapsmes_on_kap_id", using: :btree add_index "kapsmes", ["kap_id"], name: "index_kapsmes_on_kap_id", using: :btree