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 [6/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java Tue Jun 10 15:46:38 2014
@@ -25,11 +25,14 @@ import static org.apache.openmeetings.we
 import static org.apache.wicket.datetime.markup.html.basic.DateLabel.forDatePattern;
 import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
 
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.web.admin.AdminBaseForm;
 import org.apache.openmeetings.web.app.WebSession;
@@ -42,7 +45,6 @@ import org.apache.wicket.markup.html.bas
 import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.markup.html.form.RequiredTextField;
 import org.apache.wicket.markup.html.panel.IMarkupSourcingStrategy;
 import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;
@@ -51,6 +53,9 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.util.time.Duration;
 
 import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+import com.vaynberg.wicket.select2.Response;
+import com.vaynberg.wicket.select2.Select2MultiChoice;
+import com.vaynberg.wicket.select2.TextChoiceProvider;
 
 /**
  * CRUD operations in form for {@link User}
@@ -145,54 +150,36 @@ public class UserForm extends AdminBaseF
 
 		add(new CheckBox("forceTimeZoneCheck"));
 
-		final String field159 = WebSession.getString(159);
-		final String field160 = WebSession.getString(160);
-
-		add(new DropDownChoice<Integer>("status", Arrays.asList(0, 1), new IChoiceRenderer<Integer>() {
-
+		add(new Select2MultiChoice<Right>("rights", null, new TextChoiceProvider<Right>() {
 			private static final long serialVersionUID = 1L;
 
-			public Object getDisplayValue(Integer id) {
-				if (id.equals(0)) {
-					return field159;
-				} else if (id.equals(1)) {
-					return field160;
-				}
-				return null;
+			@Override
+			protected String getDisplayText(Right choice) {
+				return choice.name();
 			}
 
-			public String getIdValue(Integer id, int index) {
-				return "" + id;
+			@Override
+			protected Object getId(Right choice) {
+				return choice.name();
 			}
 
-		}));
-
-		final String field166 = WebSession.getString(166);
-		final String field167 = WebSession.getString(167);
-		final String field168 = WebSession.getString(168);
-		final String field1311 = WebSession.getString(1311);
-
-		add(new DropDownChoice<Long>("level_id", Arrays.asList(1L, 2L, 3L, 4L), new IChoiceRenderer<Long>() {
-
-			private static final long serialVersionUID = 1L;
-
-			public Object getDisplayValue(Long id) {
-				if (id.equals(1L)) {
-					return field166;
-				} else if (id.equals(2L)) {
-					return field167;
-				} else if (id.equals(3L)) {
-					return field168;
-				} else if (id.equals(4L)) {
-					return field1311;
+			@Override
+			public void query(String term, int page, Response<Right> response) {
+				for (Right r : Right.values()) {
+					if (r.name().contains(term)) {
+						response.add(r);
+					}
 				}
-				return null;
 			}
 
-			public String getIdValue(Long id, int index) {
-				return "" + id;
+			@Override
+			public Collection<Right> toChoices(Collection<String> ids) {
+				Collection<Right> rights = new ArrayList<User.Right>(ids.size());
+				for (String id : ids) {
+					rights.add(Right.valueOf(id));
+				}
+				return rights;
 			}
-
 		}));
 		add(new ComunityUserForm("comunity", getModel()));
 	}

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java Tue Jun 10 15:46:38 2014
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.app;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
+import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.wicket.authentication.strategy.DefaultAuthenticationStrategy;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
@@ -30,68 +31,63 @@ public class OmAuthenticationStrategy ex
 	private static final String VALUE_SEPARATOR = "-sep-";
 	private static final String COOKIE_KEY = "LoggedIn";
 	private static final Logger log = Red5LoggerFactory.getLogger(OmAuthenticationStrategy.class, webAppRootKey);
-	/** The cookie name to store the username/password/domain */
+	/** The cookie name to store the username/password/type/domain */
 	private final String cookieKey;
-	
+
 	public OmAuthenticationStrategy() {
 		super(COOKIE_KEY);
 		cookieKey = COOKIE_KEY;
 	}
-	
+
 	/**
 	 * @see org.apache.wicket.authentication.IAuthenticationStrategy#load()
 	 */
 	@Override
-	public String[] load()
-	{
+	public String[] load() {
 		String value = getCookieUtils().load(cookieKey);
-		if (Strings.isEmpty(value) == false)
-		{
-			try
-			{
+		if (Strings.isEmpty(value) == false) {
+			try {
 				value = getCrypt().decryptUrlSafe(value);
-			}
-			catch (RuntimeException e)
-			{
-				log.info(
-					"Error decrypting login cookie: {}. The cookie will be deleted. Possible cause is that a session-relative encryption key was used to encrypt this cookie while this decryption attempt is happening in a different session, eg user coming back to the application after session expiration",
-					cookieKey);
+			} catch (RuntimeException e) {
+				log.info("Error decrypting login cookie: {}. The cookie will be deleted. Possible cause is that a "
+						+ "session-relative encryption key was used to encrypt this cookie while this decryption attempt "
+						+ "is happening in a different session, eg user coming back to the application after session expiration",
+						cookieKey);
 				getCookieUtils().remove(cookieKey);
 				value = null;
 			}
-			if (Strings.isEmpty(value) == false)
-			{
+			if (!Strings.isEmpty(value)) {
 				String username = null;
 				String password = null;
-				String domain = null;
+				String type = null;
+				String domainId = null;
 
 				String[] values = value.split(VALUE_SEPARATOR);
-				if ((values.length > 0) && (Strings.isEmpty(values[0]) == false))
-				{
+				if (values.length > 0 && !Strings.isEmpty(values[0])) {
 					username = values[0];
 				}
-				if ((values.length > 1) && (Strings.isEmpty(values[1]) == false))
-				{
+				if (values.length > 1 && !Strings.isEmpty(values[1])) {
 					password = values[1];
 				}
-				if ((values.length > 2) && (Strings.isEmpty(values[2]) == false))
-				{
-					domain = values[2];
+				if (values.length > 2 && !Strings.isEmpty(values[2])) {
+					type = values[2];
+				}
+				if (values.length > 3 && !Strings.isEmpty(values[3])) {
+					domainId = values[3];
 				}
 
-				return new String[] { username, password, domain };
+				return new String[] { username, password, type, domainId };
 			}
 		}
 
 		return null;
 	}
 
-	public void save(final String username, final String password, final String domain) {
-		String value = username + VALUE_SEPARATOR + password + VALUE_SEPARATOR + domain;
-
-		String encryptedValue = getCrypt().encryptUrlSafe(value);
-
-		getCookieUtils().save(cookieKey, encryptedValue);
-
+	public void save(final String username, final String password, final Type type, final Long domainId) {
+		if (type != Type.oauth) {
+			String value = username + VALUE_SEPARATOR + password + VALUE_SEPARATOR + type.name() + VALUE_SEPARATOR + domainId;
+			String encryptedValue = getCrypt().encryptUrlSafe(value);
+			getCookieUtils().save(cookieKey, encryptedValue);
+		}
 	}
 }

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Tue Jun 10 15:46:38 2014
@@ -19,7 +19,6 @@
 package org.apache.openmeetings.web.app;
 
 import static java.text.DateFormat.SHORT;
-import static org.apache.openmeetings.util.AuthLevelUtil.checkAdminLevel;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_MYROOMS_KEY;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_RSS_KEY;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
@@ -31,6 +30,7 @@ import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Calendar;
+import java.util.Collections;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
@@ -46,7 +46,6 @@ import org.apache.openmeetings.db.dao.la
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.ILdapLoginManagement;
-import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.label.FieldLanguage;
@@ -55,7 +54,10 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Right;
+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.web.pages.SwfPage;
 import org.apache.openmeetings.web.user.dashboard.PrivateRoomsWidgetDescriptor;
 import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
@@ -84,7 +86,7 @@ public class WebSession extends Abstract
 	public static int MILLIS_IN_MINUTE = 60000;
 	//private static final Map<String, Locale> LNG_TO_LOCALE_MAP = new HashMap<String, Locale> ();
 	private long userId = -1;
-	private long userLevel = -1; //TODO renew somehow on user edit !!!!
+	private Set<Right> rights = new HashSet<User.Right>(); //TODO renew somehow on user edit !!!!
 	private long languageId = -1; //TODO renew somehow on user edit !!!!
 	private String SID = null;
 	private OmUrlFragment area = null;
@@ -115,7 +117,7 @@ public class WebSession extends Abstract
 	public void invalidate() {
 		super.invalidate();
 		userId = -1;
-		userLevel = -1;
+		rights.clear();
 		SID = null;
 		sdf = null;
 		recordingId = null;
@@ -151,15 +153,9 @@ public class WebSession extends Abstract
 		} catch (Exception e) {
 			//no-op, will continue to sign-in page
 		}
-		Roles r = null;
-		if (externalType != null) {
-			invalidate();
-		}
-		if (isSignedIn()) {
-			r = new Roles(Roles.USER);
-			if (checkAdminLevel(userLevel)) {
-				r.add(Roles.ADMIN);
-			}
+		Roles r = new Roles();
+		for (Right right : rights) {
+			r.add(right.name());
 		}
 		return r;
 	}
@@ -170,9 +166,15 @@ public class WebSession extends Abstract
 			IAuthenticationStrategy strategy = getAuthenticationStrategy();
 			// get username and password from persistence store
 			String[] data = strategy.load();
-			if ((data != null) && (data.length > 2)) {
+			if (data != null && data.length > 3 && data[2] != null) {
+				Long domainId = null;
+				try {
+					domainId = Long.parseLong(data[3]);
+				} catch (Exception e) {
+					//no-op
+				}
 				// try to sign in the user
-				if (!signIn(data[0], data[1], data[2])) {
+				if (!signIn(data[0], data[1], Type.valueOf(data[2]), domainId)) {
 					// the loaded credentials are wrong. erase them.
 					strategy.remove();
 				}
@@ -200,6 +202,7 @@ public class WebSession extends Abstract
 						user.setLogin(remoteUser.getUsername()); //FIXME check if login UNIQUE
 						user.setExternalUserId(remoteUser.getExternalUserId());
 						user.setExternalUserType(remoteUser.getExternalUserType());
+						user.getRights().add(Right.Room);
 						user.getAdresses().setEmail(remoteUser.getEmail());
 						user.setPictureuri(remoteUser.getPictureUrl());
 					} else {
@@ -226,7 +229,7 @@ public class WebSession extends Abstract
 	
 	private void setUser(User u) {
 		userId = u.getUser_id();
-		userLevel = u.getLevel_id();
+		rights = Collections.unmodifiableSet(u.getRights());
 		languageId = u.getLanguage_id();
 		externalType = u.getExternalUserType();
 		tz = getBean(TimezoneUtil.class).getTimeZone(u);
@@ -238,25 +241,30 @@ public class WebSession extends Abstract
 		}
 	}
 	
-	public boolean signIn(String login, String password, String ldapConfigFileName) {
+	public boolean signIn(String login, String password, Type type, Long domainId) {
 		Sessiondata sessData = getBean(SessiondataDao.class).startsession();
 		SID = sessData.getSession_id();
-		Object _u = Strings.isEmpty(ldapConfigFileName)
-				? getBean(IUserManager.class).loginUser(SID, login, password, null, null, false)
-				: getBean(ILdapLoginManagement.class).doLdapLogin(login, password, null, null, SID, ldapConfigFileName);
-		
-		if (_u instanceof User) {
-			User u = (User)_u;
-			/* we will allow login in case user 'guess' the password
-			if (!checkAdminLevel(u.getLevel_id()) && Type.ldap == u.getType() && Strings.isEmpty(ldapConfigFileName)) {
-				//user is LDAP and is not admin, then authentication should be done on the LDAP server (even if the LDAP server is down)
-				return false;
+		try {
+			User u = null;
+			switch (type) {
+				case ldap:
+					u = getBean(ILdapLoginManagement.class).login(login, password, domainId);
+					break;
+				case user:
+					/* we will allow login against internal DB in case user 'guess' LDAP password */
+					u = getBean(UserDao.class).login(login, password);
+					break;
+				case oauth:
+					// we did all the checks at this stage, just set the user
+					u = getBean(UserDao.class).getByName(login, Type.oauth);
+					break;
+				default:
+					throw new OmException(-1L);
 			}
-			*/
 			setUser(u);
 			return true;
-		} else if (_u instanceof Long) {
-			loginError = (Long)_u;
+		} catch (OmException oe) {
+			loginError = oe.getCode() == null ? -1 : oe.getCode();
 		}
 		return false;
 	}
@@ -349,8 +357,8 @@ public class WebSession extends Abstract
 		return get().sdf;
 	}
 	
-	public static long getUserLevel() {
-		return get().userLevel;
+	public static Set<Right> getRights() {
+		return get().rights;
 	}
 
 	public OmUrlFragment getArea() {

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java Tue Jun 10 15:46:38 2014
@@ -30,7 +30,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 
-@AuthorizeInstantiation("USER")
+@AuthorizeInstantiation("Dashboard")
 public abstract class UserPanel extends BasePanel {
 	private static final long serialVersionUID = 8607846885689465360L;
 

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java Tue Jun 10 15:46:38 2014
@@ -22,6 +22,8 @@ import java.util.Date;
 
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Right;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
@@ -34,9 +36,9 @@ public class ActivatePage extends BaseNo
 		if (userHash != null) {
 			User user = Application.getBean(UserDao.class).getUserByActivationHash(userHash);
 
-			if (user != null && user.getStatus() == 0) {
+			if (!AuthLevelUtil.hasLoginLevel(user.getRights())) {
 				// activate
-				user.setStatus(1);
+				user.getRights().add(Right.Login);
 				user.setUpdatetime(new Date());
 
 				Application.getBean(UserDao.class).update(user, null);

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java Tue Jun 10 15:46:38 2014
@@ -24,7 +24,6 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.Application.removeOnlineUser;
 import static org.apache.openmeetings.web.app.WebSession.getLanguage;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static org.apache.openmeetings.web.app.WebSession.getUserLevel;
 import static org.apache.openmeetings.web.util.OmUrlFragment.CHILD_ID;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_EDIT;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
@@ -36,6 +35,7 @@ import java.util.List;
 import org.apache.openmeetings.db.dao.basic.NavigationDao;
 import org.apache.openmeetings.db.entity.basic.Naviglobal;
 import org.apache.openmeetings.db.entity.basic.Navimain;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.WebSession;
@@ -68,7 +68,7 @@ import org.red5.logging.Red5LoggerFactor
 import org.slf4j.Logger;
 import org.wicketstuff.urlfragment.UrlFragment;
 
-@AuthorizeInstantiation("USER")
+@AuthorizeInstantiation({"Admin", "Dashboard", "Room"})
 public class MainPage extends BaseInitedPage {
 	private static final long serialVersionUID = 6421960759218157999L;
 	private static final Logger log = Red5LoggerFactory.getLogger(MainPage.class, webAppRootKey);
@@ -168,7 +168,7 @@ public class MainPage extends BaseInited
 	
 	private List<MenuItem> getMainMenu() {
 		List<MenuItem> menu = new ArrayList<MenuItem>();
-		for (Naviglobal gl : getBean(NavigationDao.class).getMainMenu(getUserLevel(), getUserId(), getLanguage())) {
+		for (Naviglobal gl : getBean(NavigationDao.class).getMainMenu(AuthLevelUtil.hasAdminLevel(WebSession.getRights()), getUserId(), getLanguage())) {
 			MenuItem g = new MenuItem(gl.getLabel().getValue()) {
 				private static final long serialVersionUID = 1L;
 

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java Tue Jun 10 15:46:38 2014
@@ -125,7 +125,7 @@ public class ForgetPasswordDialog extend
 					if (type == Type.email && null == dao.getUserByEmail(n)) {
 						error(WebSession.getString(318));
 					}
-					if (type == Type.login && null == dao.getUserByName(n, User.Type.user)) {
+					if (type == Type.login && null == dao.getByName(n, User.Type.user)) {
 						error(WebSession.getString(320));
 					}
 				}
@@ -216,7 +216,7 @@ public class ForgetPasswordDialog extend
 					return new Long(-9);
 				}
 			} else if (username.length() > 0) {
-				User us = userDao.getUserByName(username, User.Type.user);
+				User us = userDao.getByName(username, User.Type.user);
 				if (us != null) {
 					sendHashByUser(us, appLink, userDao);
 					return new Long(-4);

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java Tue Jun 10 15:46:38 2014
@@ -196,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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Tue Jun 10 15:46:38 2014
@@ -40,6 +40,7 @@ import org.apache.wicket.ajax.AjaxReques
 import org.apache.wicket.ajax.json.JSONArray;
 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.AttributeAppender;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
@@ -53,6 +54,7 @@ import org.apache.wicket.request.resourc
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
+@AuthorizeInstantiation("Room")
 public class RoomPanel extends BasePanel {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = Red5LoggerFactory.getLogger(RoomPanel.class, webAppRootKey);

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/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.JavaScriptHeaderItem;
@@ -54,7 +55,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/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml Tue Jun 10 15:46:38 2014
@@ -68,7 +68,6 @@
 		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
 		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
-		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
 		<class>org.apache.openmeetings.db.entity.user.User</class>
 		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
 		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml Tue Jun 10 15:46:38 2014
@@ -68,7 +68,6 @@
 		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
 		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
-		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
 		<class>org.apache.openmeetings.db.entity.user.User</class>
 		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
 		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml Tue Jun 10 15:46:38 2014
@@ -67,7 +67,6 @@
 		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
 		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
-		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
 		<class>org.apache.openmeetings.db.entity.user.User</class>
 		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
 		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml Tue Jun 10 15:46:38 2014
@@ -68,7 +68,6 @@
 		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
 		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
-		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
 		<class>org.apache.openmeetings.db.entity.user.User</class>
 		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
 		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml Tue Jun 10 15:46:38 2014
@@ -68,7 +68,6 @@
 		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
 		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
-		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
 		<class>org.apache.openmeetings.db.entity.user.User</class>
 		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
 		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml Tue Jun 10 15:46:38 2014
@@ -68,7 +68,6 @@
 		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
 		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
-		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
 		<class>org.apache.openmeetings.db.entity.user.User</class>
 		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
 		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml Tue Jun 10 15:46:38 2014
@@ -276,7 +276,6 @@
 	<bean id="soapLoginDao" class="org.apache.openmeetings.db.dao.server.SOAPLoginDao" />
 	<bean id="userContactsDao" class="org.apache.openmeetings.db.dao.user.UserContactsDao" />
 	<bean id="userDao" class="org.apache.openmeetings.db.dao.user.UserDao" />
-	<bean id="userLevelDao" class="org.apache.openmeetings.db.dao.user.UserLevelDao" />
 	<bean id="serverDao" class="org.apache.openmeetings.db.dao.server.ServerDao" />
 	<bean id="chatDao" class="org.apache.openmeetings.db.dao.basic.ChatDao" />
 	<bean id="clientDao" class="org.apache.openmeetings.db.dao.room.ClientDao" />

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java Tue Jun 10 15:46:38 2014
@@ -22,6 +22,7 @@ import static org.apache.openmeetings.we
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
+import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.util.tester.WicketTester;
 import org.junit.After;
@@ -39,9 +40,9 @@ public class AbstractWicketTester extend
 
 	public void login(String login, String password) {
 		if (login != null && password != null) {
-			WebSession.get().signIn(login, password, "");
+			WebSession.get().signIn(login, password, Type.user, null);
 		} else {
-			WebSession.get().signIn(username, userpass, "");
+			WebSession.get().signIn(username, userpass, Type.user, null);
 		}
 		assertTrue("Web session is not signed in for user: " + (login != null ? login : username), WebSession.get().isSignedIn());
 	}

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java Tue Jun 10 15:46:38 2014
@@ -18,43 +18,38 @@
  */
 package org.apache.openmeetings.test.invitiation;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 import org.apache.openmeetings.core.remote.InvitationService;
 import org.apache.openmeetings.core.remote.MainService;
-import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.webservice.UserWebService;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class TestInvitation extends AbstractJUnitDefaults {
-
-	private static final Logger log = LoggerFactory.getLogger(TestInvitation.class);
-	
 	@Autowired
 	private InvitationService invitationService;
 	@Autowired
 	private MainService mService;
 	@Autowired
-	private IUserManager userManager;
+	private UserWebService userWebService;
+	@Autowired
+	private UserDao userDao;
 	
 	@Test
 	public void testSendInvitationLink() {
-		try {
-			Sessiondata sessionData = mService.getsessiondata();
-			
-			User us = (User) userManager.loginUser(sessionData.getSession_id(), username, userpass, null, null, false);
-			
-			invitationService.sendInvitationHash(sessionData.getSession_id(), username, "message", "sebawagner@apache.org", 
-					"subject", 1L, "", false, "", 1, new Date(), "12:00", new Date(), "14:00", 1L, us.getTimeZoneId(), true);
-			
-		} catch (Exception err) {
-			log.error("[testSendInvitationLink]", err);
-		}
+		Sessiondata sessionData = mService.getsessiondata();
+		
+		Long uid = userWebService.loginUser(sessionData.getSession_id(), username, userpass);
+		User us = userDao.get(uid);
+		
+		String date = new SimpleDateFormat("dd.MM.yyyy").format(new Date());
+		invitationService.sendInvitationHash(sessionData.getSession_id(), "Testname", "Testlastname", "message", "sebawagner@apache.org", 
+				"subject", 1L, "", false, "", 1, date, "12:00", date, "14:00", 1L, us.getTimeZoneId(), true);
 	}
-
 }

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java Tue Jun 10 15:46:38 2014
@@ -18,8 +18,8 @@
  */
 package org.apache.openmeetings.test.navi;
 
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 
@@ -38,7 +38,7 @@ public class TestNavi extends AbstractJU
 	@Test
 	public void testGetNavi(){
 		
-        List<Naviglobal> ll = navimanagement.getMainMenu(3L, 1L, 1L);
+        List<Naviglobal> ll = navimanagement.getMainMenu(true, 1L, 1L);
 
         assertTrue("GlobalNavi size should be greater than zero: " + ll.size(), ll.size() > 0);
         System.out.println("NaviGlobal size: " + ll.size());

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java Tue Jun 10 15:46:38 2014
@@ -21,6 +21,7 @@ package org.apache.openmeetings.test.use
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.List;
@@ -42,6 +43,11 @@ public class TestUserContact extends Abs
 	Random random = new Random();
 	
 	@Test
+	public void testGetUser() throws Exception {
+		assertNull("Null should be returned in case User does not exist", userDao.get(Long.MAX_VALUE));
+	}
+	
+	@Test
 	public void createUserWithOrganisation() throws Exception {
 		int rnd = random.nextInt();
 		User u = getUser(rnd);

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java Tue Jun 10 15:46:38 2014
@@ -20,27 +20,21 @@ package org.apache.openmeetings.test.use
 
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.openmeetings.core.remote.MainService;
-import org.apache.openmeetings.db.dao.user.IUserManager;
-import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.OmException;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class TestLogin extends AbstractJUnitDefaults {
 	
 	@Autowired
-	private MainService mService;
-	
-	@Autowired
-	private IUserManager userManager;
+	private UserDao userDao;
 
 	@Test
-	public void testTestLogin(){
-		Sessiondata sessionData = mService.getsessiondata();
-		
-		User us = (User) userManager.loginUser(sessionData.getSession_id(), username, userpass, null, null, false);
+	public void testTestLogin() throws OmException {
+		User us = userDao.login(username, userpass);
 		
 		assertNotNull("User is unable to login", us);
 		

Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java Tue Jun 10 15:46:38 2014
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 
 import javax.jws.WebService;
 import javax.ws.rs.Path;
@@ -40,14 +41,14 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.room.RoomTypeDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.calendar.AppointmentCategory;
 import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Right;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.util.AuthLevelUtil;
 import org.apache.openmeetings.webservice.dto.ServiceException;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -74,8 +75,6 @@ public class CalendarWebService {
 	@Autowired
 	private SessiondataDao sessiondataDao;
 	@Autowired
-	private IUserManager userManager;
-	@Autowired
 	private UserDao userDao;
 	@Autowired
 	private RoomManager roomManager;
@@ -108,8 +107,7 @@ public class CalendarWebService {
 				+ ", enddate - " + endtime);
 		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 appointmentDao.getAppointmentsByRange(users_id, starttime, endtime);
 			}
@@ -139,8 +137,7 @@ public class CalendarWebService {
 				+ ", enddate - " + endtime);
 		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))) {
 
 				return appointmentDao.getAppointmentsByRange(userId, starttime, endtime);
 			}
@@ -162,8 +159,7 @@ public class CalendarWebService {
 		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 appointmentLogic.getNextAppointment();
 			}
@@ -187,8 +183,7 @@ public class CalendarWebService {
 		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 appointmentLogic.getNextAppointment();
 			}
@@ -215,8 +210,7 @@ public class CalendarWebService {
 		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 appointmentLogic
 						.searchAppointmentByName(appointmentName);
@@ -293,9 +287,7 @@ public class CalendarWebService {
 			Long users_id = sessiondataDao.checkSession(SID);
 			log.debug("saveAppointMent users_id:" + users_id);
 
-			Long user_level = userManager.getUserLevelByID(users_id);
-
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 				Appointment a = appointmentLogic.getAppointment(appointmentName, appointmentLocation, appointmentDescription,
 						appointmentstart, appointmentend, isDaily, isWeekly, isMonthly, isYearly, categoryId, remind,
 						mmClient, roomType, languageId, isPasswordProtected, password, roomId, users_id);
@@ -327,16 +319,15 @@ public class CalendarWebService {
 	 * @return - id of appointment updated
 	 */
 	public Long updateAppointmentTimeOnly(String SID, Long appointmentId,
-			Date appointmentstart, Date appointmentend,
-			Long languageId) {
+			Date appointmentstart, Date appointmentend, Long languageId) {
 		try {
 
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-			if (AuthLevelUtil.checkUserLevel(user_level)) {
+			Set<Right> rights = userDao.getRights(users_id);
+			if (AuthLevelUtil.hasUserLevel(rights)) {
 
 				Appointment a = appointmentDao.get(appointmentId);
-				if (!AuthLevelUtil.checkAdminLevel(user_level) && !a.getOwner().getUser_id().equals(users_id)) {
+				if (!AuthLevelUtil.hasAdminLevel(rights) && !a.getOwner().getUser_id().equals(users_id)) {
 					throw new ServiceException("The Appointment cannot be updated by the given user");
 				}
 				if (!a.getStart().equals(appointmentstart) || !a.getEnd().equals(appointmentend)) {
@@ -417,11 +408,11 @@ public class CalendarWebService {
 		try {
 
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
+			Set<Right> rights = userDao.getRights(users_id);
 
-			if (AuthLevelUtil.checkWebServiceLevel(user_level) || AuthLevelUtil.checkAdminLevel(user_level)) {
+			if (AuthLevelUtil.hasWebServiceLevel(rights) || AuthLevelUtil.hasAdminLevel(rights)) {
 				// fine
-			} else if (AuthLevelUtil.checkUserLevel(user_level)) {
+			} else if (AuthLevelUtil.hasUserLevel(rights)) {
 				// check if the appointment belongs to the current user
 				Appointment a = appointmentDao.get(appointmentId);
 				if (!a.getOwner().getUser_id().equals(users_id)) {
@@ -483,12 +474,12 @@ public class CalendarWebService {
 	public Long deleteAppointment(String SID, Long appointmentId, Long language_id) throws ServiceException {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
+			Set<Right> rights = userDao.getRights(users_id);
 
 			Appointment a = appointmentDao.get(appointmentId);
-			if (AuthLevelUtil.checkWebServiceLevel(user_level) || AuthLevelUtil.checkAdminLevel(user_level)) {
+			if (AuthLevelUtil.hasWebServiceLevel(rights) || AuthLevelUtil.hasAdminLevel(rights)) {
 				// fine
-			} else if (AuthLevelUtil.checkUserLevel(user_level)) {
+			} else if (AuthLevelUtil.hasUserLevel(rights)) {
 				// check if the appointment belongs to the current user
 				if (!a.getOwner().getUser_id().equals(users_id)) {
 					throw new ServiceException("The Appointment cannot be updated by the given user");
@@ -496,7 +487,7 @@ public class CalendarWebService {
 			} else {
 				throw new ServiceException("Not allowed to preform that action, Authenticate the SID first");
 			}
-			appointmentDao.delete(a, users_id);
+			appointmentDao.delete(a, users_id); //FIXME check this !!!!
 			return a.getId();
 		} catch (Exception err) {
 			log.error("[deleteAppointment]", err);
@@ -516,8 +507,7 @@ public class CalendarWebService {
 		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))) {
 
 				Appointment appointment = new Appointment();
 
@@ -551,9 +541,8 @@ public class CalendarWebService {
 		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<AppointmentCategory> res = appointmentCategoryDao
 						.getAppointmentCategoryList();
@@ -590,8 +579,7 @@ public class CalendarWebService {
 
 		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))) {
 
 				User user = userDao.get(users_id);
 				long language_id = (user == null) ? 1 : user.getLanguage_id();

Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java Tue Jun 10 15:46:38 2014
@@ -38,13 +38,12 @@ import org.apache.openmeetings.core.data
 import org.apache.openmeetings.core.documents.LoadLibraryPresentation;
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
 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.FileExplorerObject;
 import org.apache.openmeetings.db.dto.file.LibraryPresentation;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.StoredFile;
 import org.apache.openmeetings.util.process.ConverterProcessResultList;
@@ -73,8 +72,6 @@ public class FileWebService {
 	@Autowired
 	private SessiondataDao sessiondataDao;
 	@Autowired
-	private IUserManager userManager;
-	@Autowired
 	private UserDao userDao;
 	@Autowired
 	private FileExplorerItemDao fileExplorerItemDao;
@@ -128,9 +125,8 @@ public class FileWebService {
 		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))) {
 
 				URL url = new URL(path);
 				URLConnection uc = url.openConnection();
@@ -213,9 +209,8 @@ public class FileWebService {
 		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))) {
 
 				URL url = new URL(path);
 				URLConnection uc = url.openConnection();
@@ -285,9 +280,8 @@ public class FileWebService {
 		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))) {
 
 				User userExternal = userDao.getExternalUser(externalUserId, externalType);
 
@@ -351,9 +345,8 @@ public class FileWebService {
 		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))) {
 
 				log.debug("addFolder " + parentFileExplorerItemId);
 
@@ -409,8 +402,7 @@ public class FileWebService {
 			String fileName, Long room_id, Boolean isOwner) throws ServiceException {
 		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("addFolder " + parentFileExplorerItemId);
 
@@ -465,9 +457,8 @@ public class FileWebService {
 		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))) {
 
 				fileExplorerItemDao.deleteFileExplorerItemByExternalIdAndType(
 						externalFilesid, externalType);
@@ -496,9 +487,8 @@ public class FileWebService {
 		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))) {
 
 				fileExplorerItemDao.deleteFileExplorerItem(fileExplorerItemId);
 
@@ -526,9 +516,8 @@ public class FileWebService {
 		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))) {
 
 				// TODO: Check if user has access or not to the file
 
@@ -574,9 +563,8 @@ public class FileWebService {
 		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))) {
 
 				File working_dir = new File(OmFileHelper.getUploadProfilesDir(), parentFolder);
 				log.debug("############# working_dir : " + working_dir);
@@ -620,10 +608,8 @@ public class FileWebService {
 		try {
 
 			Long webservice_users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager
-					.getUserLevelByID(webservice_users_id);
 
-			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+			if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(webservice_users_id))) {
 
 				log.debug("room_id " + room_id);
 
@@ -691,9 +677,8 @@ public class FileWebService {
 		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("room_id " + room_id);
 
@@ -768,10 +753,8 @@ public class FileWebService {
 		try {
 
 			Long webservice_users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager
-					.getUserLevelByID(webservice_users_id);
 
-			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+			if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(webservice_users_id))) {
 
 				log.debug("parentFileExplorerItemId "
 						+ parentFileExplorerItemId);
@@ -818,9 +801,8 @@ public class FileWebService {
 		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("parentFileExplorerItemId "
 						+ parentFileExplorerItemId);
@@ -863,10 +845,8 @@ public class FileWebService {
 		try {
 
 			Long webservice_users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager
-					.getUserLevelByID(webservice_users_id);
 
-			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+			if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(webservice_users_id))) {
 
 				log.debug("deleteFileOrFolder " + fileExplorerItemId);
 
@@ -899,9 +879,8 @@ public class FileWebService {
 		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))) {
 
 				// TODO: check if this user is allowed to change this file
 				/*
@@ -955,10 +934,8 @@ public class FileWebService {
 		try {
 
 			Long webservice_users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager
-					.getUserLevelByID(webservice_users_id);
 
-			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+			if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(webservice_users_id))) {
 
 				log.debug("deleteFileOrFolder " + fileExplorerItemId);
 
@@ -1014,9 +991,8 @@ public class FileWebService {
 		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))) {
 				
 				// A test is required that checks if the user is allowed to move the file
 

Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/JabberWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/JabberWebService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/JabberWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/JabberWebService.java Tue Jun 10 15:46:38 2014
@@ -35,7 +35,6 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dto.room.RoomDTO;
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.db.entity.room.Invitation.Valid;
@@ -43,8 +42,8 @@ import org.apache.openmeetings.db.entity
 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.db.util.AuthLevelUtil;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.util.AuthLevelUtil;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -64,8 +63,6 @@ public class JabberWebService {
 	private static final Logger log = Red5LoggerFactory.getLogger(JabberWebService.class, webAppRootKey);
 
 	@Autowired
-	private IUserManager userManager;
-	@Autowired
 	private UserDao userDao;
 	@Autowired
 	private SessiondataDao sessiondataDao;
@@ -129,10 +126,9 @@ public class JabberWebService {
 	 * @return number of users as int
 	 */
 	public int getUserCount(String SID, Long roomId) {
-		Long users_id = this.sessiondataDao.checkSession(SID);
-		Long user_level = this.userManager.getUserLevelByID(users_id);
+		Long users_id = sessiondataDao.checkSession(SID);
 
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 			return conferenceService.getRoomClientsListByRoomId(roomId).size();
 		}
 		return -1;
@@ -148,10 +144,9 @@ public class JabberWebService {
 	 * @return hash to enter the room
 	 */
 	public String getInvitationHash(String SID, String username, Long room_id) {
-		Long users_id = this.sessiondataDao.checkSession(SID);
-		Long user_level = this.userManager.getUserLevelByID(users_id);
+		Long users_id = sessiondataDao.checkSession(SID);
 		
-		if (AuthLevelUtil.checkUserLevel(user_level)) {
+		if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
 			User invitee = userDao.getContact(username, username, username, users_id);
 			Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
 							false, "", Valid.OneTime, userDao.get(users_id), 1L, null, null, null);