Skip to content
Snippets Groups Projects
Commit c5d5dfca authored by Dmytro Zaporozhets (DZ)'s avatar Dmytro Zaporozhets (DZ) :palm_tree:
Browse files

Merge branch 'edit-profile-feature' into 'master'

Add profile feature

See merge request !18
parents 1d9b5bcb 5c48722e
No related branches found
No related tags found
1 merge request!18Add profile feature
Pipeline #227837836 passed
......@@ -26,7 +26,6 @@ Just in case you are curious how it looks when started
* add remember me checkbox for authentication
* add forget password feature
* add email confirmation for signup
* add an ability to change name in profile
## Prerequisites
......
......@@ -19,9 +19,17 @@
(defn profile-page [user]
(layout/common (view/profile-page user) user))
(defn profile-edit-page [user]
(layout/common (view/profile-edit-page user) user))
(defn password-page [user]
(layout/common (view/password-page user) user))
(defn update-profile [name user]
(do
(db/update-user (:id user) {:name name})
(response/redirect "/profile")))
(defn update-password [current-password new-password confirm-password user]
(if (crypt/verify current-password (:encrypted_password user))
(if (= new-password confirm-password)
......@@ -40,6 +48,14 @@
(if user-id
(profile-page (get-user user-id))
(response/redirect "/login")))
(GET "/edit" []
(if user-id
(profile-edit-page (get-user user-id))
(response/redirect "/login")))
(POST "/update" [name]
(if user-id
(update-profile name (get-user user-id))
(response/redirect "/login")))
(GET "/password" []
(if user-id
(password-page (get-user user-id))
......
......@@ -22,13 +22,22 @@
[:span "Member since: "]
[:strong (f/unparse (f/formatters :date) (c/from-date (:timestamp user)))]]]
[:hr]
[:div
[:div {:class "btn-group"}
[:a {:href "/profile/edit" :class "btn btn-default"} "Edit profile"]
[:a {:href "/profile/password" :class "btn btn-default"} "Change password"]]
[:br]
[:hr]
[:form {:action "/profile/delete" :method "POST"}
(anti-forgery-field)
[:button {:class "btn btn-danger" :type "submit" :onclick "return confirm(\"Are you sure?\");"} "Delete account"]]])
(defn profile-edit-page [user & [errors]]
[:div
[:h1 "Edit profile"]
(form-to [:post "/profile/update"]
(anti-forgery-field)
(input-control text-field "name" "User name" (:name user) true)
(submit-button {:class "btn btn-primary"} "Save changes"))])
(defn password-page [user & [errors]]
[:div
[:h1 "Change password"]
......
......@@ -30,6 +30,23 @@
(within [:h1]
(has (some-text? "Login with existing account")))))
(deftest profile-change-name
(-> (session app)
(visit "/")
(follow "Login")
(fill-in "Email" foo-email)
(fill-in "Password" "123456")
(press "Login")
(follow-redirect)
(visit "/profile/edit")
(fill-in "User name" "XYZ")
(press "Save changes")
(follow-redirect)
(within [:h1]
(has (some-text? "Profile")))
(within [:.user-info]
(has (some-text? "XYZ")))))
(deftest profile-change-password
(-> (session app)
(visit "/")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment