You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2014/06/10 17:46:41 UTC

svn commit: r1601669 [4/7] - in /openmeetings: branches/3.0.x/WebContent/src/modules/invitation/ branches/3.0.x/docs/ branches/3.0.x/src/axis/java/org/apache/openmeetings/axis/services/ branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/basic/ b...

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java Tue Jun 10 15:46:38 2014
@@ -151,8 +151,7 @@ public class RegisterDialog extends Abst
 
 	public void onOpen(AjaxRequestTarget target) {
 		String baseURL = getBean(ConfigurationDao.class).getBaseUrl();
-		sendEmailAtRegister = 1 == getBean(ConfigurationDao.class).getConfValue("sendEmailAtRegister", Integer.class,
-				"0");
+		sendEmailAtRegister = 1 == getBean(ConfigurationDao.class).getConfValue("sendEmailAtRegister", Integer.class, "0");
 		sendConfirmation = baseURL != null
 				&& !baseURL.isEmpty()
 				&& 1 == getBean(ConfigurationDao.class)
@@ -197,10 +196,11 @@ public class RegisterDialog extends Abst
 				login + CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
 
 		try {
-			getBean(IUserManager.class).registerUserInit(3, 1, 0, 1, login, password, lastName, firstName, email,
-					null /* age/birthday */, "" /* street */, "" /* additionalname */, "" /* fax */, "" /* zip */, state.getState_id(),
-					"" /* town */, lang.getLanguage_id(), true /* sendWelcomeMessage */,
-					Arrays.asList(getBean(ConfigurationDao.class).getConfValue("default_domain_id", Long.class, null)),
+			getBean(IUserManager.class).registerUserInit(UserDao.getDefaultRights(), login, password, lastName
+					, firstName, email, null /* age/birthday */, "" /* street */
+					, "" /* additionalname */, "" /* fax */, "" /* zip */, state.getState_id()
+					, "" /* town */, lang.getLanguage_id(), true /* sendWelcomeMessage */
+					, Arrays.asList(getBean(ConfigurationDao.class).getConfValue("default_domain_id", Long.class, null)),
 					"" /* phone */, false, sendConfirmation, TimeZone.getTimeZone(tzModel.getObject()),
 					false /* forceTimeZoneCheck */, "" /* userOffers */, "" /* userSearchs */, false /* showContactData */,
 					true /* showContactDataToContacts */, hash);

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java Tue Jun 10 15:46:38 2014
@@ -34,6 +34,7 @@ import org.apache.openmeetings.db.dao.se
 import org.apache.openmeetings.db.entity.basic.ErrorValue;
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.server.OAuthServer;
+import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.OmAuthenticationStrategy;
 import org.apache.openmeetings.web.app.WebSession;
@@ -63,7 +64,6 @@ import org.apache.wicket.model.AbstractR
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.util.string.Strings;
 
 import com.googlecode.wicket.jquery.core.JQueryBehavior;
 import com.googlecode.wicket.jquery.core.Options;
@@ -84,7 +84,6 @@ public class SignInDialog extends Abstra
     private RegisterDialog r;
     private ForgetPasswordDialog f;
     private LdapConfig domain;
-    private String ldapConfigFileName;
     private FeedbackPanel feedback = new FeedbackPanel("feedback");
     
 	public SignInDialog(String id) {
@@ -182,16 +181,16 @@ public class SignInDialog extends Abstra
 
 	@Override
 	protected void onSubmit(AjaxRequestTarget target) {
-		ldapConfigFileName = domain.getConfigFileName() == null ? "" : domain.getConfigFileName();
 		if (domain.getAddDomainToUserName()) {
 			login = login + "@" + domain.getDomain();
 		}
 		OmAuthenticationStrategy strategy = getAuthenticationStrategy();
 		WebSession ws = WebSession.get();
-		if (ws.signIn(login, password, ldapConfigFileName)) {
+		Type type = domain.getLdapConfigId() > 0 ? Type.ldap : Type.user;
+		if (ws.signIn(login, password, type, domain.getLdapConfigId())) {
  			setResponsePage(Application.get().getHomePage());
 			if (rememberMe) {
-				strategy.save(login, password, ldapConfigFileName);
+				strategy.save(login, password, type, domain.getLdapConfigId());
 			} else {
 				strategy.remove();
 			}
@@ -285,16 +284,16 @@ public class SignInDialog extends Abstra
 						}));
 						btn.add(icon);
 						btn.add(new Label("label", item.getModelObject().getName()))
-						.add(new AjaxEventBehavior("click") {
-							private static final long serialVersionUID = 1L;
-							
-							@Override
-							protected void onEvent(AjaxRequestTarget target) {
-								PageParameters parameters = new PageParameters();
-								parameters.add("oauthid", item.getModelObject().getId());
-								setResponsePage(SignInPage.class, parameters);
-							}
-						});
+							.add(new AjaxEventBehavior("click") {
+								private static final long serialVersionUID = 1L;
+								
+								@Override
+								protected void onEvent(AjaxRequestTarget target) {
+									PageParameters parameters = new PageParameters();
+									parameters.add("oauthid", item.getModelObject().getId());
+									setResponsePage(SignInPage.class, parameters);
+								}
+							});
 						item.add(btn);
 					}
 				}).setVisible(allowOAuthLogin()));

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java Tue Jun 10 15:46:38 2014
@@ -33,6 +33,7 @@ import java.net.URLEncoder;
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Random;
@@ -172,8 +173,7 @@ public class SignInPage extends BaseInit
 	}
 		
 	public static String getRedirectUri(OAuthServer server, Component component) {
-		String baseUrl = RequestCycle.get().getUrlRenderer().renderFullUrl(
-			    Url.parse(component.urlFor(SignInPage.class,null).toString()));
+		String baseUrl = RequestCycle.get().getUrlRenderer().renderFullUrl(Url.parse(component.urlFor(SignInPage.class,null).toString()));
 		
 		return baseUrl + "?oauthid=" + server.getId();
 	}
@@ -326,7 +326,7 @@ public class SignInPage extends BaseInit
 		String firstname = params.get("firstname");
 		if (firstname == null) firstname = "";
 		if (lastname == null) lastname = "";
-		User user = userDao.getUserByName(login, Type.oauth);
+		User user = userDao.getByName(login, Type.oauth);
 		// generate random password
 		byte[] rawPass = new byte[16];
 		Random rnd = new Random();
@@ -345,18 +345,19 @@ public class SignInPage extends BaseInit
 			}
 			user = userDao.get(res);
 			user.setType(Type.oauth);
