Skip to content

Commit

Permalink
fix for issue #3
Browse files Browse the repository at this point in the history
  • Loading branch information
ppazos committed Dec 30, 2015
1 parent 9518d57 commit 4aa98d6
Show file tree
Hide file tree
Showing 8 changed files with 124 additions and 40 deletions.
27 changes: 1 addition & 26 deletions .classpath
Expand Up @@ -14,6 +14,7 @@
<classpathentry kind="src" path="test/integration"/>
<classpathentry kind="src" path="test/unit"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
<classpathentry excluding="BuildConfig.groovy|*DataSource.groovy|UrlMappings.groovy|Config.groovy|BootStrap.groovy|spring/resources.groovy" kind="src" path=".link_to_grails_plugins/asset-pipeline-1.9.9/grails-app/conf">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
Expand Down Expand Up @@ -64,31 +65,6 @@
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="BuildConfig.groovy|*DataSource.groovy|UrlMappings.groovy|Config.groovy|BootStrap.groovy|spring/resources.groovy" kind="src" path=".link_to_grails_plugins/database-migration-1.4.0/grails-app/conf">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".link_to_grails_plugins/database-migration-1.4.0/grails-app/controllers">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".link_to_grails_plugins/database-migration-1.4.0/grails-app/views">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".link_to_grails_plugins/database-migration-1.4.0/src/groovy">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".link_to_grails_plugins/hibernate4-4.3.6.1/src/java">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".link_to_grails_plugins/jquery-1.11.1/grails-app/assets">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
Expand Down Expand Up @@ -145,6 +121,5 @@
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.grails.ide.eclipse.core.CLASSPATH_CONTAINER"/>
<classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
<classpathentry kind="output" path="target/eclipseclasses"/>
</classpath>
6 changes: 3 additions & 3 deletions application.properties
@@ -1,5 +1,5 @@
#Grails Metadata file
#Wed May 13 19:18:15 GFT 2015
app.grails.version=2.4.4
#Wed Dec 30 04:20:57 GFT 2015
app.grails.version=2.5.3
app.name=EhrCommitter
app.version=0.1
app.version=2.5.3
2 changes: 1 addition & 1 deletion grails-app/conf/UrlMappings.groovy
Expand Up @@ -9,7 +9,7 @@ class UrlMappings {

"/"( // por defecto va al escritorio del EHR Server
controller: 'committer',
action: 'list'
action: 'index'
)
"500"(view:'/error')
}
Expand Down
17 changes: 17 additions & 0 deletions grails-app/conf/hibernate/AuthFilters.groovy
@@ -0,0 +1,17 @@
package hibernate

class AuthFilters {

def filters = {

loginCheck(controller: '*', action: '*') {
before = {
if (!session.token && !actionName.equals('login'))
{
redirect(controller: 'committer', action: 'login')
return false
}
}
}
}
}
61 changes: 52 additions & 9 deletions grails-app/controllers/com/cabolabs/CommitterController.groovy
Expand Up @@ -2,6 +2,7 @@ package com.cabolabs

import grails.util.Holders
import groovyx.net.http.*
import static groovyx.net.http.ContentType.URLENC
import static groovyx.net.http.ContentType.XML
import java.text.SimpleDateFormat

