From 84689aa6e4db71f259b4cda85a8053cf9753f7fb Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <daniel.gerhardt@mni.thm.de>
Date: Fri, 4 Apr 2014 16:11:59 +0200
Subject: [PATCH] Correctly state guest authentication

The API returned "ldap" instead of "guest" for guest authentication
before.
---
 src/main/java/de/thm/arsnova/entities/User.java        | 1 +
 src/main/java/de/thm/arsnova/services/UserService.java | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/src/main/java/de/thm/arsnova/entities/User.java b/src/main/java/de/thm/arsnova/entities/User.java
index 2f9c290bf..5aef51dc6 100644
--- a/src/main/java/de/thm/arsnova/entities/User.java
+++ b/src/main/java/de/thm/arsnova/entities/User.java
@@ -18,6 +18,7 @@ public class User implements Serializable {
 	public static final String THM = "thm";
 	public static final String LDAP = "ldap";
 	public static final String ANONYMOUS = "anonymous";
+	public static final String GUEST = "guest";
 
 	private static final long serialVersionUID = 1L;
 	private String username;
diff --git a/src/main/java/de/thm/arsnova/services/UserService.java b/src/main/java/de/thm/arsnova/services/UserService.java
index 99521ec75..0f3ef8115 100644
--- a/src/main/java/de/thm/arsnova/services/UserService.java
+++ b/src/main/java/de/thm/arsnova/services/UserService.java
@@ -21,6 +21,7 @@ import org.springframework.security.authentication.AnonymousAuthenticationToken;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.cas.authentication.CasAuthenticationToken;
 import org.springframework.security.core.Authentication;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
@@ -106,6 +107,9 @@ public class UserService implements IUserService {
 		} else if (authentication instanceof UsernamePasswordAuthenticationToken) {
 			UsernamePasswordAuthenticationToken token = (UsernamePasswordAuthenticationToken) authentication;
 			user = new User(token);
+			if (authentication.getAuthorities().contains(new SimpleGrantedAuthority("ROLE_GUEST"))) {
+				user.setType(User.GUEST);
+			}
 		}
 
 		if (user == null || user.getUsername().equals("anonymous")) {
-- 
GitLab