-			user.setExternalUserType("oauth2." + serverId);
+			user.setDomainId(serverId);
 			userDao.update(user, null);
 		} else { // just change password
 			// check user type before changing password, it must be match oauthServerId
-			if (!("oauth2." + serverId).equals(user.getExternalUserType())) {
+			if (user.getDomainId() == null || serverId != user.getDomainId()) {
 				log.error("User already registered! with different OAuth server");
 				return;
 			}
+			user.setLastlogin(new Date());
 			user = userDao.update(user, pass, -1);
 		}
 		
-		if (WebSession.get().signIn(login, pass, null)) {
+		if (WebSession.get().signIn(login, pass, Type.oauth, serverId)) {
  			setResponsePage(Application.get().getHomePage());
 		} else {
 			log.error("Failed to login via OAuth2!");

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/ChatPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/ChatPanel.java Tue Jun 10 15:46:38 2014
@@ -29,11 +29,12 @@ import java.util.Date;
 import org.apache.openmeetings.db.dao.basic.ChatDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.ChatMessage;
-import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.json.JSONException;
 import org.apache.wicket.ajax.json.JSONObject;
+import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.behavior.Behavior;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
@@ -50,7 +51,8 @@ import com.googlecode.wicket.jquery.ui.f
 import com.googlecode.wicket.jquery.ui.plugins.emoticons.EmoticonsBehavior;
 import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
 
-public class ChatPanel extends UserPanel {
+@AuthorizeInstantiation({"Dashboard", "Room"})
+public class ChatPanel extends BasePanel {
 	private static final Logger log = Red5LoggerFactory.getLogger(ChatPanel.class, webAppRootKey);
 	private static final long serialVersionUID = -9144707674886211557L;
 	private static final String MESSAGE_AREA_ID = "messageArea";

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.java Tue Jun 10 15:46:38 2014
@@ -21,6 +21,7 @@ package org.apache.openmeetings.web.user
 
 import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.wicket.RuntimeConfigurationType;
+import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
@@ -32,6 +33,7 @@ import org.apache.wicket.request.resourc
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.string.StringValue;
 
+@AuthorizeInstantiation("Room")
 public class RoomPanel extends BasePanel {
 	private static final long serialVersionUID = 2308988314987829510L;
 	

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/RoomManager.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/RoomManager.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/RoomManager.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/RoomManager.java Tue Jun 10 15:46:38 2014
@@ -48,9 +48,6 @@ import org.apache.openmeetings.db.dto.ba
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.RoomModerator;
 import org.apache.openmeetings.db.entity.room.RoomOrganisation;
-import org.apache.openmeetings.db.entity.user.Organisation_Users;
-import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.AuthLevelUtil;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -86,43 +83,6 @@ public class RoomManager implements IRoo
 	private RoomTypeDao roomTypeDao;
 
 	/**
-	 * get a room object if user level
-	 * 
-	 * @param user_level
-	 * @param rooms_id
-	 * @return
-	 */
-	public Room getRoomById(long user_level, long rooms_id) {
-		try {
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
-				return roomDao.get(rooms_id);
-			} else
-				log.error("getRoombyId : Userlevel" + user_level
-						+ " not allowed");
-		} catch (Exception ex2) {
-			log.error("[getRoomById] ", ex2);
-		}
-		return null;
-	}
-
-	public Room getRoomWithCurrentUsersById(long user_level, long rooms_id) {
-		try {
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
-				Room room = roomDao.get(rooms_id);
-
-				if (room != null) {
-					room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
-
-					return room;
-				}
-			}
-		} catch (Exception ex2) {
-			log.error("[getRoomWithCurrentUsersById] ", ex2);
-		}
-		return null;
-	}
-
-	/**
 	 * Get a Rooms-Object or NULL
 	 * 
 	 * @param externalRoomId
@@ -150,99 +110,67 @@ public class RoomManager implements IRoo
 		return null;
 	}
 
-	public Room getRoomByExternalId(long user_level, Long externalRoomId,
-			String externalRoomType, long roomtypes_id) {
+	public SearchResult<Room> getRooms(int start, int max, String orderby, boolean asc, String search) {
 		try {
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
-				return this.getRoomByExternalId(externalRoomId,
-						externalRoomType, roomtypes_id);
-			} else
-				log.error("getRoombyExternalId : Userlevel" + user_level
-						+ " not allowed");
-		} catch (Exception ex2) {
-			log.error("[getRoomByExternalId] ", ex2);
-		}
-		return null;
-	}
-
-	public SearchResult<Room> getRooms(long user_level, int start, int max,
-			String orderby, boolean asc, String search) {
-		try {
-			if (AuthLevelUtil.checkAdminLevel(user_level)) {
-				SearchResult<Room> sResult = new SearchResult<Room>();
-				sResult.setRecords(this.selectMaxFromRooms(search));
-				sResult.setObjectName(Room.class.getName());
-				sResult.setResult(this.getRoomsInternatlByHQL(start, max,
-						orderby, asc, search));
-				return sResult;
-			}
+			SearchResult<Room> sResult = new SearchResult<Room>();
+			sResult.setRecords(this.selectMaxFromRooms(search));
+			sResult.setObjectName(Room.class.getName());
+			sResult.setResult(this.getRoomsInternatlByHQL(start, max,
+					orderby, asc, search));
+			return sResult;
 		} catch (Exception ex2) {
 			log.error("[getRooms] ", ex2);
 		}
 		return null;
 	}
 	
-	public SearchResult<Room> getRoomsWithCurrentUsers(long user_level, int start,
-			int max, String orderby, boolean asc) {
+	public SearchResult<Room> getRoomsWithCurrentUsers(int start, int max, String orderby, boolean asc) {
 		try {
-			if (AuthLevelUtil.checkAdminLevel(user_level)) {
-				SearchResult<Room> sResult = new SearchResult<Room>();
-				sResult.setRecords(this.selectMaxFromRooms(""));
-				sResult.setObjectName(Room.class.getName());
+			SearchResult<Room> sResult = new SearchResult<Room>();
+			sResult.setRecords(this.selectMaxFromRooms(""));
+			sResult.setObjectName(Room.class.getName());
 
-				List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
-						asc);
-
-				for (Room room : rooms) {
-					room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
-				}
+			List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
+					asc);
 
-				sResult.setResult(rooms);
-				return sResult;
+			for (Room room : rooms) {
+				room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
 			}
+
+			sResult.setResult(rooms);
+			return sResult;
 		} catch (Exception ex2) {
 			log.error("[getRooms] ", ex2);
 		}
 		return null;
 	}
 
-	public List<Room> getRoomsWithCurrentUsersByList(long user_level,
-			int start, int max, String orderby, boolean asc) {
+	public List<Room> getRoomsWithCurrentUsersByList(int start, int max, String orderby, boolean asc) {
 		try {
-			if (AuthLevelUtil.checkAdminLevel(user_level)) {
-
-				List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
-						asc);
-
-				for (Room room : rooms) {
-					room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
-				}
-
-				return rooms;
+			List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
+					asc);
 
+			for (Room room : rooms) {
+				room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
 			}
+
+			return rooms;
 		} catch (Exception ex2) {
 			log.error("[getRooms] ", ex2);
 		}
 		return null;
 	}
 
-	public List<Room> getRoomsWithCurrentUsersByListAndType(long user_level,
-			int start, int max, String orderby, boolean asc,
-			String externalRoomType) {
+	public List<Room> getRoomsWithCurrentUsersByListAndType(int start, int max, String orderby, boolean asc, String externalRoomType) {
 		try {
-			if (AuthLevelUtil.checkAdminLevel(user_level)) {
-
-				List<Room> rooms = this.getRoomsInternatlbyType(start, max,
-						orderby, asc, externalRoomType);
-
-				for (Room room : rooms) {
-					room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
-				}
-
-				return rooms;
+			List<Room> rooms = this.getRoomsInternatlbyType(start, max,
+					orderby, asc, externalRoomType);
 
+			for (Room room : rooms) {
+				room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
 			}
+
+			return rooms;
 		} catch (Exception ex2) {
 			log.error("[getRooms] ", ex2);
 		}
@@ -390,45 +318,19 @@ public class RoomManager implements IRoo
 		return null;
 	}
 
-	public List<RoomOrganisation> getOrganisationsByRoom(long user_level,
-			long rooms_id) {
+	public List<RoomOrganisation> getOrganisationsByRoom(long rooms_id) {
 		try {
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
-				String hql = "select c from RoomOrganisation as c "
-						+ "where c.room.rooms_id = :rooms_id "
-						+ "AND c.deleted <> :deleted";
-				TypedQuery<RoomOrganisation> q = em.createQuery(hql, RoomOrganisation.class);
-
-				q.setParameter("rooms_id", rooms_id);
-				q.setParameter("deleted", true);
-				List<RoomOrganisation> ll = q.getResultList();
-				return ll;
-			}
-		} catch (Exception ex2) {
-			log.error("[getOrganisationsByRoom] ", ex2);
-		}
-		return null;
-	}
+			String hql = "select c from RoomOrganisation as c "
+					+ "where c.room.rooms_id = :rooms_id "
+					+ "AND c.deleted <> :deleted";
+			TypedQuery<RoomOrganisation> q = em.createQuery(hql, RoomOrganisation.class);
 
-	/**
-	 * get all rooms which are availible for public
-	 * 
-	 * @param user_level
-	 * @param roomtypes_id
-	 * @return
-	 */
-	public List<Room> getPublicRooms(long user_level, long roomtypes_id) {
-		try {
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
-				TypedQuery<Room> q = em.createNamedQuery("getPublicRooms", Room.class);
-				q.setParameter("ispublic", true);
-				q.setParameter("deleted", false);
-				q.setParameter("roomtypes_id", new Long(roomtypes_id));
-				List<Room> ll = q.getResultList();
-				return ll;
-			}
+			q.setParameter("rooms_id", rooms_id);
+			q.setParameter("deleted", true);
+			List<RoomOrganisation> ll = q.getResultList();
+			return ll;
 		} catch (Exception ex2) {
-			log.error("[getRoomsByOrganisation] ", ex2);
+			log.error("[getOrganisationsByRoom] ", ex2);
 		}
 		return null;
 	}
@@ -466,43 +368,6 @@ public class RoomManager implements IRoo
 		return null;
 	}
 
-	public List<Room> getPublicRoomsWithoutType(long user_level) {
-		try {
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
-				TypedQuery<Room> q = em.createNamedQuery("getPublicRoomsWithoutType", Room.class);
-				q.setParameter("ispublic", true);
-				q.setParameter("deleted", true);
-				List<Room> ll = q.getResultList();
-				return ll;
-			}
-		} catch (Exception ex2) {
-			log.error("[getPublicRoomsWithoutType] ", ex2);
-			ex2.printStackTrace();
-		}
-		return null;
-	}
-
-	/**
-	 * Get Appointed Meetings
-	 */
-	// ---------------------------------------------------------------------------------------------
-	public List<Room> getAppointedMeetings(Long userid, Long user_level) {
-		log.debug("Roommanagement.getAppointedMeetings");
-
-		try {
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
-				TypedQuery<Room> q = em.createNamedQuery("getAppointedMeetings", Room.class);
-				q.setParameter("appointed", true);
-				q.setParameter("deleted", false);
-				return q.getResultList();
-			}
-		} catch (Exception ex2) {
-			log.error("[getAppointedMeetings] ", ex2);
-		}
-		return null;
-
-	}
-
 	// ---------------------------------------------------------------------------------------------
 
     /**
@@ -546,7 +411,7 @@ public class RoomManager implements IRoo
 	 * @param hideWhiteboard TODO
 	 * @return id of the newly created room or NULL
 	 */
