From b78e64a272fac635db7b3301252830488829fefd Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Mon, 13 Jan 2014 09:53:52 +0000
Subject: [PATCH] #394 feature - Added user roles in form edition
---
securis/src/main/java/net/curisit/securis/db/User.java | 21 +++++++++++++++++----
securis/src/main/resources/static/js/catalogs.json | 5 +++++
securis/src/main/resources/static/js/catalogs.js | 9 ++++++++-
securis/src/main/java/net/curisit/securis/dao/UserDao.java | 3 ++-
4 files changed, 32 insertions(+), 6 deletions(-)
diff --git a/securis/src/main/java/net/curisit/securis/dao/UserDao.java b/securis/src/main/java/net/curisit/securis/dao/UserDao.java
index d7cfd9e..3109302 100644
--- a/securis/src/main/java/net/curisit/securis/dao/UserDao.java
+++ b/securis/src/main/java/net/curisit/securis/dao/UserDao.java
@@ -1,5 +1,6 @@
package net.curisit.securis.dao;
+import java.util.Arrays;
import java.util.Date;
import javax.inject.Inject;
@@ -29,7 +30,7 @@
user.setPassword(Utils.sha256("rob"));
user.setLang("en");
user.setCreationTimestamp(new Date());
- user.setRoles(User.Rol.ADMIN | User.Rol.ADVANCE);
+ user.setRoles(Arrays.asList(User.Rol.ADMIN, User.Rol.ADVANCE));
user.setLastName("Sánchez");
em.persist(user);
User u2 = em.find(User.class, username);
diff --git a/securis/src/main/java/net/curisit/securis/db/User.java b/securis/src/main/java/net/curisit/securis/db/User.java
index 4846eb8..1de7b9f 100644
--- a/securis/src/main/java/net/curisit/securis/db/User.java
+++ b/securis/src/main/java/net/curisit/securis/db/User.java
@@ -88,12 +88,23 @@
this.password = password;
}
- public int getRoles() {
- return roles;
+ public List<Integer> getRoles() {
+ if (roles == 0)
+ return null;
+ List<Integer> aux = new ArrayList<>();
+ for (int rol : Rol.ALL) {
+ if ((roles & rol) != 0) // Each rol is a number with only 1 bit == 1 in binary representation
+ aux.add(rol);
+ }
+ return aux;
}
- public void setRoles(int roles) {
- this.roles = roles;
+ public void setRoles(List<Integer> roles) {
+ this.roles = 0;
+ if (roles != null)
+ for (Integer rol : roles) {
+ this.roles |= rol;
+ }
}
public String getFirstName() {
@@ -181,6 +192,8 @@
static public class Rol {
static public final int ADVANCE = 0x01;
static public final int ADMIN = 0x02;
+ static public final int[] ALL = new int[]
+ { ADVANCE, ADMIN };
}
}
diff --git a/securis/src/main/resources/static/js/catalogs.js b/securis/src/main/resources/static/js/catalogs.js
index cde7a57..10dc1dd 100644
--- a/securis/src/main/resources/static/js/catalogs.js
+++ b/securis/src/main/resources/static/js/catalogs.js
@@ -140,6 +140,7 @@
_current.fields.forEach(function(f) {
if (f.resource)
refsFields.push(f)
+
});
var that = this;
@@ -153,6 +154,7 @@
console.log('promises: ' + promises.length + ' ')
console.log(promises)
$q.all(promises).then(function() {
+
for (var k in refs) {
var pk = that.getPk(that.getMetadata(that.getField(k).resource))
console.log('PK field for ' + k + ' is ' + pk)
@@ -167,8 +169,13 @@
console.log('Ready for combo for ' + k)
console.log(comboData);
}
-
+ _current.fields.forEach(function(f) {
+ if (f.values)
+ refs[f.name] = f.values;
+ });
})
+
+ console.log(refs);
return refs;
}
diff --git a/securis/src/main/resources/static/js/catalogs.json b/securis/src/main/resources/static/js/catalogs.json
index a371fde..96d817a 100644
--- a/securis/src/main/resources/static/js/catalogs.json
+++ b/securis/src/main/resources/static/js/catalogs.json
@@ -152,6 +152,11 @@
"resource" : "organization",
"type" : "multiselect"
}, {
+ "name" : "roles",
+ "display" : "Roles",
+ "values" : [{"id":1, "label":"Advance"}, {"id":2, "label":"Admin"}],
+ "type" : "multiselect"
+ }, {
"name" : "lastLogin",
"display" : "Last login",
"autogenerate" : true,
--
Gitblit v1.3.2