packages feed

users-postgresql-simple 0.1.0.1 → 0.2.0.0

raw patch · 2 files changed

+13/−13 lines, 2 filesdep ~users

Dependency ranges changed: users

Files

src/Web/Users/Postgresql.hs view
@@ -84,8 +84,7 @@ instance UserStorageBackend Connection where     type UserId Connection = Int64     initUserBackend conn =-        do _ <- execute_ conn [sql|CREATE EXTENSION IF NOT EXISTS pgcrypto;|]-           _ <- execute_ conn [sql|CREATE EXTENSION IF NOT EXISTS "uuid-ossp";|]+        do _ <- execute_ conn [sql|CREATE EXTENSION IF NOT EXISTS "uuid-ossp";|]            _ <- execute_ conn createUsersTable            _ <- execute_ conn createUserTokenTable            unlessM (doesIndexExist conn "l_username") $@@ -137,13 +136,13 @@            return count     createUser conn user =         case u_password user of-          PasswordPlain p ->+          PasswordHash p ->               do [(Only counter)] <-                      query conn [sql|SELECT COUNT(lid) FROM login WHERE username = ? OR email = ?;|] (u_name user, u_email user)                  if (counter :: Int64) /= 0                  then return $ Left UsernameOrEmailAlreadyTaken                  else do [(Only userId)] <--                             query conn [sql|INSERT INTO login (username, password, email, is_active, more) VALUES (?, crypt(?, gen_salt('bf', 8)), ?, ?, ?) RETURNING lid|]+                             query conn [sql|INSERT INTO login (username, password, email, is_active, more) VALUES (?, ?, ?, ?, ?) RETURNING lid|]                                    (u_name user, p, u_email user, u_active user, toJSON $ u_more user)                          return $ Right userId           _ ->@@ -169,9 +168,9 @@                               execute conn [sql|UPDATE login SET username = ?, email = ?, is_active = ?, more = ? WHERE lid = ?;|]                                  (u_name newUser, u_email newUser, u_active newUser, toJSON $ u_more newUser, userId)                           case u_password newUser of-                            PasswordPlain p ->+                            PasswordHash p ->                                 do _ <--                                      execute conn [sql|UPDATE login SET password = crypt(?, gen_salt('bf', 8)) WHERE lid = ?;|] (p, userId)+                                      execute conn [sql|UPDATE login SET password = ? WHERE lid = ?;|] (p, userId)                                    return ()                             _ -> return ()                           return ()@@ -180,11 +179,12 @@            return ()     authUser conn username password sessionTtl =         do resultSet <--               query conn [sql|SELECT lid FROM login WHERE (username = ? OR email = ?) AND crypt(?, password) = password LIMIT 1;|] (username, username, password)+               query conn [sql|SELECT lid, password FROM login WHERE (username = ? OR email = ?) LIMIT 1;|] (username, username)            case resultSet of-             ((Only userId) : _) ->-                 do sessionToken <- createToken conn "session" userId sessionTtl-                    return $ Just $ SessionId sessionToken+             ((userId, passwordHash) : _)+                 | verifyPassword password (PasswordHash passwordHash) ->+                     do sessionToken <- createToken conn "session" userId sessionTtl+                        return $ Just $ SessionId sessionToken              _ -> return Nothing     verifySession conn (SessionId sessionId) extendTime =         do mUser <- getTokenOwner conn "session" sessionId@@ -222,7 +222,7 @@                  return $ Left TokenInvalid              Just userId ->                  do _ <--                        updateUser conn userId $ \(user :: User Value) -> user { u_password = PasswordPlain password }+                        updateUser conn userId $ \(user :: User Value) -> user { u_password = password }                     deleteToken conn "password_reset" token                     return $ Right () 
users-postgresql-simple.cabal view
@@ -1,5 +1,5 @@ name:                users-postgresql-simple-version:             0.1.0.1+version:             0.2.0.0 synopsis:            A PostgreSQL backend for the users package description:         This library is a backend driver using <http://hackage.haskell.org/package/postgresql-simple postgresql-simple> for                      <http://hackage.haskell.org/package/users the "users" library>.@@ -33,7 +33,7 @@   exposed-modules:     Web.Users.Postgresql   build-depends:                        base >=4.6 && <5,-                       users >=0.1,+                       users >=0.2,                        postgresql-simple >=0.4,                        aeson >=0.8,                        text >=1.2,