Expand All @@ -12,12 +13,49 @@ class CommitterController {
def datetime_format_openEHR = "yyyyMMdd'T'HHmmss,SSSZ" // openEHR format
def datetime_format_html5 = "yyyy-MM-dd HH:mm:ss" // HTML5 format

def index() {

redirect action:"list"
def login(String username, String password, String orgnumber)
{
if (params.doit)
{
if (!username && !password && !orgnumber)
{
flash.message = 'Please specify all the authentication values'
return
}

// service login
// set token on session
def ehr = new RESTClient(config.server.protocol + config.server.ip +':'+ config.server.port + config.server.path)
try
{
// Sin URLENC da error null pointer exception sin mas datos... no se porque es. PREGUNTAR!
def res = ehr.post(
path:'rest/login',
requestContentType: URLENC,
body: [username: username, password: password, organization: orgnumber]
)

//println "res: " + res.responseData
//println "res: " + res.responseData.token

session.token = res.responseData.token

redirect action:'index'
return
}
catch (Exception e)
{
// FIXME: log a disco
println "except 2:" + e.message
e.printStackTrace(System.out)
println "3"
flash.message = e.message
}

}
}

def list() {
def index() {

def path = Holders.config.ehr.instance_repo

Expand Down Expand Up @@ -53,7 +91,7 @@ class CommitterController {

private List patients()
{
def patientList = []
def patientList = []

log.info( "Consulta al EHR: "+ config.server.protocol + config.server.ip +':'+ config.server.port + config.server.path +'rest/patientList')

Expand All @@ -68,6 +106,7 @@ class CommitterController {
uri.query = [ format: 'json' ]

headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.0.4'
headers.'Authorization' = 'Bearer '+ session.token

req.getParams().setParameter("http.connection.timeout", new Integer(10000));
req.getParams().setParameter("http.socket.timeout", new Integer(10000));
Expand Down Expand Up @@ -108,7 +147,8 @@ class CommitterController {
def xml = file.text

// Para las fechas vienen el date y el time separados
def params2 = params.collectEntries {
def params2 = params.collectEntries
{
if (it.value instanceof String[]) // el valor es date, time
{
//[(it.key): it.value[0]+" "+it.value[1]] // formato HTML5 "yyyy-MM-dd HH:mm:ss"
Expand Down Expand Up @@ -162,7 +202,7 @@ class CommitterController {

println res

redirect action:"list" // show commit result
redirect action:"index" // show commit result
}

private String commit(String xml, String patient_uid, String committer_name) {
Expand All @@ -173,7 +213,9 @@ class CommitterController {
def ehrUid
try
{
res = ehr.get( path:'rest/ehrForSubject', query:[subjectUid:patient_uid, format:'json'] )
res = ehr.get( path:'rest/ehrForSubject',
query:[subjectUid:patient_uid, format:'json'],
headers: ['Authorization': 'Bearer '+ session.token] )

ehrUid = res.data.uid
}
Expand Down Expand Up @@ -218,7 +260,8 @@ class CommitterController {
auditSystemId: 'EMR',
auditCommitter: committer_name
],
body: xml
body: xml,
headers: ['Authorization': 'Bearer '+ session.token]
)
/*
* result {
Expand Down
2 changes: 1 addition & 1 deletion grails-app/views/committer/create.gsp
Expand Up @@ -47,7 +47,7 @@
</g:each>

<div class="buttons">
<g:link action="list">Cancel</g:link>
<g:link action="index">Cancel</g:link>
<g:submitButton name="save" value="Save" />
</div>

Expand Down
File renamed without changes.
49 changes: 49 additions & 0 deletions grails-app/views/committer/login.gsp
@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main">
<title></title>
<style>
label {
display: block;
}
.label {
width: 33%;
display: inline-block;
text-align: right;
padding-right: 1em;
}
.buttons {
text-align: right;
padding-right: 1em;
}
</style>
</head>
<body>
<h1>Login</h1>

<g:if test="${flash.message}">
<div class="message" style="display: block">${flash.message}</div>
</g:if>

<g:form action="login">
<label>
<span class="label">username</span>
<input type="text" required="true" name="username" />
</label><br />
<label>
<span class="label">password</span>
<input type="password" required="true" name="password" />
</label><br />
<label>
<span class="label">organization</span>
<input type="text" required="true" name="orgnumber" />
</label><br />

<div class="buttons">
<g:submitButton name="doit" value="Login" />
</div>
</g:form>

</body>
</html>

0 comments on commit 4aa98d6

Please sign in to comment.