mirror of
https://github.com/penpot/penpot.git
synced 2025-01-23 23:18:48 -05:00
Merge pull request #4983 from penpot/niwinz-backports-1
🐛 Backport bugfixes from develop
This commit is contained in:
commit
ea5c22c244
3 changed files with 31 additions and 23 deletions
|
@ -407,6 +407,7 @@
|
||||||
(ex/raise :type :not-found
|
(ex/raise :type :not-found
|
||||||
:code :object-not-found
|
:code :object-not-found
|
||||||
:table table
|
:table table
|
||||||
|
:params params
|
||||||
:hint "database object not found"))
|
:hint "database object not found"))
|
||||||
row))
|
row))
|
||||||
|
|
||||||
|
|
|
@ -355,16 +355,22 @@
|
||||||
|
|
||||||
profile (if-let [profile-id (:profile-id claims)]
|
profile (if-let [profile-id (:profile-id claims)]
|
||||||
(profile/get-profile conn profile-id)
|
(profile/get-profile conn profile-id)
|
||||||
|
;; NOTE: we first try to match existing profile
|
||||||
|
;; by email, that in normal circumstances will
|
||||||
|
;; not return anything, but when a user tries to
|
||||||
|
;; reuse the same token multiple times, we need
|
||||||
|
;; to detect if the profile is already registered
|
||||||
|
(or (profile/get-profile-by-email conn (:email claims))
|
||||||
(let [is-active (or (boolean (:is-active claims))
|
(let [is-active (or (boolean (:is-active claims))
|
||||||
(not (contains? cf/flags :email-verification)))
|
(not (contains? cf/flags :email-verification)))
|
||||||
params (-> params
|
params (-> params
|
||||||
(assoc :is-active is-active)
|
(assoc :is-active is-active)
|
||||||
(update :password #(profile/derive-password cfg %)))]
|
(update :password #(profile/derive-password cfg %)))
|
||||||
(->> (create-profile! conn params)
|
profile (->> (create-profile! conn params)
|
||||||
(create-profile-rels! conn))))
|
(create-profile-rels! conn))]
|
||||||
|
(vary-meta profile assoc :created true))))
|
||||||
|
|
||||||
;; When no profile-id comes on claims means a new register
|
created? (-> profile meta :created true?)
|
||||||
created? (not (:profile-id claims))
|
|
||||||
|
|
||||||
invitation (when-let [token (:invitation-token params)]
|
invitation (when-let [token (:invitation-token params)]
|
||||||
(tokens/verify (::setup/props cfg) {:token token :iss :team-invitation}))
|
(tokens/verify (::setup/props cfg) {:token token :iss :team-invitation}))
|
||||||
|
@ -423,8 +429,8 @@
|
||||||
|
|
||||||
:else
|
:else
|
||||||
(let [elapsed? (elapsed-verify-threshold? profile)
|
(let [elapsed? (elapsed-verify-threshold? profile)
|
||||||
complaints? (eml/has-reports? conn (:email profile))
|
reports? (eml/has-reports? conn (:email profile))
|
||||||
action (if complaints?
|
action (if reports?
|
||||||
"ignore-because-complaints"
|
"ignore-because-complaints"
|
||||||
(if elapsed?
|
(if elapsed?
|
||||||
"resend-email-verification"
|
"resend-email-verification"
|
||||||
|
|
|
@ -55,14 +55,15 @@
|
||||||
(.replace js/location redirect-uri)
|
(.replace js/location redirect-uri)
|
||||||
(log/error :hint "unexpected response from OIDC method"
|
(log/error :hint "unexpected response from OIDC method"
|
||||||
:resp (pr-str rsp))))
|
:resp (pr-str rsp))))
|
||||||
(fn [{:keys [type code] :as error}]
|
(fn [cause]
|
||||||
|
(let [{:keys [type code] :as error} (ex-data cause)]
|
||||||
(cond
|
(cond
|
||||||
(and (= type :restriction)
|
(and (= type :restriction)
|
||||||
(= code :provider-not-configured))
|
(= code :provider-not-configured))
|
||||||
(st/emit! (msg/error (tr "errors.auth-provider-not-configured")))
|
(st/emit! (msg/error (tr "errors.auth-provider-not-configured")))
|
||||||
|
|
||||||
:else
|
:else
|
||||||
(st/emit! (msg/error (tr "errors.generic"))))))))
|
(st/emit! (msg/error (tr "errors.generic")))))))))
|
||||||
|
|
||||||
(s/def ::email ::us/email)
|
(s/def ::email ::us/email)
|
||||||
(s/def ::password ::us/not-empty-string)
|
(s/def ::password ::us/not-empty-string)
|
||||||
|
|
Loading…
Add table
Reference in a new issue