Skip to content

Commit a6c0c15

Browse files
authored
Merge pull request #29 from Hub-of-all-Things/rumpel-merge
Rumpel merge
2 parents 4521699 + eb90a06 commit a6c0c15

32 files changed

+675
-312
lines changed

build-frontend.sh

+2
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,5 @@ cp ./frontend/dist/main.*.bundle.js ./hat/app/org/hatdex/hat/phata/assets/js/mai
1717
cp ./frontend/dist/vendor.*.bundle.js ./hat/app/org/hatdex/hat/phata/assets/js/vendor.bundle.js
1818

1919
cp ./frontend/dist/styles.*.bundle.css ./hat/app/org/hatdex/hat/phata/assets/stylesheets/styles.bundle.css
20+
21+
gzip --keep --force ./hat/app/org/hatdex/hat/phata/assets/js/*.bundle.js

deployment/docker/docker-build-images.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ HAT_HOME=${HAT_HOME:-"$PWD"} #if executing from deployment/ : "$PWD/../.."
44
DOCKER=${DOCKER:-"${HAT_HOME}/deployment/docker"}
55

66
bash ${DOCKER}/hat/docker-build.sh
7-
bash ${DOCKER}/hat-postgres/docker-build.sh
7+
#bash ${DOCKER}/hat-postgres/docker-build.sh

deployment/docker/hat/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ RUN ["chown", "-R", "daemon:daemon", "."]
55
USER daemon
66
EXPOSE 8080
77
ENV JAVA_OPTS="-Xmx500m -Xms100m"
8-
ENTRYPOINT ["bin/the-hat", "-DapplicationHost=0.0.0.0"]
8+
ENTRYPOINT ["bin/hat", "-Dhttp.port=8080"]
99
CMD []

deployment/docker/hat/docker-build.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
set -e
44

55
#typically Docker HAT container folder is in HAT2.0/deployment/docker/hat
6-
HAT_HOME=${HAT_HOME:-"$PWD"} #if executing from deployment/ : "$PWD/../.."
6+
HAT_HOME=${HAT_HOME:-"$PWD/hat"} #if executing from deployment/ : "$PWD/../.."
77
DOCKER=${DOCKER:-"$PWD/deployment/docker/hat"}
88
DOCKER_DEPLOY=$DOCKER/docker-deploy
99

deployment/elasticBeanstalk/eb-deploy.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
set -e
44

5-
BUCKET="hat-cloud-formation-eu"
5+
BUCKET=${AWS_BUCKET:-hat-cloud-formation-eu}
66
VERSION=`git log --format="%H" -n 1`
77
APPLICATION_NAME="hat"
88

9-
echo "Build version ${APPLICATION_NAME}-${VERSION}"
9+
echo "Build version ${APPLICATION_NAME} ${VERSION}"
1010
sbt "project hat" docker:stage
1111

1212
echo "Create package"

frontend

hat/app/org/hatdex/hat/api/controllers/Authentication.scala

+23-13
Original file line numberDiff line numberDiff line change
@@ -75,19 +75,23 @@ class Authentication @Inject() (
7575
}
7676

7777
def passwordChangeProcess: Action[ApiPasswordChange] = SecuredAction(WithRole("owner")).async(parsers.json[ApiPasswordChange]) { implicit request =>
78-
val eventualResult = for {
79-
_ <- credentialsProvider.authenticate(Credentials(request.identity.email, request.body.password.get))
80-
_ <- authInfoRepository.update(request.identity.loginInfo, passwordHasherRegistry.current.hash(request.body.newPassword))
81-
authenticator <- env.authenticatorService.create(request.identity.loginInfo)
82-
result <- env.authenticatorService.renew(authenticator, Ok(Json.toJson(SuccessResponse("Password changed"))))
83-
} yield {
84-
env.eventBus.publish(LoginEvent(request.identity, request))
85-
mailer.passwordChanged(request.identity.email, request.identity)
86-
result
87-
}
78+
request.body.password map { oldPassword =>
79+
val eventualResult = for {
80+
_ <- credentialsProvider.authenticate(Credentials(request.identity.email, oldPassword))
81+
_ <- authInfoRepository.update(request.identity.loginInfo, passwordHasherRegistry.current.hash(request.body.newPassword))
82+
authenticator <- env.authenticatorService.create(request.identity.loginInfo)
83+
result <- env.authenticatorService.renew(authenticator, Ok(Json.toJson(SuccessResponse("Password changed"))))
84+
} yield {
85+
env.eventBus.publish(LoginEvent(request.identity, request))
86+
mailer.passwordChanged(request.identity.email, request.identity)
87+
result
88+
}
8889

89-
eventualResult recover {
90-
case e: InvalidPasswordException => Forbidden(Json.toJson(ErrorMessage("Invalid password", "Old password invalid")))
90+
eventualResult recover {
91+
case e: InvalidPasswordException => Forbidden(Json.toJson(ErrorMessage("Invalid password", "Old password invalid")))
92+
}
93+
} getOrElse {
94+
Future.successful(Forbidden(Json.toJson(ErrorMessage("Invalid password", "Old password missing"))))
9195
}
9296
}
9397

@@ -103,7 +107,13 @@ class Authentication @Inject() (
103107
val token = MailTokenUser(email, isSignUp = false)
104108
tokenService.create(token).map { _ =>
105109
// TODO generate password reset link for frontend to handle
106-
val resetLink = "" //routes.Authentication.resetPassword(token.id).absoluteURL()
110+
val scheme = if (request.secure) {
111+
"https://"
112+
}
113+
else {
114+
"http://"
115+
}
116+
val resetLink = s"${scheme}${request.host}/#/user/password/change/${token.id}"
107117
mailer.passwordReset(email, user, resetLink)
108118
response
109119
}

hat/app/org/hatdex/hat/api/service/DataService.scala

+8-8
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class DataService extends DalExecutionContext {
5454

5555
val eventualTables = buildDataTreeStructures(dataTableTreesQuery, Set(tableId))
5656

57-
val fieldsetQuery = dataTableTreesQuery.join(DataField)
57+
val fieldsetQuery = dataTableTreesQuery.join(DataField).on(_.id === _.tableIdFk)
5858
.map(_._2) // Only fields
5959
.filter(_.deleted === false) // That have not been deleted
6060
.distinct // And are distinct
@@ -406,15 +406,15 @@ class DataService extends DalExecutionContext {
406406

407407
val valuesQuery = fieldset.join(DataValue).on(_.id === _.fieldId).map(_._2)
408408
.filter { v => v.lastUpdated <= endTime && v.lastUpdated >= startTime && v.deleted === false }
409-
.sortBy(_.recordId.desc)
409+
410+
val recordsQuery = DataRecord.filter(_.id in valuesQuery.sortBy(_.recordId.desc).map(_.recordId).distinct)
411+
.filter(r => r.lastUpdated <= endTime && r.lastUpdated >= startTime && r.deleted === false)
412+
.sortBy(_.lastUpdated.desc)
413+
.take(limit)
410414

411415
val valueQuery = for {
412-
(record, value) <- DataRecord.filter(_.id in valuesQuery.map(_.recordId).distinct)
413-
.filter(r => r.lastUpdated <= endTime && r.lastUpdated >= startTime && r.deleted === false)
414-
.sortBy(_.lastUpdated.desc)
415-
.take(limit)
416-
.join(valuesQuery)
417-
.on(_.id === _.recordId)
416+
record <- recordsQuery
417+
value <- valuesQuery.filter(_.recordId === record.id)
418418
field <- value.dataFieldFk if field.deleted === false
419419
} yield (record, field, value)
420420

hat/app/org/hatdex/hat/phata/assets/js/inline.bundle.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.

hat/app/org/hatdex/hat/phata/assets/js/main.bundle.js

+1-31
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.

hat/app/org/hatdex/hat/phata/assets/js/polyfills.bundle.js

+13-8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.

0 commit comments

Comments
 (0)