Roberto Sánchez
2014-01-13 b78e64a272fac635db7b3301252830488829fefd
#394 feature - Added user roles in form edition
4 files modified
changed files
securis/src/main/java/net/curisit/securis/dao/UserDao.java patch | view | blame | history
securis/src/main/java/net/curisit/securis/db/User.java patch | view | blame | history
securis/src/main/resources/static/js/catalogs.js patch | view | blame | history
securis/src/main/resources/static/js/catalogs.json patch | view | blame | history
securis/src/main/java/net/curisit/securis/dao/UserDao.java
....@@ -1,5 +1,6 @@
11 package net.curisit.securis.dao;
22
3
+import java.util.Arrays;
34 import java.util.Date;
45
56 import javax.inject.Inject;
....@@ -29,7 +30,7 @@
2930 user.setPassword(Utils.sha256("rob"));
3031 user.setLang("en");
3132 user.setCreationTimestamp(new Date());
32
- user.setRoles(User.Rol.ADMIN | User.Rol.ADVANCE);
33
+ user.setRoles(Arrays.asList(User.Rol.ADMIN, User.Rol.ADVANCE));
3334 user.setLastName("Sánchez");
3435 em.persist(user);
3536 User u2 = em.find(User.class, username);
securis/src/main/java/net/curisit/securis/db/User.java
....@@ -88,12 +88,23 @@
8888 this.password = password;
8989 }
9090
91
- public int getRoles() {
92
- return roles;
91
+ public List<Integer> getRoles() {
92
+ if (roles == 0)
93
+ return null;
94
+ List<Integer> aux = new ArrayList<>();
95
+ for (int rol : Rol.ALL) {
96
+ if ((roles & rol) != 0) // Each rol is a number with only 1 bit == 1 in binary representation
97
+ aux.add(rol);
98
+ }
99
+ return aux;
93100 }
94101
95
- public void setRoles(int roles) {
96
- this.roles = roles;
102
+ public void setRoles(List<Integer> roles) {
103
+ this.roles = 0;
104
+ if (roles != null)
105
+ for (Integer rol : roles) {
106
+ this.roles |= rol;
107
+ }
97108 }
98109
99110 public String getFirstName() {
....@@ -181,6 +192,8 @@
181192 static public class Rol {
182193 static public final int ADVANCE = 0x01;
183194 static public final int ADMIN = 0x02;
195
+ static public final int[] ALL = new int[]
196
+ { ADVANCE, ADMIN };
184197 }
185198
186199 }
securis/src/main/resources/static/js/catalogs.js
....@@ -140,6 +140,7 @@
140140 _current.fields.forEach(function(f) {
141141 if (f.resource)
142142 refsFields.push(f)
143
+
143144 });
144145
145146 var that = this;
....@@ -153,6 +154,7 @@
153154 console.log('promises: ' + promises.length + ' ')
154155 console.log(promises)
155156 $q.all(promises).then(function() {
157
+
156158 for (var k in refs) {
157159 var pk = that.getPk(that.getMetadata(that.getField(k).resource))
158160 console.log('PK field for ' + k + ' is ' + pk)
....@@ -167,8 +169,13 @@
167169 console.log('Ready for combo for ' + k)
168170 console.log(comboData);
169171 }
170
-
172
+ _current.fields.forEach(function(f) {
173
+ if (f.values)
174
+ refs[f.name] = f.values;
175
+ });
171176 })
177
+
178
+ console.log(refs);
172179 return refs;
173180 }
174181
securis/src/main/resources/static/js/catalogs.json
....@@ -152,6 +152,11 @@
152152 "resource" : "organization",
153153 "type" : "multiselect"
154154 }, {
155
+ "name" : "roles",
156
+ "display" : "Roles",
157
+ "values" : [{"id":1, "label":"Advance"}, {"id":2, "label":"Admin"}],
158
+ "type" : "multiselect"
159
+ }, {
155160 "name" : "lastLogin",
156161 "display" : "Last login",
157162 "autogenerate" : true,