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 [3/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/main/java/org/apache/openmeetings/remote/ConferenceService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceService.java Tue Jun 10 15:46:38 2014
@@ -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/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java Tue Jun 10 15:46:38 2014
@@ -30,7 +30,6 @@ import org.apache.openmeetings.data.flvr
import org.apache.openmeetings.data.flvrecord.converter.FlvInterviewReConverterTask;
import org.apache.openmeetings.data.flvrecord.converter.FlvRecorderConverterTask;
import org.apache.openmeetings.data.flvrecord.listener.StreamListener;
-import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;
@@ -74,7 +73,7 @@ public class FLVRecorderService implemen
@Autowired
private FlvRecordingDao flvRecordingDaoImpl;
@Autowired
- private UserDao usersDaoImpl;
+ private UserDao userDao;
@Autowired
private RoomDao roomDao;
@Autowired
@@ -90,8 +89,6 @@ public class FLVRecorderService implemen
@Autowired
private SessiondataDao sessiondataDao;
@Autowired
- private UserManager userManager;
- @Autowired
private ScopeApplicationAdapter scopeApplicationAdapter;
@Autowired
private FlvRecordingMetaDeltaDao metaDeltaDao;
@@ -537,8 +534,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/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/InvitationService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/InvitationService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/InvitationService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/InvitationService.java Tue Jun 10 15:46:38 2014
@@ -23,7 +23,6 @@ import static org.apache.openmeetings.ut
import java.util.Calendar;
import org.apache.openmeetings.data.conference.InvitationManager;
-import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.calendar.IInvitationManager.MessageType;
import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -49,8 +48,6 @@ public class InvitationService implement
@Autowired
private UserDao userDao;
@Autowired
- private UserManager userManager;
- @Autowired
private InvitationManager invitationManager;
@Autowired
private TimezoneUtil timezoneUtil;
@@ -78,7 +75,8 @@ public class InvitationService implement
* send an invitation to another user by Mail
*
* @param SID
- * @param username
+ * @param firstname
+ * @param lastname
* @param message
* @param email
* @param subject
@@ -104,9 +102,8 @@ public class InvitationService 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))) {
log.debug("sendInvitationHash: ");
Calendar calFrom = getDate(validFromDate, validFromTime, iCalTz);
@@ -141,9 +138,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/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MainService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MainService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MainService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/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.data.conference.InvitationManager;
@@ -45,8 +46,11 @@ 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.db.util.TimezoneUtil;
import org.apache.openmeetings.ldap.LdapLoginManagement;
import org.apache.openmeetings.mail.MailHandler;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
@@ -88,7 +92,7 @@ public class MainService implements IPen
@Autowired
private ConferenceLogDao conferenceLogDao;
@Autowired
- private UserDao usersDao;
+ private UserDao userDao;
@Autowired
private LdapConfigDao ldapConfigDao;
@Autowired
@@ -99,6 +103,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";
@@ -114,9 +120,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");
}
@@ -161,7 +167,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();
@@ -318,8 +324,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);
@@ -339,31 +344,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());
@@ -407,7 +407,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());
@@ -458,27 +458,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;
@@ -496,8 +478,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 =
@@ -517,8 +498,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/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/PrintService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/PrintService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/PrintService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/PrintService.java Tue Jun 10 15:46:38 2014
@@ -23,8 +23,8 @@ import java.util.HashMap;
import java.util.List;
import org.apache.openmeetings.batik.beans.PrintBean;
-import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.util.AuthLevelUtil;
import org.apache.openmeetings.util.OpenmeetingsVariables;
import org.apache.openmeetings.util.crypt.MD5;
@@ -41,7 +41,7 @@ public class PrintService {
@Autowired
private SessiondataDao sessiondataDao;
@Autowired
- private UserManager 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/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/UserService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/UserService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/UserService.java Tue Jun 10 15:46:38 2014
@@ -28,7 +28,6 @@ import org.apache.openmeetings.cluster.S
import org.apache.openmeetings.data.basic.FieldManager;
import org.apache.openmeetings.data.conference.InvitationManager;
import org.apache.openmeetings.data.conference.RoomManager;
-import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
@@ -89,8 +88,6 @@ public class UserService implements IUse
@Autowired
private ConfigurationDao configurationDao;
@Autowired
- private UserManager userManager;
- @Autowired
private UserDao userDao;
@Autowired
private FieldManager fieldManager;
@@ -132,8 +129,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;
@@ -176,8 +172,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;
@@ -197,9 +192,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) {
@@ -248,9 +242,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);
@@ -274,9 +267,8 @@ public class UserService implements IUse
String domain, String port, String webapp) {
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))) {
return ContactsHelper.addUserToContactList(userToAdd_id);
}
} catch (Exception err) {
@@ -288,9 +280,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);
@@ -307,9 +298,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);
@@ -326,9 +316,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);
@@ -371,9 +360,8 @@ public class UserService implements IUse
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 from = userDao.get(users_id);
TimeZone timezone = timezoneUtil.getTimeZone(from);
@@ -449,9 +437,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);
@@ -478,10 +465,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);
@@ -512,9 +498,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);
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/WhiteBoardService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/WhiteBoardService.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/WhiteBoardService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/WhiteBoardService.java Tue Jun 10 15:46:38 2014
@@ -29,11 +29,11 @@ import java.util.LinkedList;
import java.util.Map;
import org.apache.commons.collections.ComparatorUtils;
-import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.data.whiteboard.WhiteBoardObjectListManagerById;
import org.apache.openmeetings.data.whiteboard.WhiteBoardObjectSyncManager;
import org.apache.openmeetings.db.dao.server.ISessionManager;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.dto.room.Cliparts;
import org.apache.openmeetings.db.dto.room.WhiteboardObject;
import org.apache.openmeetings.db.dto.room.WhiteboardObjectList;
@@ -61,7 +61,7 @@ public class WhiteBoardService implement
private static final Logger log = Red5LoggerFactory.getLogger(
WhiteBoardService.class, "openmeetings");
@Autowired
- private UserManager userManager;
+ private UserDao userDao;
@Autowired
private final ScopeApplicationAdapter scopeApplicationAdapter = null;
@Autowired
@@ -195,9 +195,8 @@ public class WhiteBoardService implement
.getClientByStreamId(streamid, null);
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))) {
if (currentClient.getIsMod()) {
Client rcl = this.sessionManager
@@ -237,9 +236,8 @@ public class WhiteBoardService implement
.getClientByStreamId(streamid, null);
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))) {
if (currentClient.getIsMod()) {
Client rcl = this.sessionManager
@@ -279,9 +277,8 @@ public class WhiteBoardService implement
.getClientByStreamId(streamid, null);
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))) {
if (currentClient.getIsMod()) {
Client rcl = this.sessionManager
@@ -321,9 +318,8 @@ public class WhiteBoardService implement
.getClientByStreamId(streamid, null);
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))) {
if (currentClient.getIsMod()) {
Client rcl = this.sessionManager
.getClientByPublicSID(publicSID, false, null);
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/AbstractUploadController.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/AbstractUploadController.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/AbstractUploadController.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/AbstractUploadController.java Tue Jun 10 15:46:38 2014
@@ -18,12 +18,15 @@
*/
package org.apache.openmeetings.servlet.outputhandler;
+import java.util.Set;
+
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
-import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User.Right;
import org.apache.openmeetings.util.AuthLevelUtil;
import org.apache.openmeetings.util.OpenmeetingsVariables;
import org.red5.logging.Red5LoggerFactory;
@@ -38,7 +41,7 @@ public abstract class AbstractUploadCont
@Autowired
protected SessiondataDao sessiondataDao;
@Autowired
- protected UserManager userManager;
+ protected UserDao userDao;
@Autowired
protected ConfigurationDao configurationDao;
@@ -62,14 +65,12 @@ public abstract class AbstractUploadCont
log.debug("sid: " + sid);
Long userId = sessiondataDao.checkSession(sid);
- Long userLevel = userManager.getUserLevelByID(userId);
- log.debug("userId = " + userId + ", userLevel = " + userLevel);
+ Set<Right> rights = userDao.getRights(userId);
+ log.debug("userId = " + userId);
info.userId = userId;
- if ((admin && !AuthLevelUtil.checkAdminLevel(userLevel))
- || (!admin && userLevel <= 0)) {
- throw new ServletException("Insufficient permissions "
- + userLevel);
+ if ((admin && !AuthLevelUtil.hasAdminLevel(rights)) || (!admin && rights.isEmpty())) {
+ throw new ServletException("Insufficient permissions " + rights);
}
String publicSID = request.getParameter("publicSID");
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/DownloadHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/DownloadHandler.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/DownloadHandler.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/DownloadHandler.java Tue Jun 10 15:46:38 2014
@@ -26,16 +26,18 @@ import static org.apache.openmeetings.ut
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
-import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.user.User.Right;
import org.apache.openmeetings.servlet.BaseHttpServlet;
import org.apache.openmeetings.servlet.ServerNotInitializedException;
import org.apache.openmeetings.util.OmFileHelper;
@@ -98,9 +100,9 @@ public class DownloadHandler extends Bas
log.debug("sid: " + sid);
Long users_id = getBean(SessiondataDao.class).checkSession(sid);
- Long user_level = getBean(UserManager.class).getUserLevelByID(users_id);
+ Set<Right> rights = getBean(UserDao.class).getRights(users_id);
- if (user_level != null && user_level > 0) {
+ if (rights != null && !rights.isEmpty()) {
String room_id = httpServletRequest.getParameter("room_id");
if (room_id == null) {
room_id = "default";
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java Tue Jun 10 15:46:38 2014
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
import java.util.List;
+import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -38,8 +39,9 @@ import org.apache.batik.transcoder.Trans
import org.apache.batik.transcoder.image.JPEGTranscoder;
import org.apache.openmeetings.batik.beans.PrintBean;
import org.apache.openmeetings.data.record.WhiteboardMapToSVG;
-import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User.Right;
import org.apache.openmeetings.remote.PrintService;
import org.apache.openmeetings.servlet.BaseHttpServlet;
import org.apache.openmeetings.servlet.ServerNotInitializedException;
@@ -94,12 +96,11 @@ public class ExportToImage extends BaseH
}
Long users_id = getBean(SessiondataDao.class).checkSession(sid);
- Long user_level = getBean(UserManager.class).getUserLevelByID(users_id);
+ Set<Right> rights = getBean(UserDao.class).getRights(users_id);
log.debug("users_id: " + users_id);
- log.debug("user_level: " + user_level);
- if (user_level != null && user_level > 0 && hash != "") {
+ if (rights != null && !rights.isEmpty() && hash != "") {
PrintBean pBean = PrintService.getPrintItemByHash(hash);
Modified: openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml (original)
+++ openmeetings/branches/3.0.x/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/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml (original)
+++ openmeetings/branches/3.0.x/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/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml (original)
+++ openmeetings/branches/3.0.x/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/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml (original)
+++ openmeetings/branches/3.0.x/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/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml (original)
+++ openmeetings/branches/3.0.x/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/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml (original)
+++ openmeetings/branches/3.0.x/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/branches/3.0.x/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml (original)
+++ openmeetings/branches/3.0.x/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml Tue Jun 10 15:46:38 2014
@@ -271,7 +271,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/branches/3.0.x/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java (original)
+++ openmeetings/branches/3.0.x/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/branches/3.0.x/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java (original)
+++ openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java Tue Jun 10 15:46:38 2014
@@ -21,42 +21,36 @@ package org.apache.openmeetings.test.inv
import java.text.SimpleDateFormat;
import java.util.Date;
-import org.apache.openmeetings.data.user.UserManager;
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.axis.services.UserWebService;
+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.remote.InvitationService;
import org.apache.openmeetings.remote.MainService;
import org.apache.openmeetings.test.AbstractJUnitDefaults;
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 UserManager 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);
-
- 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);
-
- } catch (Exception err) {
- log.error("[testSendInvitationLink]", err);
- }
+ public void testSendInvitationLink() throws AxisFault {
+ 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/branches/3.0.x/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java (original)
+++ openmeetings/branches/3.0.x/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/branches/3.0.x/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java (original)
+++ openmeetings/branches/3.0.x/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/branches/3.0.x/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java (original)
+++ openmeetings/branches/3.0.x/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.data.user.UserManager;
-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.remote.MainService;
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 UserManager 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/branches/3.0.x/src/util/java/org/apache/openmeetings/util/AuthLevelUtil.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/AuthLevelUtil.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/AuthLevelUtil.java (original)
+++ openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/AuthLevelUtil.java Tue Jun 10 15:46:38 2014
@@ -18,21 +18,53 @@
*/
package org.apache.openmeetings.util;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Set;
+
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Right;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
public class AuthLevelUtil {
-
- public static boolean checkUserLevel(Long user_level) {
- return user_level == 1 || user_level == 2 || user_level == 3 || user_level == 4;
- }
+ private static final Logger log = Red5LoggerFactory.getLogger(AuthLevelUtil.class, webAppRootKey);
- public static boolean checkModLevel(Long user_level) {
- return user_level == 2 || user_level == 3;
+ private static boolean check(Set<Right> rights, Right level) {
+ boolean result = rights.contains(level);
+ log.debug(String.format("Level %s :: %s", level, result ? "[GRANTED]" : "[DENIED]"));
+ return result;
}
- public static boolean checkAdminLevel(Long user_level) {
- return user_level == 3;
+ public static boolean hasUserLevel(Set<Right> rights) {
+ return check(rights, Right.Room);
}
-
- public static boolean checkWebServiceLevel(Long user_level) {
- return user_level == 3 || user_level == 4;
+
+ public static boolean hasModLevel(User u, Long orgId) {
+ boolean result = hasAdminLevel(u.getRights());
+ if (!result && orgId != null) {
+ for (Organisation_Users ou : u.getOrganisation_users()) {
+ if (orgId.equals(ou.getOrganisation().getOrganisation_id())) {
+ if (Boolean.TRUE.equals(ou.getIsModerator())) {
+ result = true;
+ }
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+ public static boolean hasAdminLevel(Set<Right> rights) {
+ return check(rights, Right.Admin);
+ }
+
+ public static boolean hasWebServiceLevel(Set<Right> rights) {
+ return check(rights, Right.Soap);
+ }
+
+ public static boolean hasLoginLevel(Set<Right> rights) {
+ return check(rights, Right.Login);
}
}
Added: openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/OmException.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/OmException.java?rev=1601669&view=auto
==============================================================================
--- openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/OmException.java (added)
+++ openmeetings/branches/3.0.x/src/util/java/org/apache/openmeetings/util/OmException.java Tue Jun 10 15:46:38 2014
@@ -0,0 +1,22 @@
+package org.apache.openmeetings.util;
+
+public class OmException extends Exception {
+ private static final long serialVersionUID = 1L;
+ private Long code;
+
+ public OmException(String msg) {
+ super(msg);
+ }
+
+ public OmException(Long code) {
+ this.code = code;
+ }
+
+ public Long getCode() {
+ return code;
+ }
+
+ public void setCode(Long code) {
+ this.code = code;
+ }
+}
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/AdminPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/AdminPanel.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/AdminPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/AdminPanel.java Tue Jun 10 15:46:38 2014
@@ -21,7 +21,7 @@ package org.apache.openmeetings.web.admi
import org.apache.openmeetings.web.common.BasePanel;
import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
-@AuthorizeInstantiation("ADMIN")
+@AuthorizeInstantiation("Admin")
public abstract class AdminPanel extends BasePanel {
private static final long serialVersionUID = 6811243474361803279L;
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.html?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.html (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.html Tue Jun 10 15:46:38 2014
@@ -50,10 +50,7 @@
wicket:id="forceTimeZoneCheck" />
</div>
<div class="formelement">
- <label><wicket:ommessage key="158" /></label><select wicket:id="status" />
- </div>
- <div class="formelement">
- <label><wicket:ommessage key="169" /></label><select wicket:id="level_id" />
+ <label><wicket:ommessage key="881" /></label><input type="hidden" class="input" wicket:id="rights" />
</div>
</fieldset>
<fieldset class="ui-widget-content">
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java (original)
+++ openmeetings/branches/3.0.x/src/web/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/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java (original)
+++ openmeetings/branches/3.0.x/src/web/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/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/branches/3.0.x/src/web/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;
@@ -45,7 +45,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;
@@ -54,7 +53,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;
@@ -83,7 +85,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;
@@ -114,7 +116,7 @@ public class WebSession extends Abstract
public void invalidate() {
super.invalidate();
userId = -1;
- userLevel = -1;
+ rights.clear();
SID = null;
sdf = null;
recordingId = null;
@@ -150,15 +152,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;
}
@@ -169,9 +165,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();
}
@@ -199,6 +201,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 {
@@ -225,7 +228,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);
@@ -237,25 +240,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;
}
@@ -348,8 +356,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/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/MenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/MenuPanel.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/MenuPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/MenuPanel.java Tue Jun 10 15:46:38 2014
@@ -21,6 +21,7 @@ package org.apache.openmeetings.web.comm
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.util.AuthLevelUtil;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.pages.MainPage;
@@ -47,7 +48,7 @@ public class MenuPanel extends BasePanel
setMarkupId(id);
final NavigationDao man = Application.getBean(NavigationDao.class);
- add(new ListView<Naviglobal>("mainItem", man.getMainMenu(WebSession.getUserLevel(), WebSession.getUserId(), WebSession.getLanguage())) {
+ add(new ListView<Naviglobal>("mainItem", man.getMainMenu(AuthLevelUtil.hasAdminLevel(WebSession.getRights()), WebSession.getUserId(), WebSession.getLanguage())) {
private static final long serialVersionUID = 2173926553418745231L;
@Override
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/UserPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/UserPanel.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/UserPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/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/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/ActivatePage.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/ActivatePage.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/ActivatePage.java (original)
+++ openmeetings/branches/3.0.x/src/web/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.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/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/MainPage.java Tue Jun 10 15:46:38 2014
@@ -55,7 +55,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);
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java (original)
+++ openmeetings/branches/3.0.x/src/web/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);