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 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

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 };
 	}
 
 }

--
Gitblit v1.3.2