-	public Long addRoom(long user_level, String name, long roomtypes_id,
+	public Long addRoom(String name, long roomtypes_id,
 			String comment, Long numberOfPartizipants, boolean ispublic,
 			List<Integer> organisations, Boolean appointment, Boolean isDemoRoom,
 			Integer demoTime, Boolean isModeratedRoom,
@@ -560,112 +425,64 @@ public class RoomManager implements IRoo
 			, boolean filesOpened, boolean autoVideoSelect, boolean sipEnabled) {
 
 		try {
-			if (AuthLevelUtil.checkAdminLevel(user_level)) {
-
-				Room r = new Room();
-				r.setName(name);
-				r.setComment(comment);
-				r.setStarttime(new Date());
-				r.setNumberOfPartizipants(numberOfPartizipants);
-				r.setRoomtype(roomTypeDao.get(roomtypes_id));
-				r.setIspublic(ispublic);
-				r.setAllowUserQuestions(allowUserQuestions);
-				r.setIsAudioOnly(isAudioOnly);
-				r.setAllowFontStyles(allowFontStyles);
-
-				r.setAppointment(appointment);
+			Room r = new Room();
+			r.setName(name);
+			r.setComment(comment);
+			r.setStarttime(new Date());
+			r.setNumberOfPartizipants(numberOfPartizipants);
+			r.setRoomtype(roomTypeDao.get(roomtypes_id));
+			r.setIspublic(ispublic);
+			r.setAllowUserQuestions(allowUserQuestions);
+			r.setIsAudioOnly(isAudioOnly);
+			r.setAllowFontStyles(allowFontStyles);
 
-				r.setIsDemoRoom(isDemoRoom);
-				r.setDemoTime(demoTime);
+			r.setAppointment(appointment);
 
-				r.setIsModeratedRoom(isModeratedRoom);
-				r.setHideTopBar(hideTopBar);
+			r.setIsDemoRoom(isDemoRoom);
+			r.setDemoTime(demoTime);
 
-				r.setDeleted(false);
+			r.setIsModeratedRoom(isModeratedRoom);
+			r.setHideTopBar(hideTopBar);
 
-				r.setIsClosed(isClosed);
-				r.setRedirectURL(redirectURL);
+			r.setDeleted(false);
 
-				r.setOwnerId(ownerId);
+			r.setIsClosed(isClosed);
+			r.setRedirectURL(redirectURL);
 
-				r.setWaitForRecording(waitForRecording);
-				r.setAllowRecording(allowRecording);
-				
-				r.setHideChat(hideChat);
-				r.setHideActivitiesAndActions(hideActivitiesAndActions);
-				r.setHideActionsMenu(hideActionsMenu);
-				r.setHideFilesExplorer(hideFilesExplorer);
-				r.setHideScreenSharing(hideScreenSharing);	
-				r.setHideWhiteboard(hideWhiteboard);
-				r.setShowMicrophoneStatus(showMicrophoneStatus);
-				r.setChatModerated(chatModerated);
-				r.setChatOpened(chatOpened);
-				r.setFilesOpened(filesOpened);
-				r.setAutoVideoSelect(autoVideoSelect);
-				r.setSipEnabled(sipEnabled);
-				r.setPin(conferencePin);
-				
-				r = roomDao.update(r, ownerId);
+			r.setOwnerId(ownerId);
 
-				if (organisations != null) {
-					Long t = this.updateRoomOrganisations(organisations, r);
-					if (t == null) {
-						return null;
-					}
-				}
+			r.setWaitForRecording(waitForRecording);
+			r.setAllowRecording(allowRecording);
+			
+			r.setHideChat(hideChat);
+			r.setHideActivitiesAndActions(hideActivitiesAndActions);
+			r.setHideActionsMenu(hideActionsMenu);
+			r.setHideFilesExplorer(hideFilesExplorer);
+			r.setHideScreenSharing(hideScreenSharing);	
+			r.setHideWhiteboard(hideWhiteboard);
+			r.setShowMicrophoneStatus(showMicrophoneStatus);
+			r.setChatModerated(chatModerated);
+			r.setChatOpened(chatOpened);
+			r.setFilesOpened(filesOpened);
+			r.setAutoVideoSelect(autoVideoSelect);
+			r.setSipEnabled(sipEnabled);
+			r.setPin(conferencePin);
+			
+			r = roomDao.update(r, ownerId);
 
-				if (roomModerators != null) {
-					r.setModerators(getModerators(roomModerators, r.getRooms_id()));
-					r = roomDao.update(r, ownerId);
+			if (organisations != null) {
+				Long t = this.updateRoomOrganisations(organisations, r);
+				if (t == null) {
+					return null;
 				}
-
-				return r.getRooms_id();
 			}
-		} catch (Exception ex2) {
-			log.error("[addRoom] ", ex2);
-		}
-		return null;
-	}
-
-	public Long addRoomByMod(long user_level, String name, long roomtypes_id,
-			String comment, Long numberOfPartizipants, boolean ispublic,
-			Long organisation_id, Boolean appointment, Boolean isDemoRoom,
-			Integer demoTime, Boolean isModeratedRoom,
-			List<Map<String, Object>> roomModerators, Boolean allowUserQuestions) {
-
-		log.debug("addRoom");
-
-		try {
-			if (AuthLevelUtil.checkModLevel(user_level)) {
-				Room r = new Room();
-				r.setName(name);
-				r.setComment(comment);
-				r.setStarttime(new Date());
-				r.setNumberOfPartizipants(numberOfPartizipants);
-				r.setRoomtype(roomTypeDao.get(roomtypes_id));
-				r.setIspublic(ispublic);
-
-				r.setAllowUserQuestions(allowUserQuestions);
-				r.setAppointment(appointment);
 
-				r.setIsDemoRoom(isDemoRoom);
-				r.setDemoTime(demoTime);
-
-				r.setIsModeratedRoom(isModeratedRoom);
-
-				r.setDeleted(false);
-				r = em.merge(r);
-				long returnId = r.getRooms_id();
-
-				this.addRoomToOrganisation(3, returnId, organisation_id);
-
-				if (roomModerators != null) {
-					r.setModerators(getModerators(roomModerators, r.getRooms_id()));
-					r = roomDao.update(r, null);
-				}
-
-				return returnId;
+			if (roomModerators != null) {
+				r.setModerators(getModerators(roomModerators, r.getRooms_id()));
+				r = roomDao.update(r, ownerId);
 			}
+
+			return r.getRooms_id();
 		} catch (Exception ex2) {
 			log.error("[addRoom] ", ex2);
 		}
@@ -754,22 +571,20 @@ public class RoomManager implements IRoo
 	 * @param organisation_id
 	 * @return the id of the newly created Rooms_Organisation or NULL
 	 */
-	public Long addRoomToOrganisation(long user_level, long rooms_id,
+	public Long addRoomToOrganisation(long rooms_id,
 			long organisation_id) {
 		try {
-			if (AuthLevelUtil.checkAdminLevel(user_level)) {
-				RoomOrganisation rOrganisation = new RoomOrganisation();
-				rOrganisation.setRoom(roomDao.get(rooms_id));
-				log.debug("addRoomToOrganisation rooms '"
-						+ rOrganisation.getRoom().getName() + "'");
-				rOrganisation.setStarttime(new Date());
-				rOrganisation.setOrganisation(orgDao.get(organisation_id));
-				rOrganisation.setDeleted(false);
-
-				rOrganisation = em.merge(rOrganisation);
-				long returnId = rOrganisation.getRooms_organisation_id();
-				return returnId;
-			}
+			RoomOrganisation rOrganisation = new RoomOrganisation();
+			rOrganisation.setRoom(roomDao.get(rooms_id));
+			log.debug("addRoomToOrganisation rooms '"
+					+ rOrganisation.getRoom().getName() + "'");
+			rOrganisation.setStarttime(new Date());
+			rOrganisation.setOrganisation(orgDao.get(organisation_id));
+			rOrganisation.setDeleted(false);
+
+			rOrganisation = em.merge(rOrganisation);
+			long returnId = rOrganisation.getRooms_organisation_id();
+			return returnId;
 		} catch (Exception ex2) {
 			log.error("[addRoomToOrganisation] ", ex2);
 		}
@@ -811,19 +626,14 @@ public class RoomManager implements IRoo
 	 * @param roomtypes_id
 	 * @return
 	 */
-	public List<RoomOrganisation> getRoomsOrganisationByOrganisationIdAndRoomType(
-			long user_level, long organisation_id, long roomtypes_id) {
+	public List<RoomOrganisation> getRoomsOrganisationByOrganisationIdAndRoomType(long organisation_id, long roomtypes_id) {
 		try {
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
-				TypedQuery<RoomOrganisation> q = em.
-						createNamedQuery("getRoomsOrganisationByOrganisationIdAndRoomType", RoomOrganisation.class);
-				q.setParameter("roomtypes_id", roomtypes_id);
-				q.setParameter("organisation_id", organisation_id);
-				q.setParameter("deleted", true);
-				return q.getResultList();
-			} else {
-				log.error("[notauthentificated] " + user_level);
-			}
+			TypedQuery<RoomOrganisation> q = em.
+					createNamedQuery("getRoomsOrganisationByOrganisationIdAndRoomType", RoomOrganisation.class);
+			q.setParameter("roomtypes_id", roomtypes_id);
+			q.setParameter("organisation_id", organisation_id);
+			q.setParameter("deleted", true);
+			return q.getResultList();
 		} catch (Exception ex2) {
 			log.error("[getRoomsByOrganisation] ", ex2);
 		}
@@ -836,23 +646,17 @@ public class RoomManager implements IRoo
 	 * @param organisation_id
 	 * @return list of Rooms_Organisation with Rooms as Sub-Objects or null
 	 */
-	public List<RoomOrganisation> getRoomsOrganisationByOrganisationId(
-			long user_level, long organisation_id) {
+	public List<RoomOrganisation> getRoomsOrganisationByOrganisationId(long organisation_id) {
 		try {
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
-
-				TypedQuery<RoomOrganisation> query = em.
-						createNamedQuery("getRoomsOrganisationByOrganisationId", RoomOrganisation.class);
+			TypedQuery<RoomOrganisation> query = em.
+					createNamedQuery("getRoomsOrganisationByOrganisationId", RoomOrganisation.class);
 
-				query.setParameter("organisation_id", organisation_id);
-				query.setParameter("deleted", true);
+			query.setParameter("organisation_id", organisation_id);
+			query.setParameter("deleted", true);
 
-				List<RoomOrganisation> ll = query.getResultList();
+			List<RoomOrganisation> ll = query.getResultList();
 
-				return ll;
-			} else {
-				log.error("[notauthentificated] " + user_level);
-			}
+			return ll;
 		} catch (Exception ex2) {
 			log.error("[getPublicRoomsWithoutType] ", ex2);
 			ex2.printStackTrace();
@@ -860,20 +664,15 @@ public class RoomManager implements IRoo
 		return null;
 	}
 
-	public SearchResult<RoomOrganisation> getRoomsOrganisationByOrganisationId(long user_level,
-			long organisation_id, int start, int max, String orderby,
+	public SearchResult<RoomOrganisation> getRoomsOrganisationsByOrganisationId(long organisation_id, int start, int max, String orderby,
 			boolean asc) {
 		try {
-			if (AuthLevelUtil.checkModLevel(user_level)) {
-
-				SearchResult<RoomOrganisation> sResult = new SearchResult<RoomOrganisation>();
-				sResult.setObjectName(RoomOrganisation.class.getName());
-				sResult.setRecords(this.selectMaxFromRoomsByOrganisation(
-						organisation_id).longValue());
-				sResult.setResult(this.getRoomsOrganisationByOrganisationId(
-						organisation_id, start, max, orderby, asc));
-				return sResult;
-			}
+			SearchResult<RoomOrganisation> sResult = new SearchResult<RoomOrganisation>();
+			sResult.setObjectName(RoomOrganisation.class.getName());
+			sResult.setRecords(this.selectMaxFromRoomsByOrganisation(
+					organisation_id).longValue());
+			sResult.setResult(getRoomsOrganisationByOrganisationId(organisation_id, start, max, orderby, asc));
+			return sResult;
 		} catch (Exception ex2) {
 			log.error("[getRoomsByOrganisation] ", ex2);
 		}
@@ -975,80 +774,6 @@ public class RoomManager implements IRoo
 		return null;
 	}
 
-	/**
-	 * 
-	 * @param user_id
-	 * @param rooms_id
-	 * @return
-	 */
-	private boolean checkUserOrgRoom(long user_id, long rooms_id) {
-		try {
-
-			User us = usersDao.get(user_id);
-			List<Organisation_Users> s = us.getOrganisation_users();
-
-			for (Iterator<Organisation_Users> it = s.iterator(); it.hasNext();) {
-				Organisation_Users orgUsers = it.next();
-				long organisation_id = orgUsers.getOrganisation()
-						.getOrganisation_id();
-				List<RoomOrganisation> ll = this
-						.getRoomsOrganisationByOrganisationId(3,
-								organisation_id);
-				for (Iterator<RoomOrganisation> it2 = ll.iterator(); it2
-						.hasNext();) {
-					RoomOrganisation roomOrg = it2.next();
-					if (roomOrg.getRoom().getRooms_id() == rooms_id) {
-						return true;
-					}
-				}
-			}
-
-		} catch (Exception ex2) {
-			log.error("[checkUserOrgRoom] ", ex2);
-		}
-		return false;
-	}
-
-	/**
-	 * 
-	 * @param user_id
-	 * @param user_level
-	 * @param rooms_id
-	 * @param roomtypes_id
-	 * @param name
-	 * @param ispublic
-	 * @param comment
-	 * @return
-	 */
-	public Room updateRoomsSelf(long user_id, long user_level, long rooms_id,
-			long roomtypes_id, String name, boolean ispublic, String comment) {
-		try {
-			if (AuthLevelUtil.checkModLevel(user_level)) {
-
-				if (this.checkUserOrgRoom(user_id, rooms_id)) {
-
-					Room r = roomDao.get(rooms_id);
-					r.setComment(comment);
-					r.setIspublic(ispublic);
-					r.setName(name);
-					r.setRoomtype(roomTypeDao.get(roomtypes_id));
-					r.setUpdatetime(new Date());
-
-					if (r.getRooms_id() == null) {
-						em.persist(r);
-					} else {
-						if (!em.contains(r)) {
-							em.merge(r);
-						}
-					}
-				}
-			}
-		} catch (Exception ex2) {
-			log.error("[updateRoom] ", ex2);
-		}
-		return null;
-	}
-
 	public Long updateRoomInternal(long rooms_id, long roomtypes_id,
 			String name, boolean ispublic, String comment,
 			Long numberOfPartizipants, List<Integer> organisations,
@@ -1123,56 +848,6 @@ public class RoomManager implements IRoo
 		return null;
 	}
 
-	public Long updateRoomByMod(long user_level, long rooms_id,
-			long roomtypes_id, String name, boolean ispublic, String comment,
-			Long numberOfPartizipants, Long organisations, Boolean appointment,
-			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
-			List<Map<String, Object>> roomModerators, Boolean allowUserQuestions) {
-		try {
-			log.debug("*** updateRoom numberOfPartizipants: "
-					+ numberOfPartizipants);
-			if (AuthLevelUtil.checkModLevel(user_level)) {
-				Room r = roomDao.get(rooms_id);
-				r.setComment(comment);
-
-				r.setIspublic(ispublic);
-				r.setNumberOfPartizipants(numberOfPartizipants);
-				r.setName(name);
-				r.setRoomtype(roomTypeDao.get(roomtypes_id));
-				r.setUpdatetime(new Date());
-				r.setAllowUserQuestions(allowUserQuestions);
-
-				r.setIsDemoRoom(isDemoRoom);
-				r.setDemoTime(demoTime);
-
-				r.setAppointment(appointment);
-
-				r.setIsModeratedRoom(isModeratedRoom);
-
-				if (r.getRooms_id() == null) {
-					em.persist(r);
-				} else {
-					if (!em.contains(r)) {
-						r = em.merge(r);
-					}
-				}
-
-				// FIXME: Organizations will not be changed when you do an
-				// update as Moderator
-
-				if (roomModerators != null) {
-					r.setModerators(getModerators(roomModerators, r.getRooms_id()));
-					r = roomDao.update(r, null);
-				}
-
-				return r.getRooms_id();
-			}
-		} catch (Exception ex2) {
-			log.error("[updateRoom] ", ex2);
-		}
-		return null;
-	}
-
 	@SuppressWarnings("rawtypes")
 	private boolean checkRoomAlreadyInOrg(Long orgid, List organisations)
 			throws Exception {
@@ -1195,10 +870,8 @@ public class RoomManager implements IRoo
 		return false;
 	}
 
-	private Long updateRoomOrganisations(List<Integer> organisations, Room room)
-			throws Exception {
-		List<RoomOrganisation> roomOrganisations = this.getOrganisationsByRoom(3,
-				room.getRooms_id());
+	private Long updateRoomOrganisations(List<Integer> organisations, Room room) throws Exception {
+		List<RoomOrganisation> roomOrganisations = getOrganisationsByRoom(room.getRooms_id());
 
 		List<Long> roomsToAdd = new LinkedList<Long>();
 		List<Long> roomsToDel = new LinkedList<Long>();
@@ -1223,12 +896,11 @@ public class RoomManager implements IRoo
 
 		for (Iterator<Long> it = roomsToAdd.iterator(); it.hasNext();) {
 			Long orgIdToAdd = it.next();
-			this.addRoomToOrganisation(3, room.getRooms_id(), orgIdToAdd);
+			addRoomToOrganisation(room.getRooms_id(), orgIdToAdd);
 		}
 		for (Iterator<Long> it = roomsToDel.iterator(); it.hasNext();) {
 			Long orgToDel = it.next();
-			this.deleteRoomFromOrganisationByRoomAndOrganisation(
-					room.getRooms_id(), orgToDel);
+			deleteRoomFromOrganisationByRoomAndOrganisation(room.getRooms_id(), orgToDel);
 		}
 
 		return new Long(1);
@@ -1239,13 +911,11 @@ public class RoomManager implements IRoo
 	 * 
 	 * @param rooms_id
 	 */
-	public Long deleteRoomById(long user_level, long rooms_id) {
+	public Long deleteRoomById(long rooms_id) {
 		try {
-			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
-				this.deleteAllRoomsOrganisationOfRoom(rooms_id);
-				roomDao.delete(roomDao.get(rooms_id), -1L);
-				return rooms_id;
-			}
+			deleteAllRoomsOrganisationOfRoom(rooms_id);
+			roomDao.delete(roomDao.get(rooms_id), -1L);
+			return rooms_id;
 		} catch (Exception ex2) {
 			log.error("[deleteRoomById] ", ex2);
 		}
@@ -1275,13 +945,9 @@ public class RoomManager implements IRoo
 	 * 
 	 * @param organisation_id
 	 */
-	@SuppressWarnings("rawtypes")
 	public void deleteAllRoomsOrganisationOfOrganisation(long organisation_id) {
 		try {
-			List ll = this.getRoomsOrganisationByOrganisationId(3,
-					organisation_id);
-			for (Iterator it = ll.iterator(); it.hasNext();) {
-				RoomOrganisation rOrg = (RoomOrganisation) it.next();
+			for (RoomOrganisation rOrg : getRoomsOrganisationByOrganisationId(organisation_id)) {
 				this.deleteRoomsOrganisation(rOrg);
 			}
 		} catch (Exception ex2) {
@@ -1385,7 +1051,7 @@ public class RoomManager implements IRoo
 			} else {
 				log.debug("Could not find room " + ownerId + " || " + roomtypesId);
 				
-				Long rooms_id = this.addRoom(3L, roomName, roomtypesId,
+				Long rooms_id = addRoom(roomName, roomtypesId,
 						"My Rooms of ownerId " + ownerId,
 						(roomtypesId == 1) ? 25L : 150L, // numberOfPartizipants
 						false, // ispublic

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java Tue Jun 10 15:46:38 2014
@@ -45,6 +45,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.IClient;
@@ -229,15 +230,14 @@ public class LdapLoginManagement impleme
 	 * 
 	 */
 	// ----------------------------------------------------------------------------------------
-	public Object doLdapLogin(String user, String passwd,
-			Client currentClient, IClient client, String SID, String domain) {
+	public User login(String user, String passwd, Long domainId) throws OmException {
 		log.debug("LdapLoginmanagement.doLdapLogin");
 
 		// Retrieve Configuration Data
 		HashMap<String, String> configData;
 
 		try {
-			configData = getLdapConfigData(domain);
+			configData = getLdapConfigData(ldapConfigDao.get(domainId).getConfigFileName());
 		} catch (Exception e) {
 			log.error("Error on LdapAuth : " + e.getMessage());
 			return null;
@@ -394,8 +394,10 @@ public class LdapLoginManagement impleme
 			try {
 				if (!lAuth.authenticateUser(ldapUserDN, passwd)) {
 					log.error(ldapUserDN + " not authenticated.");
-					return new Long(-11);
+					throw new OmException(-11L);
 				}
+			} catch (OmException oe) {
+				throw oe;
 			} catch (Exception e) {
 				log.error("Error on LdapAuth : " + e.getMessage());
 				return null;
@@ -403,8 +405,10 @@ public class LdapLoginManagement impleme
 		} else {
 			try {
 				if (!lAuth.authenticateUser(user, passwd)) {
-					return new Long(-11);
+					throw new OmException(-11L);
 				}
+			} catch (OmException oe) {
+				throw oe;
 			} catch (Exception e) {
 				log.error("Error on LdapAuth : " + e.getMessage());
 				return null;
@@ -416,7 +420,7 @@ public class LdapLoginManagement impleme
 		User u = null;
 
 		try {
-			u = usersDao.getUserByName(user, User.Type.ldap);
+			u = usersDao.getByName(user, User.Type.ldap);
 		} catch (Exception e) {
 			log.error("Error retrieving Userdata : " + e.getMessage());
 		}
@@ -459,7 +463,7 @@ public class LdapLoginManagement impleme
 
 		if (result == null || result.size() < 1) {
 			log.error("Error on Ldap request - no result for user " + user);
-			return new Long(-10);
+			throw new OmException(-10L);
 		}
 		
 		if (result.size() > 1) {
@@ -489,30 +493,11 @@ public class LdapLoginManagement impleme
 				}
 				log.debug("New User ID : " + userid);
 
-				// If invoked via SOAP this is NULL
-				if (currentClient != null) {
-					currentClient.setUser_id(userid);
-					SessionVariablesUtil.setUserId(client, userid);
-				}
-
-				// Update Session
-				Boolean bool = sessiondataDao.updateUser(SID, userid);
-
-				if (bool == null) {
-					// Exception
-					log.error("Error on Updating Session");
-					return new Long(-1);
-				} else if (!bool) {
-					// invalid Session-Object
-					log.error("Invalid Session Object");
-					return new Long(-35);
-				}
-
 				// Return UserObject
 				User u2 = usersDao.get(userid);
 
 				if (u2 == null) {
-					return new Long(-1);
+					throw new OmException(-1L);
 				}
 
 				u2.setType(Type.ldap);
@@ -525,30 +510,12 @@ public class LdapLoginManagement impleme
 				return u2;
 			} catch (Exception e) {
 				log.error("Error on Working Userdata : ", e);
-				return new Long(-1);
+				throw new OmException(-1L);
 			}
 		} else {
 			// User exists, just update necessary values
 			log.debug("User already exists -> Update of current passwd");
 
-			// If invoked via SOAP this is NULL
-			if (currentClient != null) {
-				currentClient.setUser_id(u.getUser_id());
-			}
-
-			// Update Session
-			Boolean bool = sessiondataDao.updateUser(SID, u.getUser_id());
-
-			if (bool == null) {
-				// Exception
-				log.error("Error on Updating Session");
-				return new Long(-1);
-			} else if (!bool) {
-				// invalid Session-Object
-				log.error("Invalid Session Object");
-				return new Long(-35);
-			}
-
 			try {
 				// Update password (could have changed in LDAP)
 				if (ldap_sync_passwd_to_om) {
@@ -561,7 +528,7 @@ public class LdapLoginManagement impleme
 				usersDao.update(u, null);
 			} catch (Exception e) {
 				log.error("Error updating user : " + e.getMessage());
-				return new Long(-1);
+				throw new OmException(-1L);
 			}
 
 			return u;
@@ -656,8 +623,6 @@ public class LdapLoginManagement impleme
 			iCalTz = userdata.get(ldapAttrs.get("timezoneAttr"));
 		}
 		
-		iCalTz = timezoneUtil.getTimeZone(iCalTz).getID();
-
 		String town = "town";
 		if (userdata.containsKey(ldapAttrs.get("townAttr"))
 				&& userdata.get(ldapAttrs.get("townAttr")) != null)
@@ -670,11 +635,7 @@ public class LdapLoginManagement impleme
 			// Check if LDAP Users get a SIP Account Issue 1099
 
 			newUserId = userManager.registerUserInit(
-					2,// user_level
-					1,// level_id
-					1,// available
-					1,// status
-					login,// loginname
+					UserDao.getDefaultRights(), login,// loginname
 					passwd,// passwd
 					lastname, firstname, email, 
 					new java.util.Date(), //age
@@ -682,18 +643,17 @@ public class LdapLoginManagement impleme
 					additionalname, fax, zip, state_id, town, 
 					configurationDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, Long.class, "1"), // language_id
 					false, // sendWelcomeMessage
-					Arrays.asList(configurationDao.getConfValue(
-							"default_domain_id", Long.class, null)), // organozation
-																		// Ids
+					Arrays.asList(configurationDao.getConfValue("default_domain_id", Long.class, null)), // organozation Ids
 					phone, 
 					false,
 					false,// send verification code
-					iCalTz, 
+					timezoneUtil.getTimeZone(iCalTz), 
 					false, // forceTimeZoneCheck
 					"", //userOffers
 					"", //userSearchs
 					false, //showContactData
-					true //showContactDataToContacts
+					true, //showContactDataToContacts
+					null
 					);
 			
 			User user = usersDao.get(newUserId);

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java Tue Jun 10 15:46:38 2014
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.commons.transaction.util.FileHelper;
 import org.apache.openmeetings.core.data.whiteboard.WhiteboardManager;
@@ -33,11 +34,11 @@ import org.apache.openmeetings.core.docu
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
-import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.file.LibraryPresentation;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.room.Client;
-import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.crypt.MD5;
@@ -65,7 +66,7 @@ public class ConferenceLibrary implement
 	@Autowired
 	private SessiondataDao sessiondataDao;
 	@Autowired
-	private IUserManager userManager;
+	private UserDao userDao;
 	@Autowired
 	private FileExplorerItemDao fileExplorerItemDao;
 	@Autowired
@@ -79,12 +80,10 @@ public class ConferenceLibrary implement
 		try {
 
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 
 			log.debug("#############users_id : " + users_id);
-			log.debug("#############user_level : " + user_level);
 
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				File working_dir = new File(OmFileHelper.getUploadFilesDir(), parentFolder);
 				log.debug("############# working_dir : " + working_dir);
@@ -122,8 +121,7 @@ public class ConferenceLibrary implement
 			Object tObjectRef) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 				// LinkedHashMap tObject = (LinkedHashMap)t;
 				// ArrayList tObject = (ArrayList)t;
 
@@ -173,9 +171,8 @@ public class ConferenceLibrary implement
 			Long fileExplorerItemId, Long whiteboardId) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				IConnection current = Red5.getConnectionLocal();
 				Client currentClient = this.sessionManager
@@ -252,8 +249,7 @@ public class ConferenceLibrary implement
 	public ArrayList loadChartObject(String SID, Long room_id, String fileName) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 				return LibraryChartLoader.getInstance().loadChart(OmFileHelper.getUploadRoomDir(room_id.toString()),
 						fileName);
 			}
@@ -272,9 +268,8 @@ public class ConferenceLibrary implement
 		try {
 
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				IConnection current = Red5.getConnectionLocal();
 				String streamid = current.getClient().getId();

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java Tue Jun 10 15:46:38 2014
@@ -49,8 +49,8 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.RoomType;
 import org.apache.openmeetings.db.entity.server.Server;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.util.AuthLevelUtil;
 import org.apache.openmeetings.util.CalendarPatterns;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.red5.logging.Red5LoggerFactory;
@@ -106,31 +106,25 @@ public class ConferenceService {
 			long organisation_id, long roomtypes_id) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-
-			log.debug("getRoomsByOrganisationAndType");
-
-			if (user_level == null) {
-				return null;
-			}
-			List<RoomOrganisation> roomOrgsList = roomManager
-					.getRoomsOrganisationByOrganisationIdAndRoomType(
-							user_level, organisation_id, roomtypes_id);
-
-			List<RoomOrganisation> filtered = new ArrayList<RoomOrganisation>();
-
-			for (Iterator<RoomOrganisation> iter = roomOrgsList.iterator(); iter
-					.hasNext();) {
-				RoomOrganisation orgRoom = iter.next();
-
-				if (!orgRoom.getRoom().getAppointment()) {
-					orgRoom.getRoom().setCurrentusers(
-							this.getRoomClientsListByRoomId(orgRoom.getRoom()
-									.getRooms_id()));
-					filtered.add(orgRoom);
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
+				log.debug("getRoomsByOrganisationAndType");
+				List<RoomOrganisation> roomOrgsList = roomManager.getRoomsOrganisationByOrganisationIdAndRoomType(organisation_id, roomtypes_id);
+	
+				List<RoomOrganisation> filtered = new ArrayList<RoomOrganisation>();
+	
+				for (Iterator<RoomOrganisation> iter = roomOrgsList.iterator(); iter
+						.hasNext();) {
+					RoomOrganisation orgRoom = iter.next();
+	
+					if (!orgRoom.getRoom().getAppointment()) {
+						orgRoom.getRoom().setCurrentusers(
+								this.getRoomClientsListByRoomId(orgRoom.getRoom()
+										.getRooms_id()));
+						filtered.add(orgRoom);
+					}
 				}
+				return filtered;
 			}
-			return filtered;
 		} catch (Exception err) {
 			log.error("[getRoomsByOrganisationAndType]", err);
 		}
@@ -141,22 +135,16 @@ public class ConferenceService {
 			String SID, long organisation_id) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-
-			log.debug("getRoomsByOrganisationAndType");
-
-			if (user_level == null) {
-				return null;
-			}
-			List<RoomOrganisation> roomOrgsList = roomManager
-					.getRoomsOrganisationByOrganisationId(user_level,
-							organisation_id);
-			
-			for (RoomOrganisation roomOrg : roomOrgsList) {
-				roomOrg.getRoom().setCurrentusers(sessionManager.getClientListByRoom(roomOrg.getRoom().getRooms_id()));
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
+				log.debug("getRoomsByOrganisationAndType");
+				List<RoomOrganisation> roomOrgsList = roomManager.getRoomsOrganisationByOrganisationId(organisation_id);
+				
+				for (RoomOrganisation roomOrg : roomOrgsList) {
+					roomOrg.getRoom().setCurrentusers(sessionManager.getClientListByRoom(roomOrg.getRoom().getRooms_id()));
+				}
+	
+				return roomOrgsList;
 			}
-
-			return roomOrgsList;
 		} catch (Exception err) {
 			log.error("[getRoomsByOrganisationAndType]", err);
 		}
@@ -178,11 +166,10 @@ public class ConferenceService {
 		log.debug("getRoomsByOrganisation");
 
 		Long user_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByIdAndOrg(user_id,
-				organisation_id);
-
-		return roomManager.getRoomsOrganisationByOrganisationId(user_level,
-				organisation_id, start, max, orderby, asc);
+		if (AuthLevelUtil.hasModLevel(userDao.get(user_id), organisation_id)) {
+			return roomManager.getRoomsOrganisationsByOrganisationId(organisation_id, start, max, orderby, asc);
+		}
+		return null;
 	}
 
 	/**
@@ -197,26 +184,25 @@ public class ConferenceService {
 			log.debug("getRoomsPublic");
 
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long User_level = userManager.getUserLevelByID(users_id);
-			log.error("getRoomsPublic user_level: " + User_level);
-
-			List<Room> roomList = roomManager.getPublicRooms(User_level,
-					roomtypes_id);
-
-			// Filter : no appointed meetings
-			List<Room> filtered = new ArrayList<Room>();
-
-			for (Iterator<Room> iter = roomList.iterator(); iter.hasNext();) {
-				Room rooms = iter.next();
-
-				if (!rooms.getAppointment()) {
-					rooms.setCurrentusers(this.getRoomClientsListByRoomId(rooms
-							.getRooms_id()));
-					filtered.add(rooms);
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
+	
+				List<Room> roomList = roomDao.getPublicRooms(roomtypes_id);
+	
+				// Filter : no appointed meetings
+				List<Room> filtered = new ArrayList<Room>();
+	
+				for (Iterator<Room> iter = roomList.iterator(); iter.hasNext();) {
+					Room rooms = iter.next();
+	
+					if (!rooms.getAppointment()) {
+						rooms.setCurrentusers(this.getRoomClientsListByRoomId(rooms
+								.getRooms_id()));
+						filtered.add(rooms);
+					}
 				}
+	
+				return filtered;
 			}
-
-			return filtered;
 		} catch (Exception err) {
 			log.error("[getRoomsByOrganisationAndType]", err);
 		}
@@ -227,16 +213,16 @@ public class ConferenceService {
 		try {
 
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-			log.debug("getRoomsPublic user_level: " + user_level);
-
-			List<Room> roomList = roomDao.getPublicRooms();
-			
-			for (Room room : roomList) {
-				room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
+	
+				List<Room> roomList = roomDao.getPublicRooms();
+				
+				for (Room room : roomList) {
+					room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+				}
+	
+				return roomList;
 			}
-
-			return roomList;
 		} catch (Exception err) {
 			log.error("[getRoomsPublicWithoutType]", err);
 		}
@@ -342,9 +328,8 @@ public class ConferenceService {
 		log.debug("ConferenceService.getAppointedMeetings");
 
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
 
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 			List<Appointment> points = appointmentLogic
 					.getTodaysAppointmentsForUser(users_id);
@@ -382,9 +367,8 @@ public class ConferenceService {
 		log.debug("ConferenceService.getAppointedMeetings");
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 				List<Appointment> appointments = appointmentLogic
 						.getTodaysAppointmentsForUser(users_id);
 				List<Room> result = new ArrayList<Room>();
@@ -418,8 +402,7 @@ public class ConferenceService {
 	 */
 	public List<RoomType> getRoomTypes(String SID) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 			User user = userDao.get(users_id);
 			return roomTypeDao.getAll(user == null
 					? cfgDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, Long.class, "1") : user.getLanguage_id());
@@ -435,15 +418,19 @@ public class ConferenceService {
 	 */
 	public Room getRoomById(String SID, long rooms_id) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		return roomManager.getRoomById(user_level, rooms_id);
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
+			return roomDao.get(rooms_id);
+		}
+		return null;
 	}
 
 	public Room getRoomWithCurrentUsersById(String SID, long rooms_id) {
+		Room room = null;
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		Room room = roomManager.getRoomById(user_level, rooms_id);
-		room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
+			room = roomDao.get(rooms_id);
+			room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+		}
 		return room;
 	}
 
@@ -455,12 +442,12 @@ public class ConferenceService {
 	 * @param roomtypes_id
 	 * @return - room with the given external id
 	 */
-	public Room getRoomByExternalId(String SID, Long externalUserId,
-			String externalUserType, long roomtypes_id) {
+	public Room getRoomByExternalId(String SID, Long externalUserId, String externalUserType, long roomtypes_id) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		return roomManager.getRoomByExternalId(user_level, externalUserId,
-				externalUserType, roomtypes_id);
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
+			return roomManager.getRoomByExternalId(externalUserId, externalUserType, roomtypes_id);
+		}
+		return null;
 	}
 
 	/**
@@ -478,9 +465,10 @@ public class ConferenceService {
 		log.debug("getRooms");
 
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		return roomManager.getRooms(user_level, start, max, orderby, asc,
-				search);
+		if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) {
+			return roomManager.getRooms(start, max, orderby, asc, search);
+		}
+		return null;
 	}
 
 	public SearchResult<Room> getRoomsWithCurrentUsers(String SID, int start,
@@ -488,9 +476,10 @@ public class ConferenceService {
 		log.debug("getRooms");
 
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		return roomManager.getRoomsWithCurrentUsers(user_level, start, max,
-				orderby, asc);
+		if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) {
+			return roomManager.getRoomsWithCurrentUsers(start, max, orderby, asc);
+		}
+		return null;
 	}
 
 	public List<RoomModerator> getRoomModeratorsByRoomId(String SID,
@@ -498,9 +487,8 @@ public class ConferenceService {
 		try {
 
 			Long users_id = sessiondataDao.checkSession(SID);
-			long user_level = userManager.getUserLevelByID(users_id);
 
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				return roomModeratorsDao.getByRoomId(roomId);
 
@@ -522,8 +510,10 @@ public class ConferenceService {
 	 */
 	public Long deleteRoom(String SID, long rooms_id) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		long user_level = userManager.getUserLevelByID(users_id);
-		return roomManager.deleteRoomById(user_level, rooms_id);
+		if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
+			return roomManager.deleteRoomById(rooms_id);
+		}
+		return null;
 	}
 	
 	/**
@@ -558,32 +548,29 @@ public class ConferenceService {
 		return sessionManager.getClientListByRoom(room_id);
 	}
 
-	public List<Room> getRoomsWithCurrentUsersByList(String SID, int start,
-			int max, String orderby, boolean asc) {
-		log.debug("getRooms");
+	public List<Room> getRoomsWithCurrentUsersByList(String SID, int start, int max, String orderby, boolean asc) {
+		log.debug("getRoomsWithCurrentUsersByList");
 
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		return roomManager.getRoomsWithCurrentUsersByList(user_level, start,
-				max, orderby, asc);
+		if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) {
+			return roomManager.getRoomsWithCurrentUsersByList(start, max, orderby, asc);
+		}
+		return null;
 	}
 
-	public List<Room> getRoomsWithCurrentUsersByListAndType(String SID,
-			int start, int max, String orderby, boolean asc,
-			String externalRoomType) {
-		log.debug("getRooms");
+	public List<Room> getRoomsWithCurrentUsersByListAndType(String SID, int start, int max, String orderby, boolean asc, String externalRoomType) {
+		log.debug("getRoomsWithCurrentUsersByListAndType");
 
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		return roomManager.getRoomsWithCurrentUsersByListAndType(user_level,
-				start, max, orderby, asc, externalRoomType);
+		if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) {
+			return roomManager.getRoomsWithCurrentUsersByListAndType(start, max, orderby, asc, externalRoomType);
+		}
+		return null;
 	}
 
-	public Room getRoomByOwnerAndType(String SID, Long roomtypesId,
-			String roomName) {
+	public Room getRoomByOwnerAndType(String SID, Long roomtypesId, String roomName) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 			return roomManager.getRoomByOwnerAndTypeId(users_id,
 					roomtypesId, roomName);
 		}
@@ -600,8 +587,7 @@ public class ConferenceService {
 	 */
 	public ServerDTO getServerForSession(String SID, long roomId) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 			List<Server> serverList = serverDao.getActiveServers();
 
 			long minimum = -1;

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java Tue Jun 10 15:46:38 2014
@@ -22,6 +22,7 @@ import static org.apache.openmeetings.ut
 
 import java.util.Date;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.openmeetings.core.converter.BaseConverter;
@@ -43,7 +44,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
 import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData.Status;
 import org.apache.openmeetings.db.entity.room.Client;
-import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.util.CalendarPatterns;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.IConnection;
@@ -73,7 +74,7 @@ public class FLVRecorderService implemen
 	@Autowired
 	private FlvRecordingDao flvRecordingDaoImpl;
 	@Autowired
-	private UserDao usersDaoImpl;
+	private UserDao userDao;
 	@Autowired
 	private RoomDao roomDao;
 	@Autowired
@@ -532,8 +533,7 @@ public class FLVRecorderService implemen
 			Integer rightSideTime) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				log.debug("updateFileOrFolderName " + flvRecordingId);
 

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java Tue Jun 10 15:46:38 2014
@@ -35,8 +35,8 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
 import org.apache.openmeetings.db.entity.room.Invitation.Valid;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.util.AuthLevelUtil;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.service.IPendingServiceCall;
 import org.red5.server.api.service.IPendingServiceCallback;
@@ -66,11 +66,25 @@ public class InvitationService implement
 		log.debug("InvitationService resultReceived" + arg0);
 	}
 
+	private Calendar getDate(String date, String time, String tzId) {
+		Calendar c = Calendar.getInstance(timezoneUtil.getTimeZone(tzId));
+		c.set(Calendar.YEAR, Integer.parseInt(date.substring(6)));
+		c.set(Calendar.MONTH, Integer.parseInt(date.substring(3, 5)) - 1);
+		c.set(Calendar.DAY_OF_MONTH, Integer.parseInt(date.substring(0, 2)));
+		c.set(Calendar.HOUR_OF_DAY, Integer.parseInt(time.substring(0, 2)));
+		c.set(Calendar.MINUTE, Integer.parseInt(time.substring(3, 5)));
+		c.set(Calendar.SECOND, 0);
+		c.set(Calendar.MILLISECOND, 0);
+		
+		return c;
+	}
+	
 	/**
 	 * send an invitation to another user by Mail
 	 * 
 	 * @param SID
-	 * @param username
+	 * @param firstname
+	 * @param lastname
 	 * @param message
 	 * @param email
 	 * @param subject
@@ -87,62 +101,27 @@ public class InvitationService implement
      * @param iCalTz
 	 * @return - invitation object in case of success, "Sys - Error" string or null in case of error
 	 */
-	public Object sendInvitationHash(String SID, String username,
+	public Object sendInvitationHash(String SID, String firstname, String lastname,
 			String message, String email, String subject,
 			Long room_id, String conferencedomain, Boolean isPasswordProtected,
-			String invitationpass, Integer valid, Date validFromDate,
-			String validFromTime, Date validToDate, String validToTime,
+			String invitationpass, Integer valid, String validFromDate,
+			String validFromTime, String validToDate, String validToTime,
 			Long language_id, String iCalTz, boolean sendMail) {
 
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 				log.debug("sendInvitationHash: ");
 	
-				Integer validFromHour = Integer.valueOf(
-						validFromTime.substring(0, 2)).intValue();
-				Integer validFromMinute = Integer.valueOf(
-						validFromTime.substring(3, 5)).intValue();
-	
-				Integer validToHour = Integer.valueOf(validToTime.substring(0, 2))
-						.intValue();
-				Integer validToMinute = Integer
-						.valueOf(validToTime.substring(3, 5)).intValue();
-	
-				log.info("validFromHour: " + validFromHour);
-				log.info("validFromMinute: " + validFromMinute);
-	
-				Calendar date = Calendar.getInstance();
-				date.setTime(validFromDate);
-				
-				TimeZone timeZone = timezoneUtil.getTimeZone(iCalTz);
-				
-				Calendar calFrom = Calendar.getInstance(timeZone);
-				calFrom.set(Calendar.YEAR, date.get(Calendar.YEAR));
-				calFrom.set(Calendar.MONTH, date.get(Calendar.MONTH));
-				calFrom.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH));
-				calFrom.set(Calendar.HOUR_OF_DAY, validFromHour);
-				calFrom.set(Calendar.MINUTE, validFromMinute);
-				calFrom.set(Calendar.SECOND, 0);
-	
-				date.setTime(validToDate);
-				Calendar calTo = Calendar.getInstance(timeZone);
-				calTo.set(Calendar.YEAR, date.get(Calendar.YEAR));
-				calTo.set(Calendar.MONTH, date.get(Calendar.MONTH));
-				calTo.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH));
-				calTo.set(Calendar.HOUR_OF_DAY, validToHour);
-				calTo.set(Calendar.MINUTE, validToMinute);
-				calTo.set(Calendar.SECOND, 0);
-	
-				Date dFrom = calFrom.getTime();
-				Date dTo = calTo.getTime();
+				Calendar calFrom = getDate(validFromDate, validFromTime, iCalTz);
+				Calendar calTo = getDate(validToDate, validToTime, iCalTz);
 	
-				User invitee = userDao.getContact(email, users_id);
+				User invitee = userDao.getContact(email, firstname, lastname, users_id);
 				Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
 								isPasswordProtected, invitationpass, Valid.fromInt(valid)
-								, userDao.get(users_id), language_id, dFrom, dTo, null);
+								, userDao.get(users_id), language_id,
+								calFrom.getTime(), calTo.getTime(), null);
 
 				if (invitation != null) {
 					if (sendMail) {
@@ -167,9 +146,8 @@ public class InvitationService implement
 	public String sendInvitationByHash(String SID, String invitationHash, String message, String subject
 			, Long language_id) throws Exception {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
 
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 			Invitation inv = (Invitation)invitationManager.getInvitationByHashCode(invitationHash, true);
 			inv.getInvitee().setLanguage_id(language_id);
 			invitationManager.sendInvitionLink(inv, MessageType.Create, subject, message, false);

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java Tue Jun 10 15:46:38 2014
@@ -27,6 +27,7 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.TimeZone;
 
 import org.apache.openmeetings.core.data.conference.RoomManager;
@@ -48,9 +49,12 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
 import org.apache.openmeetings.db.entity.server.SOAPLogin;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.Userdata;
-import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
@@ -87,7 +91,7 @@ public class MainService implements IPen
 	@Autowired
 	private ConferenceLogDao conferenceLogDao;
 	@Autowired
-	private UserDao usersDao;
+	private UserDao userDao;
 	@Autowired
 	private LdapConfigDao ldapConfigDao;
 	@Autowired
@@ -96,6 +100,8 @@ public class MainService implements IPen
 	private LdapLoginManagement ldapLoginManagement;
 	@Autowired
 	private MailHandler mailHandler;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
 
 	// External User Types
 	public static final String EXTERNAL_USER_TYPE_LDAP = "LDAP";
@@ -111,9 +117,9 @@ public class MainService implements IPen
 	public User getUser(String SID, int USER_ID) {
 		User users = new User();
 		Long users_id = sessiondataDao.checkSession(SID);
-		long user_level = userManager.getUserLevelByID(users_id);
-		if (user_level > 2) {
-			users = usersDao.get(new Long(USER_ID));
+		Set<Right> rights = userDao.getRights(users_id);
+		if (AuthLevelUtil.hasAdminLevel(rights) || AuthLevelUtil.hasWebServiceLevel(rights)) {
+			users = userDao.get(new Long(USER_ID));
 		} else {
 			users.setFirstname("No rights to do this");
 		}
@@ -158,7 +164,7 @@ public class MainService implements IPen
 
 	public User loginWicket(String SID, String wicketSID, Long wicketroomid) {
 		Long userId = sessiondataDao.checkSession(wicketSID);
-		User u = userId == null ? null : usersDao.get(userId);
+		User u = userId == null ? null : userDao.get(userId);
 		if (u != null) {
 			IConnection current = Red5.getConnectionLocal();
 			String streamId = current.getClient().getId();
@@ -315,8 +321,7 @@ public class MainService implements IPen
 	public Long loginUserByRemote(String SID) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+			if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
 				Sessiondata sd = sessiondataDao.getSessionByHash(SID);
 				if (sd == null || sd.getSessionXml() == null) {
 					return new Long(-37);
@@ -336,31 +341,26 @@ public class MainService implements IPen
 						// If so we need to check that we create this user in
 						// OpenMeetings and update its record
 
-						User user = usersDao.getExternalUser(userObject.getExternalUserId(),
-								userObject.getExternalUserType());
+						User user = userDao.getExternalUser(userObject.getExternalUserId(), userObject.getExternalUserType());
 
 						if (user == null) {
 							String iCalTz = configurationDao.getConfValue("default.timezone", String.class, "");
 
-							long userId = userManager
-									.addUserWithExternalKey(1, 0, 0,
-											userObject.getFirstname(),
-											userObject.getUsername(),
-											userObject.getLastname(), 1L,
-											true, "", // password is empty by default
-											null, null, "",
-											userObject.getExternalUserId(),
-											userObject.getExternalUserType(),
-											true, userObject.getEmail(),
-											iCalTz,
-											userObject.getPictureUrl());
+							Address a = userDao.getAddress(null, null, null, 1L, null, null, null, userObject.getEmail());
+
+							User u = userDao.addUser(UserDao.getDefaultRights(), userObject.getFirstname(), userObject.getUsername(),
+											userObject.getLastname(), 1L, "" // password is empty by default
+											, a, false, null, null, timezoneUtil.getTimeZone(iCalTz), false
+											, null, null, false, false, userObject.getExternalUserId()
+											, userObject.getExternalUserType(), null, userObject.getPictureUrl());
 
+							long userId = u.getUser_id();
 							currentClient.setUser_id(userId);
 							SessionVariablesUtil.setUserId(current.getClient(), userId);
 						} else {
 							user.setPictureuri(userObject.getPictureUrl());
 
-							usersDao.update(user, users_id);
+							userDao.update(user, users_id);
 
 							currentClient.setUser_id(user.getUser_id());
 							SessionVariablesUtil.setUserId(current.getClient(), user.getUser_id());
@@ -404,7 +404,7 @@ public class MainService implements IPen
 			
 			Long defaultRpcUserid = configurationDao.getConfValue(
 					"default.rpc.userid", Long.class, "-1");
-			User defaultRpcUser = usersDao.get(defaultRpcUserid);
+			User defaultRpcUser = userDao.get(defaultRpcUserid);
 			
 			User user = new User();
 			user.setOrganisation_users(defaultRpcUser.getOrganisation_users());
@@ -455,27 +455,9 @@ public class MainService implements IPen
 		return null;
 	}
 
-	/**
-	 * logs a user out and deletes his account
-	 * 
-	 * @param SID
-	 * @return - id of user being deleted, or error code
-	 */
-	public Long deleteUserIDSelf(String SID) {
-		Long users_id = sessiondataDao.checkSession(SID);
-		long user_level = userManager.getUserLevelByID(users_id);
-		if (user_level >= 1) {
-			userManager.logout(SID, users_id);
-			return usersDao.deleteUserID(users_id);
-		} else {
-			return new Long(-10);
-		}
-	}
-
 	public List<Userdata> getUserdata(String SID) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 			return userManager.getUserdataDashBoard(users_id);
 		}
 		return null;
@@ -493,8 +475,7 @@ public class MainService implements IPen
 	public LinkedHashMap<Integer, Client> getUsersByDomain(String SID,
 			String domain) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 			LinkedHashMap<Integer, Client> lMap = new LinkedHashMap<Integer, Client>();
 			// Integer counter = 0;
 			// for (Iterator<String> it =
@@ -514,8 +495,7 @@ public class MainService implements IPen
 	public int closeRoom(String SID, Long room_id, Boolean status) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				roomManager.closeRoom(room_id, status);
 

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/PrintService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/PrintService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/PrintService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/PrintService.java Tue Jun 10 15:46:38 2014
@@ -24,8 +24,8 @@ import java.util.List;
 
 import org.apache.openmeetings.core.batik.beans.PrintBean;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
-import org.apache.openmeetings.db.dao.user.IUserManager;
-import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.crypt.MD5;
 import org.red5.logging.Red5LoggerFactory;
@@ -41,7 +41,7 @@ public class PrintService {
 	@Autowired
 	private SessiondataDao sessiondataDao;
     @Autowired
-    private IUserManager userManager;
+    private UserDao userDao;
 	
 	/*
 	 * Export List
@@ -51,8 +51,7 @@ public class PrintService {
 	public String addPrintList(String SID, @SuppressWarnings("rawtypes") List map, int width, int height) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-	        Long user_level = userManager.getUserLevelByID(users_id);
-	        if (AuthLevelUtil.checkUserLevel(user_level)) {
+	        if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 	        	String hashRaw = ""+new Date();
 	        	String hash = MD5.do_checksum(hashRaw);
 	        	PrintService.addPrintItembyMap(hash, map, width, height);

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java Tue Jun 10 15:46:38 2014
@@ -48,8 +48,8 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.Salutation;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.UserContact;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.util.AuthLevelUtil;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.scope.IScope;
@@ -121,8 +121,7 @@ public class UserService implements IUse
 	 */
 	public User getUserById(String SID, long user_id) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 			return userDao.get(user_id);
 		}
 		return null;
@@ -165,8 +164,7 @@ public class UserService implements IUse
 	 */
 	public List<User> getUserList(String SID, int start, int max, String orderby, boolean asc) {
 		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		if (AuthLevelUtil.checkAdminLevel(user_level)) {
+		if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) {
 			return userDao.get("", start, max, orderby + (asc ? " ASC" : " DESC"));
 		}
 		return null;
@@ -186,9 +184,8 @@ public class UserService implements IUse
 	public Boolean kickUserByStreamId(String SID, String streamid, long serverId) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 			// admins only
-			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+			if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) {
 
 				if (serverId == 0) {
 
@@ -237,9 +234,8 @@ public class UserService implements IUse
 	public User updateUserSelfTimeZone(String SID, String jname) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 			// users only
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				User us = userDao.get(users_id);
 
@@ -261,9 +257,8 @@ public class UserService implements IUse
 	public List<UserContact> getPendingUserContacts(String SID) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 			// users only
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				List<UserContact> uList = userContactsDao
 						.getContactRequestsByUserAndStatus(users_id, true);
@@ -280,9 +275,8 @@ public class UserService implements IUse
 	public List<UserContact> getUserContacts(String SID) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 			// users only
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				List<UserContact> uList = userContactsDao
 						.getContactsByUserAndStatus(users_id, false);
@@ -299,9 +293,8 @@ public class UserService implements IUse
 	public Integer removeContactUser(String SID, Long userContactId) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 			// users only
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				UserContact userContacts = userContactsDao
 						.get(userContactId);
@@ -322,9 +315,8 @@ public class UserService implements IUse
 	public Boolean checkUserIsInContactList(String SID, Long user_id) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 			// users only
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				List<UserContact> uList = userContactsDao
 						.getContactsByUserAndStatus(users_id, false);
@@ -351,10 +343,9 @@ public class UserService implements IUse
 			Boolean shareCalendar) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 
 			// users only
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				UserContact userContacts = userContactsDao
 						.get(userContactId);
@@ -385,9 +376,8 @@ public class UserService implements IUse
 	public Boolean kickUserByPublicSID(String SID, String publicSID) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
 			// users only
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 
 				Client rcl = this.sessionManager.getClientByPublicSID(
 						publicSID, false, null);