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 [2/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/db/java/org/apache/openmeetings/db/entity/user/User.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/user/User.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/user/User.java (original)
+++ openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/user/User.java Tue Jun 10 15:46:38 2014
@@ -24,11 +24,15 @@ import java.io.Serializable;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
+import javax.persistence.CollectionTable;
import javax.persistence.Column;
+import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
@@ -97,13 +101,22 @@ import org.simpleframework.xml.Root;
@NamedQuery(name = "getNondeletedUsers", query = "SELECT u FROM User u WHERE u.deleted = false"),
@NamedQuery(name = "countNondeletedUsers", query = "SELECT COUNT(u) FROM User u WHERE u.deleted = false"),
@NamedQuery(name = "getUsersByOrganisationId", query = "SELECT u FROM User u WHERE u.deleted = false AND u.organisation_users.organisation.organisation_id = :organisation_id"),
- @NamedQuery(name = "getExternalUser", query = "SELECT u FROM User u WHERE u.deleted = false AND u.externalUserId LIKE :externalId AND u.externalUserType LIKE :externalType")
+ @NamedQuery(name = "getExternalUser", query = "SELECT u FROM User u WHERE u.deleted = false AND u.externalUserId LIKE :externalId AND u.externalUserType LIKE :externalType"),
+ @NamedQuery(name = "getUserByLoginOrEmail", query = "SELECT u from User u WHERE u.deleted = false AND u.type = :type AND (u.login = :userOrEmail OR u.adresses.email = :userOrEmail)")
})
@Table(name = "om_user")
@Root(name = "user")
public class User implements Serializable, IDataProviderEntity {
private static final long serialVersionUID = -2265479712596674065L;
+ public enum Right {
+ Admin // access to Admin module
+ , Room // enter the room
+ , Dashboard // access the dashboard
+ , Login // login to Om internal DB
+ , Soap // use rest/soap calls
+ }
+
public enum Type {
user
, ldap
@@ -122,10 +135,6 @@ public class User implements Serializabl
@Element(data = true, required = false)
private Date age;
- @Column(name = "availible")
- @Element(data = true, required = false)
- private Integer availible;
-
@Column(name = "firstname")
@Element(data = true, required = false)
private String firstname;
@@ -141,10 +150,6 @@ public class User implements Serializabl
@Element(data = true, required = false)
private Long lasttrans;
- @Column(name = "level_id")
- @Element(data = true, required = false)
- private Long level_id;
-
@Column(name = "login")
@Element(data = true, required = false)
private String login;
@@ -159,10 +164,6 @@ public class User implements Serializabl
@Element(data = true, required = false)
private Date regdate;
- @Column(name = "status")
- @Element(data = true, required = false)
- private Integer status;
-
@Column(name = "salutations_id")
@Element(name = "title_id", data = true, required = false)
private Long salutations_id;
@@ -199,9 +200,6 @@ public class User implements Serializabl
@Element(name = "address", required = false)
private Address adresses;
- @Transient
- private Userlevel userlevel;
-
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "user_id", insertable = true, updatable = true)
@ElementList(name = "organisations", required = false)
@@ -265,6 +263,17 @@ public class User implements Serializabl
@Element(data = true, required = false)
private Long ownerId;
+ @ElementCollection(fetch = FetchType.EAGER)
+ @Column(name = "right")
+ @CollectionTable(name = "om_user_right", joinColumns = @JoinColumn(name = "user_id"))
+ @Enumerated(EnumType.STRING)
+ @ElementList(name="rights", data = true, required = false)
+ private Set<Right> rights = new HashSet<User.Right>();
+
+ @Column(name = "domain_id")
+ @Element(data = true, required = false)
+ private Long domainId; // LDAP config id for LDAP, OAuth server id for OAuth
+
public Long getUser_id() {
return user_id;
}
@@ -281,23 +290,6 @@ public class User implements Serializabl
this.adresses = adresses;
}
- public void setAdresses(String street, String zip, String town,
- State state, String additionalname, String comment, String fax,
- String phone, String email) {
- if (adresses == null) {
- adresses = new Address();
- }
- adresses.setStreet(street);
- adresses.setZip(zip);
- adresses.setTown(town);
- adresses.setStates(state);
- adresses.setAdditionalname(additionalname);
- adresses.setComment(comment);
- adresses.setFax(fax);
- adresses.setPhone(phone);
- adresses.setEmail(email);
- }
-
public Date getAge() {
return age;
}
@@ -306,14 +298,6 @@ public class User implements Serializabl
this.age = age == null ? new Date() :age;
}
- public Integer getAvailible() {
- return availible;
- }
-
- public void setAvailible(Integer availible) {
- this.availible = availible;
- }
-
public String getFirstname() {
return firstname;
}
@@ -346,14 +330,6 @@ public class User implements Serializabl
this.lasttrans = lasttrans;
}
- public Long getLevel_id() {
- return level_id;
- }
-
- public void setLevel_id(Long level_id) {
- this.level_id = level_id;
- }
-
public String getLogin() {
return login;
}
@@ -407,14 +383,6 @@ public class User implements Serializabl
this.regdate = regdate;
}
- public Integer getStatus() {
- return status;
- }
-
- public void setStatus(Integer status) {
- this.status = status;
- }
-
public Long getSalutations_id() {
return salutations_id;
}
@@ -423,14 +391,6 @@ public class User implements Serializabl
this.salutations_id = salutations_id;
}
- public Userlevel getUserlevel() {
- return userlevel;
- }
-
- public void setUserlevel(Userlevel userlevel) {
- this.userlevel = userlevel;
- }
-
public Date getStarttime() {
return starttime;
}
@@ -607,13 +567,29 @@ public class User implements Serializabl
this.ownerId = ownerId;
}
+ public Set<Right> getRights() {
+ return rights;
+ }
+
+ public void setRights(Set<Right> rights) {
+ this.rights = rights;
+ }
+
+ public Long getDomainId() {
+ return domainId;
+ }
+
+ public void setDomainId(Long domainId) {
+ this.domainId = domainId;
+ }
+
@Override
public String toString() {
return "User [user_id=" + user_id + ", firstname=" + firstname
+ ", lastname=" + lastname + ", login=" + login
+ ", pictureuri=" + pictureuri + ", deleted=" + deleted
+ ", language_id=" + language_id + ", adresses=" + adresses
- + ", externalUserId=" + externalUserId + ", externalUserType="
+ + ", externalId=" + externalUserId + ", externalType="
+ externalUserType + ", type=" + type + "]";
}
}
Modified: openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupExport.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupExport.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupExport.java (original)
+++ openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupExport.java Tue Jun 10 15:46:38 2014
@@ -28,6 +28,7 @@ import java.io.OutputStreamWriter;
import java.net.URI;
import java.util.Date;
import java.util.List;
+import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@@ -70,6 +71,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.PrivateMessage;
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.util.AuthLevelUtil;
import org.apache.openmeetings.util.CalendarPatterns;
import org.apache.openmeetings.util.OmFileHelper;
@@ -136,9 +138,7 @@ public class BackupExport {
@Autowired
private RoomOrganisationDao roomOrganisationDao;
- public void performExport(File filePath, File backup_dir,
- boolean includeFiles) throws Exception {
-
+ public void performExport(File filePath, File backup_dir, boolean includeFiles) throws Exception {
if (!backup_dir.exists()) {
backup_dir.mkdirs();
}
@@ -378,9 +378,7 @@ public class BackupExport {
File[] files = sourceDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
- if (!file.getName().equals("backup")
- && !file.getName().equals("import")) {
-
+ if (!file.getName().equals("backup") && !file.getName().equals("import")) {
log.debug("### " + file.getName());
FileHelper.copyRec(file, new File(targetRootDir, file.getName()));
@@ -406,11 +404,8 @@ public class BackupExport {
log.debug("---Done");
}
- private <T> void writeList(Serializer ser, File backup_dir,
- String fileName, String listElement, List<T> list) throws Exception {
-
- FileOutputStream fos = new FileOutputStream(new File(backup_dir,
- fileName));
+ private <T> void writeList(Serializer ser, File backup_dir, String fileName, String listElement, List<T> list) throws Exception {
+ FileOutputStream fos = new FileOutputStream(new File(backup_dir, fileName));
writeList(ser, fos, listElement, list);
}
@@ -434,10 +429,10 @@ public class BackupExport {
}
public void exportUsers(File backup_dir, List<User> list) throws Exception {
- FileOutputStream fos
- = new FileOutputStream(new File(backup_dir, "users.xml"));
+ FileOutputStream fos = new FileOutputStream(new File(backup_dir, "users.xml"));
exportUsers(fos, list);
}
+
public void exportUsers(OutputStream os, List<User> list) throws Exception {
Registry registry = new Registry();
Strategy strategy = new RegistryStrategy(registry);
@@ -458,31 +453,26 @@ public class BackupExport {
* javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest
* , javax.servlet.http.HttpServletResponse)
*/
- public void service(HttpServletRequest httpServletRequest,
- HttpServletResponse httpServletResponse, ServletContext servletCtx)
- throws ServletException, IOException {
-
- String sid = httpServletRequest.getParameter("sid");
+ public void service(HttpServletRequest request, HttpServletResponse response, ServletContext ctx) throws ServletException, IOException {
+ String sid = request.getParameter("sid");
if (sid == null) {
sid = "default";
}
log.debug("sid: " + sid);
Long users_id = sessiondataDao.checkSession(sid);
- Long user_level = usersDao.get(users_id).getLevel_id();
+ Set<Right> rights = usersDao.get(users_id).getRights();
log.debug("users_id: " + users_id);
- log.debug("user_level: " + user_level);
+ log.debug("user_level: " + rights);
- if (AuthLevelUtil.checkAdminLevel(user_level)) {
+ if (AuthLevelUtil.hasAdminLevel(rights)) {
// if (true) {
- String includeFileOption = httpServletRequest
- .getParameter("includeFileOption");
+ String includeFileOption = request.getParameter("includeFileOption");
boolean includeFiles = includeFileOption == null || "yes".equals(includeFileOption);
- String moduleName = httpServletRequest
- .getParameter("moduleName");
+ String moduleName = request.getParameter("moduleName");
if (moduleName == null) {
moduleName = "moduleName";
}
@@ -506,16 +496,13 @@ public class BackupExport {
try {
performExport(backupFile, backup_dir, includeFiles);
- httpServletResponse.reset();
- httpServletResponse.resetBuffer();
- httpServletResponse
- .setContentType("APPLICATION/OCTET-STREAM");
- httpServletResponse.setHeader("Content-Disposition",
- "attachment; filename=\"" + requestedFile + "\"");
- httpServletResponse.setHeader("Content-Length",
- "" + backupFile.length());
+ response.reset();
+ response.resetBuffer();
+ response.setContentType("APPLICATION/OCTET-STREAM");
+ response.setHeader("Content-Disposition", "attachment; filename=\"" + requestedFile + "\"");
+ response.setHeader("Content-Length", "" + backupFile.length());
- OutputStream out = httpServletResponse.getOutputStream();
+ OutputStream out = response.getOutputStream();
OmFileHelper.copyFile(backupFile, out);
out.flush();
Modified: openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java (original)
+++ openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java Tue Jun 10 15:46:38 2014
@@ -101,6 +101,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
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.entity.user.UserContact;
import org.apache.openmeetings.db.util.TimezoneUtil;
@@ -840,14 +841,14 @@ public class BackupImport {
List<User> list = new ArrayList<User>();
InputNode root = NodeBuilder.read(new StringReader(sw.toString()));
InputNode root1 = NodeBuilder.read(new StringReader(sw.toString())); //HACK to handle Address inside user
- InputNode root2 = NodeBuilder.read(new StringReader(sw.toString())); //HACK to handle old om_time_zone
+ InputNode root2 = NodeBuilder.read(new StringReader(sw.toString())); //HACK to handle old om_time_zone, level_id, status
InputNode listNode = root.getNext();
InputNode listNode1 = root1.getNext(); //HACK to handle Address inside user
InputNode listNode2 = root2.getNext(); //HACK to handle old om_time_zone
if (listNodeName.equals(listNode.getName())) {
InputNode item = listNode.getNext();
InputNode item1 = listNode1.getNext(); //HACK to handle Address inside user
- InputNode item2 = listNode2.getNext(); //HACK to handle old om_time_zone
+ InputNode item2 = listNode2.getNext(); //HACK to handle old om_time_zone, level_id, status
while (item != null) {
User u = ser.read(User.class, item, false);
@@ -863,13 +864,34 @@ public class BackupImport {
item1 = listNode1.getNext(); //HACK to handle Address inside user
} while (item1 != null && !"user".equals(item1.getName()));
}
+ String level_id = null, status = null;
do {
if (u.getTimeZoneId() == null && "omTimeZone".equals(item2.getName())) {
String jName = item2.getValue();
u.setTimeZoneId(jName == null ? null : tzUtil.getTimezoneByInternalJName(jName).getID());
}
- item2 = listNode2.getNext(); //HACK to handle old om_time_zone
+ if ("level_id".equals(item2.getName())) {
+ level_id = item2.getValue();
+ }
+ if ("status".equals(item2.getName())) {
+ status = item2.getValue();
+ }
+ item2 = listNode2.getNext(); //HACK to handle old om_time_zone, level_id, status
} while (item2 != null && !"user".equals(item2.getName()));
+ if (u.getRights().isEmpty()) {
+ u.getRights().add(Right.Room);
+ if ("1".equals(status)) {
+ u.getRights().add(Right.Dashboard);
+ u.getRights().add(Right.Login);
+ }
+ if ("3".equals(level_id)) {
+ u.getRights().add(Right.Admin);
+ u.getRights().add(Right.Soap);
+ }
+ if ("4".equals(level_id)) {
+ u.getRights().add(Right.Soap);
+ }
+ }
// check that email is unique
if (u.getAdresses() != null && u.getAdresses().getEmail() != null) {
if (userEmailMap.containsKey(u.getAdresses().getEmail())) {
Modified: openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/installation/ImportInitvalues.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/installation/ImportInitvalues.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/installation/ImportInitvalues.java (original)
+++ openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/installation/ImportInitvalues.java Tue Jun 10 15:46:38 2014
@@ -47,6 +47,7 @@ import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Set;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.basic.ErrorDao;
@@ -65,7 +66,6 @@ import org.apache.openmeetings.db.dao.us
import org.apache.openmeetings.db.dao.user.SalutationDao;
import org.apache.openmeetings.db.dao.user.StateDao;
import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.dao.user.UserLevelDao;
import org.apache.openmeetings.db.entity.label.FieldLanguage;
import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
import org.apache.openmeetings.db.entity.label.Fieldvalues;
@@ -74,6 +74,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.server.OAuthServer;
import org.apache.openmeetings.db.entity.server.OAuthServer.RequestMethod;
import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.entity.user.User.Right;
import org.apache.openmeetings.db.util.TimezoneUtil;
import org.apache.openmeetings.util.OmFileHelper;
import org.dom4j.Document;
@@ -117,8 +118,6 @@ public class ImportInitvalues {
@Autowired
private RoomTypeDao roomTypeDao;
@Autowired
- private UserLevelDao userLevelDao;
- @Autowired
private OrganisationDao organisationDao;
@Autowired
private IUserManager userManager;
@@ -132,14 +131,6 @@ public class ImportInitvalues {
return progress;
}
- public void loadUserLevels() {
- userLevelDao.addUserLevel("User", 1);
- userLevelDao.addUserLevel("Moderator", 2);
- userLevelDao.addUserLevel("Admin", 3);
- userLevelDao.addUserLevel("Web-Service (only access via SOAP)", 4);
- log.debug("UserLevels ADDED");
- }
-
public void loadMainMenu() {
/*
* ######################## Dashboard Menu Points
@@ -651,20 +642,20 @@ public class ImportInitvalues {
org.setStarttime(new Date());
org = organisationDao.update(org, null);
- Long user_id = userManager.registerUserInit(new Long(3), 3, 1,
- 1, cfg.username, cfg.password, "lastname", "firstname", cfg.email,
- new java.util.Date(), "street", "no", "fax", "zip", 1,
- "town", default_lang_id, false,
- Arrays.asList(org.getOrganisation_id()), "phone", false, false,
- timezoneUtil.getTimeZone(cfg.ical_timeZone),
- false, "", "", false, true, null);
+ Set<Right> rights = UserDao.getDefaultRights();
+ rights.add(Right.Admin);
+ rights.add(Right.Soap);
+ Long user_id = userManager.registerUserInit(UserDao.getDefaultRights(), cfg.username, cfg.password, "lastname"
+ , "firstname", cfg.email, new Date() /* age/birthday */, "street", "no", "fax", "zip", 1
+ , "town", default_lang_id, false /* sendWelcomeMessage */
+ , Arrays.asList(org.getOrganisation_id()), "phone", false, false, timezoneUtil.getTimeZone(cfg.ical_timeZone),
+ false /* forceTimeZoneCheck */, "" /* userOffers */, "" /* userSearchs */, false /* showContactData */,
+ true /* showContactDataToContacts */, null);
log.debug("Installation - User Added user-Id " + user_id);
if (user_id < 0) {
- throw new Exception(
- "Could not add user user returns a negative error message: "
- + user_id);
+ throw new Exception("Could not add user user returns a negative error message: " + user_id);
}
}
@@ -753,12 +744,9 @@ public class ImportInitvalues {
public void loadInitAppointmentReminderTypes() {
log.debug("ImportInitValues.loadInitAppointmentReminderTypes");
- appointmentReminderTypDaoImpl.addAppointmentReminderTyps(-1L,
- "do not send notification", 1568);
- appointmentReminderTypDaoImpl.addAppointmentReminderTyps(-1L,
- "simple email", 1569);
- appointmentReminderTypDaoImpl.addAppointmentReminderTyps(-1L,
- "iCal email", 1570);
+ appointmentReminderTypDaoImpl.addAppointmentReminderTyps(-1L, "do not send notification", 1568);
+ appointmentReminderTypDaoImpl.addAppointmentReminderTyps(-1L, "simple email", 1569);
+ appointmentReminderTypDaoImpl.addAppointmentReminderTyps(-1L, "iCal email", 1570);
}
public void loadLanguagesFile(int langId) throws Exception {
@@ -768,6 +756,7 @@ public class ImportInitvalues {
public void loadLanguagesFile(String langName) throws Exception {
Map<Integer, Map<String, Object>> listlanguages = getLanguageFiles();
+ log.debug("Number of languages found: " + listlanguages.size());
for (int langId : listlanguages.keySet()) {
Map<String, Object> langMap = listlanguages.get(langId);
if (langName.equals(langMap.get("name"))) {
@@ -955,8 +944,6 @@ public class ImportInitvalues {
log.debug("System contains users, no need to install data one more time.");
}
sipDao.delete();
- progress = 3;
- loadUserLevels();
progress = 6;
loadMainMenu();
progress = 9;
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/conference/RoomManager.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/conference/RoomManager.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/conference/RoomManager.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/conference/RoomManager.java Tue Jun 10 15:46:38 2014
@@ -48,9 +48,6 @@ import org.apache.openmeetings.db.dto.ba
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.room.RoomModerator;
import org.apache.openmeetings.db.entity.room.RoomOrganisation;
-import org.apache.openmeetings.db.entity.user.Organisation_Users;
-import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.AuthLevelUtil;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -86,43 +83,6 @@ public class RoomManager implements IRoo
private RoomTypeDao roomTypeDao;
/**
- * get a room object if user level
- *
- * @param user_level
- * @param rooms_id
- * @return
- */
- public Room getRoomById(long user_level, long rooms_id) {
- try {
- if (AuthLevelUtil.checkUserLevel(user_level)) {
- return roomDao.get(rooms_id);
- } else
- log.error("getRoombyId : Userlevel" + user_level
- + " not allowed");
- } catch (Exception ex2) {
- log.error("[getRoomById] ", ex2);
- }
- return null;
- }
-
- public Room getRoomWithCurrentUsersById(long user_level, long rooms_id) {
- try {
- if (AuthLevelUtil.checkUserLevel(user_level)) {
- Room room = roomDao.get(rooms_id);
-
- if (room != null) {
- room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
-
- return room;
- }
- }
- } catch (Exception ex2) {
- log.error("[getRoomWithCurrentUsersById] ", ex2);
- }
- return null;
- }
-
- /**
* Get a Rooms-Object or NULL
*
* @param externalRoomId
@@ -150,99 +110,67 @@ public class RoomManager implements IRoo
return null;
}
- public Room getRoomByExternalId(long user_level, Long externalRoomId,
- String externalRoomType, long roomtypes_id) {
+ public SearchResult<Room> getRooms(int start, int max, String orderby, boolean asc, String search) {
try {
- if (AuthLevelUtil.checkUserLevel(user_level)) {
- return this.getRoomByExternalId(externalRoomId,
- externalRoomType, roomtypes_id);
- } else
- log.error("getRoombyExternalId : Userlevel" + user_level
- + " not allowed");
- } catch (Exception ex2) {
- log.error("[getRoomByExternalId] ", ex2);
- }
- return null;
- }
-
- public SearchResult<Room> getRooms(long user_level, int start, int max,
- String orderby, boolean asc, String search) {
- try {
- if (AuthLevelUtil.checkAdminLevel(user_level)) {
- SearchResult<Room> sResult = new SearchResult<Room>();
- sResult.setRecords(this.selectMaxFromRooms(search));
- sResult.setObjectName(Room.class.getName());
- sResult.setResult(this.getRoomsInternatlByHQL(start, max,
- orderby, asc, search));
- return sResult;
- }
+ SearchResult<Room> sResult = new SearchResult<Room>();
+ sResult.setRecords(this.selectMaxFromRooms(search));
+ sResult.setObjectName(Room.class.getName());
+ sResult.setResult(this.getRoomsInternatlByHQL(start, max,
+ orderby, asc, search));
+ return sResult;
} catch (Exception ex2) {
log.error("[getRooms] ", ex2);
}
return null;
}
- public SearchResult<Room> getRoomsWithCurrentUsers(long user_level, int start,
- int max, String orderby, boolean asc) {
+ public SearchResult<Room> getRoomsWithCurrentUsers(int start, int max, String orderby, boolean asc) {
try {
- if (AuthLevelUtil.checkAdminLevel(user_level)) {
- SearchResult<Room> sResult = new SearchResult<Room>();
- sResult.setRecords(this.selectMaxFromRooms(""));
- sResult.setObjectName(Room.class.getName());
+ SearchResult<Room> sResult = new SearchResult<Room>();
+ sResult.setRecords(this.selectMaxFromRooms(""));
+ sResult.setObjectName(Room.class.getName());
- List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
- asc);
-
- for (Room room : rooms) {
- room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
- }
+ List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
+ asc);
- sResult.setResult(rooms);
- return sResult;
+ for (Room room : rooms) {
+ room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
}
+
+ sResult.setResult(rooms);
+ return sResult;
} catch (Exception ex2) {
log.error("[getRooms] ", ex2);
}
return null;
}
- public List<Room> getRoomsWithCurrentUsersByList(long user_level,
- int start, int max, String orderby, boolean asc) {
+ public List<Room> getRoomsWithCurrentUsersByList(int start, int max, String orderby, boolean asc) {
try {
- if (AuthLevelUtil.checkAdminLevel(user_level)) {
-
- List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
- asc);
-
- for (Room room : rooms) {
- room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
- }
-
- return rooms;
+ List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
+ asc);
+ for (Room room : rooms) {
+ room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
}
+
+ return rooms;
} catch (Exception ex2) {
log.error("[getRooms] ", ex2);
}
return null;
}
- public List<Room> getRoomsWithCurrentUsersByListAndType(long user_level,
- int start, int max, String orderby, boolean asc,
- String externalRoomType) {
+ public List<Room> getRoomsWithCurrentUsersByListAndType(int start, int max, String orderby, boolean asc, String externalRoomType) {
try {
- if (AuthLevelUtil.checkAdminLevel(user_level)) {
-
- List<Room> rooms = this.getRoomsInternatlbyType(start, max,
- orderby, asc, externalRoomType);
-
- for (Room room : rooms) {
- room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
- }
-
- return rooms;
+ List<Room> rooms = this.getRoomsInternatlbyType(start, max,
+ orderby, asc, externalRoomType);
+ for (Room room : rooms) {
+ room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
}
+
+ return rooms;
} catch (Exception ex2) {
log.error("[getRooms] ", ex2);
}
@@ -390,45 +318,19 @@ public class RoomManager implements IRoo
return null;
}
- public List<RoomOrganisation> getOrganisationsByRoom(long user_level,
- long rooms_id) {
+ public List<RoomOrganisation> getOrganisationsByRoom(long rooms_id) {
try {
- if (AuthLevelUtil.checkUserLevel(user_level)) {
- String hql = "select c from RoomOrganisation as c "
- + "where c.room.rooms_id = :rooms_id "
- + "AND c.deleted <> :deleted";
- TypedQuery<RoomOrganisation> q = em.createQuery(hql, RoomOrganisation.class);
-
- q.setParameter("rooms_id", rooms_id);
- q.setParameter("deleted", true);
- List<RoomOrganisation> ll = q.getResultList();
- return ll;
- }
- } catch (Exception ex2) {
- log.error("[getOrganisationsByRoom] ", ex2);
- }
- return null;
- }
+ String hql = "select c from RoomOrganisation as c "
+ + "where c.room.rooms_id = :rooms_id "
+ + "AND c.deleted <> :deleted";
+ TypedQuery<RoomOrganisation> q = em.createQuery(hql, RoomOrganisation.class);
- /**
- * get all rooms which are availible for public
- *
- * @param user_level
- * @param roomtypes_id
- * @return
- */
- public List<Room> getPublicRooms(long user_level, long roomtypes_id) {
- try {
- if (AuthLevelUtil.checkUserLevel(user_level)) {
- TypedQuery<Room> q = em.createNamedQuery("getPublicRooms", Room.class);
- q.setParameter("ispublic", true);
- q.setParameter("deleted", false);
- q.setParameter("roomtypes_id", new Long(roomtypes_id));
- List<Room> ll = q.getResultList();
- return ll;
- }
+ q.setParameter("rooms_id", rooms_id);
+ q.setParameter("deleted", true);
+ List<RoomOrganisation> ll = q.getResultList();
+ return ll;
} catch (Exception ex2) {
- log.error("[getRoomsByOrganisation] ", ex2);
+ log.error("[getOrganisationsByRoom] ", ex2);
}
return null;
}
@@ -466,43 +368,6 @@ public class RoomManager implements IRoo
return null;
}
- public List<Room> getPublicRoomsWithoutType(long user_level) {
- try {
- if (AuthLevelUtil.checkUserLevel(user_level)) {
- TypedQuery<Room> q = em.createNamedQuery("getPublicRoomsWithoutType", Room.class);
- q.setParameter("ispublic", true);
- q.setParameter("deleted", true);
- List<Room> ll = q.getResultList();
- return ll;
- }
- } catch (Exception ex2) {
- log.error("[getPublicRoomsWithoutType] ", ex2);
- ex2.printStackTrace();
- }
- return null;
- }
-
- /**
- * Get Appointed Meetings
- */
- // ---------------------------------------------------------------------------------------------
- public List<Room> getAppointedMeetings(Long userid, Long user_level) {
- log.debug("Roommanagement.getAppointedMeetings");
-
- try {
- if (AuthLevelUtil.checkUserLevel(user_level)) {
- TypedQuery<Room> q = em.createNamedQuery("getAppointedMeetings", Room.class);
- q.setParameter("appointed", true);
- q.setParameter("deleted", false);
- return q.getResultList();
- }
- } catch (Exception ex2) {
- log.error("[getAppointedMeetings] ", ex2);
- }
- return null;
-
- }
-
// ---------------------------------------------------------------------------------------------
/**
@@ -546,7 +411,7 @@ public class RoomManager implements IRoo
* @param hideWhiteboard TODO
* @return id of the newly created room or NULL
*/
- public Long addRoom(long user_level, String name, long roomtypes_id,
+ public Long addRoom(String name, long roomtypes_id,
String comment, Long numberOfPartizipants, boolean ispublic,
List<Integer> organisations, Boolean appointment, Boolean isDemoRoom,
Integer demoTime, Boolean isModeratedRoom,
@@ -560,112 +425,64 @@ public class RoomManager implements IRoo
, boolean filesOpened, boolean autoVideoSelect, boolean sipEnabled) {
try {
- if (AuthLevelUtil.checkAdminLevel(user_level)) {
-
- Room r = new Room();
- r.setName(name);
- r.setComment(comment);
- r.setStarttime(new Date());
- r.setNumberOfPartizipants(numberOfPartizipants);
- r.setRoomtype(roomTypeDao.get(roomtypes_id));
- r.setIspublic(ispublic);
- r.setAllowUserQuestions(allowUserQuestions);
- r.setIsAudioOnly(isAudioOnly);
- r.setAllowFontStyles(allowFontStyles);
-
- r.setAppointment(appointment);
+ Room r = new Room();
+ r.setName(name);
+ r.setComment(comment);
+ r.setStarttime(new Date());
+ r.setNumberOfPartizipants(numberOfPartizipants);
+ r.setRoomtype(roomTypeDao.get(roomtypes_id));
+ r.setIspublic(ispublic);
+ r.setAllowUserQuestions(allowUserQuestions);
+ r.setIsAudioOnly(isAudioOnly);
+ r.setAllowFontStyles(allowFontStyles);
- r.setIsDemoRoom(isDemoRoom);
- r.setDemoTime(demoTime);
+ r.setAppointment(appointment);
- r.setIsModeratedRoom(isModeratedRoom);
- r.setHideTopBar(hideTopBar);
+ r.setIsDemoRoom(isDemoRoom);
+ r.setDemoTime(demoTime);
- r.setDeleted(false);
+ r.setIsModeratedRoom(isModeratedRoom);
+ r.setHideTopBar(hideTopBar);
- r.setIsClosed(isClosed);
- r.setRedirectURL(redirectURL);
+ r.setDeleted(false);
- r.setOwnerId(ownerId);
+ r.setIsClosed(isClosed);
+ r.setRedirectURL(redirectURL);
- r.setWaitForRecording(waitForRecording);
- r.setAllowRecording(allowRecording);
-
- r.setHideChat(hideChat);
- r.setHideActivitiesAndActions(hideActivitiesAndActions);
- r.setHideActionsMenu(hideActionsMenu);
- r.setHideFilesExplorer(hideFilesExplorer);
- r.setHideScreenSharing(hideScreenSharing);
- r.setHideWhiteboard(hideWhiteboard);
- r.setShowMicrophoneStatus(showMicrophoneStatus);
- r.setChatModerated(chatModerated);
- r.setChatOpened(chatOpened);
- r.setFilesOpened(filesOpened);
- r.setAutoVideoSelect(autoVideoSelect);
- r.setSipEnabled(sipEnabled);
- r.setPin(conferencePin);
-
- r = roomDao.update(r, ownerId);
+ r.setOwnerId(ownerId);
- if (organisations != null) {
- Long t = this.updateRoomOrganisations(organisations, r);
- if (t == null) {
- return null;
- }
- }
+ r.setWaitForRecording(waitForRecording);
+ r.setAllowRecording(allowRecording);
+
+ r.setHideChat(hideChat);
+ r.setHideActivitiesAndActions(hideActivitiesAndActions);
+ r.setHideActionsMenu(hideActionsMenu);
+ r.setHideFilesExplorer(hideFilesExplorer);
+ r.setHideScreenSharing(hideScreenSharing);
+ r.setHideWhiteboard(hideWhiteboard);
+ r.setShowMicrophoneStatus(showMicrophoneStatus);
+ r.setChatModerated(chatModerated);
+ r.setChatOpened(chatOpened);
+ r.setFilesOpened(filesOpened);
+ r.setAutoVideoSelect(autoVideoSelect);
+ r.setSipEnabled(sipEnabled);
+ r.setPin(conferencePin);
+
+ r = roomDao.update(r, ownerId);
- if (roomModerators != null) {
- r.setModerators(getModerators(roomModerators, r.getRooms_id()));
- r = roomDao.update(r, ownerId);
+ if (organisations != null) {
+ Long t = this.updateRoomOrganisations(organisations, r);
+ if (t == null) {
+ return null;
}
-
- return r.getRooms_id();
}
- } catch (Exception ex2) {
- log.error("[addRoom] ", ex2);
- }
- return null;
- }
-
- public Long addRoomByMod(long user_level, String name, long roomtypes_id,
- String comment, Long numberOfPartizipants, boolean ispublic,
- Long organisation_id, Boolean appointment, Boolean isDemoRoom,
- Integer demoTime, Boolean isModeratedRoom,
- List<Map<String, Object>> roomModerators, Boolean allowUserQuestions) {
-
- log.debug("addRoom");
-
- try {
- if (AuthLevelUtil.checkModLevel(user_level)) {
- Room r = new Room();
- r.setName(name);
- r.setComment(comment);
- r.setStarttime(new Date());
- r.setNumberOfPartizipants(numberOfPartizipants);
- r.setRoomtype(roomTypeDao.get(roomtypes_id));
- r.setIspublic(ispublic);
-
- r.setAllowUserQuestions(allowUserQuestions);
- r.setAppointment(appointment);
- r.setIsDemoRoom(isDemoRoom);
- r.setDemoTime(demoTime);
-
- r.setIsModeratedRoom(isModeratedRoom);
-
- r.setDeleted(false);
- r = em.merge(r);
- long returnId = r.getRooms_id();
-
- this.addRoomToOrganisation(3, returnId, organisation_id);
-
- if (roomModerators != null) {
- r.setModerators(getModerators(roomModerators, r.getRooms_id()));
- r = roomDao.update(r, null);
- }
-
- return returnId;
+ if (roomModerators != null) {
+ r.setModerators(getModerators(roomModerators, r.getRooms_id()));
+ r = roomDao.update(r, ownerId);
}
+
+ return r.getRooms_id();
} catch (Exception ex2) {
log.error("[addRoom] ", ex2);
}
@@ -754,22 +571,20 @@ public class RoomManager implements IRoo
* @param organisation_id
* @return the id of the newly created Rooms_Organisation or NULL
*/
- public Long addRoomToOrganisation(long user_level, long rooms_id,
+ public Long addRoomToOrganisation(long rooms_id,
long organisation_id) {
try {
- if (AuthLevelUtil.checkAdminLevel(user_level)) {
- RoomOrganisation rOrganisation = new RoomOrganisation();
- rOrganisation.setRoom(roomDao.get(rooms_id));
- log.debug("addRoomToOrganisation rooms '"
- + rOrganisation.getRoom().getName() + "'");
- rOrganisation.setStarttime(new Date());
- rOrganisation.setOrganisation(orgDao.get(organisation_id));
- rOrganisation.setDeleted(false);
-
- rOrganisation = em.merge(rOrganisation);
- long returnId = rOrganisation.getRooms_organisation_id();
- return returnId;
- }
+ RoomOrganisation rOrganisation = new RoomOrganisation();
+ rOrganisation.setRoom(roomDao.get(rooms_id));
+ log.debug("addRoomToOrganisation rooms '"
+ + rOrganisation.getRoom().getName() + "'");
+ rOrganisation.setStarttime(new Date());
+ rOrganisation.setOrganisation(orgDao.get(organisation_id));
+ rOrganisation.setDeleted(false);
+
+ rOrganisation = em.merge(rOrganisation);
+ long returnId = rOrganisation.getRooms_organisation_id();
+ return returnId;
} catch (Exception ex2) {
log.error("[addRoomToOrganisation] ", ex2);
}
@@ -811,19 +626,14 @@ public class RoomManager implements IRoo
* @param roomtypes_id
* @return
*/
- public List<RoomOrganisation> getRoomsOrganisationByOrganisationIdAndRoomType(
- long user_level, long organisation_id, long roomtypes_id) {
+ public List<RoomOrganisation> getRoomsOrganisationByOrganisationIdAndRoomType(long organisation_id, long roomtypes_id) {
try {
- if (AuthLevelUtil.checkUserLevel(user_level)) {
- TypedQuery<RoomOrganisation> q = em.
- createNamedQuery("getRoomsOrganisationByOrganisationIdAndRoomType", RoomOrganisation.class);
- q.setParameter("roomtypes_id", roomtypes_id);
- q.setParameter("organisation_id", organisation_id);
- q.setParameter("deleted", true);
- return q.getResultList();
- } else {
- log.error("[notauthentificated] " + user_level);
- }
+ TypedQuery<RoomOrganisation> q = em.
+ createNamedQuery("getRoomsOrganisationByOrganisationIdAndRoomType", RoomOrganisation.class);
+ q.setParameter("roomtypes_id", roomtypes_id);
+ q.setParameter("organisation_id", organisation_id);
+ q.setParameter("deleted", true);
+ return q.getResultList();
} catch (Exception ex2) {
log.error("[getRoomsByOrganisation] ", ex2);
}
@@ -836,23 +646,17 @@ public class RoomManager implements IRoo
* @param organisation_id
* @return list of Rooms_Organisation with Rooms as Sub-Objects or null
*/
- public List<RoomOrganisation> getRoomsOrganisationByOrganisationId(
- long user_level, long organisation_id) {
+ public List<RoomOrganisation> getRoomsOrganisationByOrganisationId(long organisation_id) {
try {
- if (AuthLevelUtil.checkUserLevel(user_level)) {
-
- TypedQuery<RoomOrganisation> query = em.
- createNamedQuery("getRoomsOrganisationByOrganisationId", RoomOrganisation.class);
+ TypedQuery<RoomOrganisation> query = em.
+ createNamedQuery("getRoomsOrganisationByOrganisationId", RoomOrganisation.class);
- query.setParameter("organisation_id", organisation_id);
- query.setParameter("deleted", true);
+ query.setParameter("organisation_id", organisation_id);
+ query.setParameter("deleted", true);
- List<RoomOrganisation> ll = query.getResultList();
+ List<RoomOrganisation> ll = query.getResultList();
- return ll;
- } else {
- log.error("[notauthentificated] " + user_level);
- }
+ return ll;
} catch (Exception ex2) {
log.error("[getPublicRoomsWithoutType] ", ex2);
ex2.printStackTrace();
@@ -860,20 +664,15 @@ public class RoomManager implements IRoo
return null;
}
- public SearchResult<RoomOrganisation> getRoomsOrganisationByOrganisationId(long user_level,
- long organisation_id, int start, int max, String orderby,
+ public SearchResult<RoomOrganisation> getRoomsOrganisationsByOrganisationId(long organisation_id, int start, int max, String orderby,
boolean asc) {
try {
- if (AuthLevelUtil.checkModLevel(user_level)) {
-
- SearchResult<RoomOrganisation> sResult = new SearchResult<RoomOrganisation>();
- sResult.setObjectName(RoomOrganisation.class.getName());
- sResult.setRecords(this.selectMaxFromRoomsByOrganisation(
- organisation_id).longValue());
- sResult.setResult(this.getRoomsOrganisationByOrganisationId(
- organisation_id, start, max, orderby, asc));
- return sResult;
- }
+ SearchResult<RoomOrganisation> sResult = new SearchResult<RoomOrganisation>();
+ sResult.setObjectName(RoomOrganisation.class.getName());
+ sResult.setRecords(this.selectMaxFromRoomsByOrganisation(
+ organisation_id).longValue());
+ sResult.setResult(getRoomsOrganisationByOrganisationId(organisation_id, start, max, orderby, asc));
+ return sResult;
} catch (Exception ex2) {
log.error("[getRoomsByOrganisation] ", ex2);
}
@@ -975,80 +774,6 @@ public class RoomManager implements IRoo
return null;
}
- /**
- *
- * @param user_id
- * @param rooms_id
- * @return
- */
- private boolean checkUserOrgRoom(long user_id, long rooms_id) {
- try {
-
- User us = usersDao.get(user_id);
- List<Organisation_Users> s = us.getOrganisation_users();
-
- for (Iterator<Organisation_Users> it = s.iterator(); it.hasNext();) {
- Organisation_Users orgUsers = it.next();
- long organisation_id = orgUsers.getOrganisation()
- .getOrganisation_id();
- List<RoomOrganisation> ll = this
- .getRoomsOrganisationByOrganisationId(3,
- organisation_id);
- for (Iterator<RoomOrganisation> it2 = ll.iterator(); it2
- .hasNext();) {
- RoomOrganisation roomOrg = it2.next();
- if (roomOrg.getRoom().getRooms_id() == rooms_id) {
- return true;
- }
- }
- }
-
- } catch (Exception ex2) {
- log.error("[checkUserOrgRoom] ", ex2);
- }
- return false;
- }
-
- /**
- *
- * @param user_id
- * @param user_level
- * @param rooms_id
- * @param roomtypes_id
- * @param name
- * @param ispublic
- * @param comment
- * @return
- */
- public Room updateRoomsSelf(long user_id, long user_level, long rooms_id,
- long roomtypes_id, String name, boolean ispublic, String comment) {
- try {
- if (AuthLevelUtil.checkModLevel(user_level)) {
-
- if (this.checkUserOrgRoom(user_id, rooms_id)) {
-
- Room r = roomDao.get(rooms_id);
- r.setComment(comment);
- r.setIspublic(ispublic);
- r.setName(name);
- r.setRoomtype(roomTypeDao.get(roomtypes_id));
- r.setUpdatetime(new Date());
-
- if (r.getRooms_id() == null) {
- em.persist(r);
- } else {
- if (!em.contains(r)) {
- em.merge(r);
- }
- }
- }
- }
- } catch (Exception ex2) {
- log.error("[updateRoom] ", ex2);
- }
- return null;
- }
-
public Long updateRoomInternal(long rooms_id, long roomtypes_id,
String name, boolean ispublic, String comment,
Long numberOfPartizipants, List<Integer> organisations,
@@ -1123,56 +848,6 @@ public class RoomManager implements IRoo
return null;
}
- public Long updateRoomByMod(long user_level, long rooms_id,
- long roomtypes_id, String name, boolean ispublic, String comment,
- Long numberOfPartizipants, Long organisations, Boolean appointment,
- Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
- List<Map<String, Object>> roomModerators, Boolean allowUserQuestions) {
- try {
- log.debug("*** updateRoom numberOfPartizipants: "
- + numberOfPartizipants);
- if (AuthLevelUtil.checkModLevel(user_level)) {
- Room r = roomDao.get(rooms_id);
- r.setComment(comment);
-
- r.setIspublic(ispublic);
- r.setNumberOfPartizipants(numberOfPartizipants);
- r.setName(name);
- r.setRoomtype(roomTypeDao.get(roomtypes_id));
- r.setUpdatetime(new Date());
- r.setAllowUserQuestions(allowUserQuestions);
-
- r.setIsDemoRoom(isDemoRoom);
- r.setDemoTime(demoTime);
-
- r.setAppointment(appointment);
-
- r.setIsModeratedRoom(isModeratedRoom);
-
- if (r.getRooms_id() == null) {
- em.persist(r);
- } else {
- if (!em.contains(r)) {
- r = em.merge(r);
- }
- }
-
- // FIXME: Organizations will not be changed when you do an
- // update as Moderator
-
- if (roomModerators != null) {
- r.setModerators(getModerators(roomModerators, r.getRooms_id()));
- r = roomDao.update(r, null);
- }
-
- return r.getRooms_id();
- }
- } catch (Exception ex2) {
- log.error("[updateRoom] ", ex2);
- }
- return null;
- }
-
@SuppressWarnings("rawtypes")
private boolean checkRoomAlreadyInOrg(Long orgid, List organisations)
throws Exception {
@@ -1195,10 +870,8 @@ public class RoomManager implements IRoo
return false;
}
- private Long updateRoomOrganisations(List<Integer> organisations, Room room)
- throws Exception {
- List<RoomOrganisation> roomOrganisations = this.getOrganisationsByRoom(3,
- room.getRooms_id());
+ private Long updateRoomOrganisations(List<Integer> organisations, Room room) throws Exception {
+ List<RoomOrganisation> roomOrganisations = getOrganisationsByRoom(room.getRooms_id());
List<Long> roomsToAdd = new LinkedList<Long>();
List<Long> roomsToDel = new LinkedList<Long>();
@@ -1223,12 +896,11 @@ public class RoomManager implements IRoo
for (Iterator<Long> it = roomsToAdd.iterator(); it.hasNext();) {
Long orgIdToAdd = it.next();
- this.addRoomToOrganisation(3, room.getRooms_id(), orgIdToAdd);
+ addRoomToOrganisation(room.getRooms_id(), orgIdToAdd);
}
for (Iterator<Long> it = roomsToDel.iterator(); it.hasNext();) {
Long orgToDel = it.next();
- this.deleteRoomFromOrganisationByRoomAndOrganisation(
- room.getRooms_id(), orgToDel);
+ deleteRoomFromOrganisationByRoomAndOrganisation(room.getRooms_id(), orgToDel);
}
return new Long(1);
@@ -1239,13 +911,11 @@ public class RoomManager implements IRoo
*
* @param rooms_id
*/
- public Long deleteRoomById(long user_level, long rooms_id) {
+ public Long deleteRoomById(long rooms_id) {
try {
- if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
- this.deleteAllRoomsOrganisationOfRoom(rooms_id);
- roomDao.delete(roomDao.get(rooms_id), -1L);
- return rooms_id;
- }
+ deleteAllRoomsOrganisationOfRoom(rooms_id);
+ roomDao.delete(roomDao.get(rooms_id), -1L);
+ return rooms_id;
} catch (Exception ex2) {
log.error("[deleteRoomById] ", ex2);
}
@@ -1275,13 +945,9 @@ public class RoomManager implements IRoo
*
* @param organisation_id
*/
- @SuppressWarnings("rawtypes")
public void deleteAllRoomsOrganisationOfOrganisation(long organisation_id) {
try {
- List ll = this.getRoomsOrganisationByOrganisationId(3,
- organisation_id);
- for (Iterator it = ll.iterator(); it.hasNext();) {
- RoomOrganisation rOrg = (RoomOrganisation) it.next();
+ for (RoomOrganisation rOrg : getRoomsOrganisationByOrganisationId(organisation_id)) {
this.deleteRoomsOrganisation(rOrg);
}
} catch (Exception ex2) {
@@ -1385,7 +1051,7 @@ public class RoomManager implements IRoo
} else {
log.debug("Could not find room " + ownerId + " || " + roomtypesId);
- Long rooms_id = this.addRoom(3L, roomName, roomtypesId,
+ Long rooms_id = addRoom(roomName, roomtypesId,
"My Rooms of ownerId " + ownerId,
(roomtypesId == 1) ? 25L : 150L, // numberOfPartizipants
false, // ispublic
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java Tue Jun 10 15:46:38 2014
@@ -22,15 +22,16 @@ import static org.apache.openmeetings.db
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SOAP_REGISTER_KEY;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import java.util.TimeZone;
import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
@@ -49,18 +50,16 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.Address;
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.apache.openmeetings.db.entity.user.Userdata;
-import org.apache.openmeetings.db.entity.user.Userlevel;
import org.apache.openmeetings.db.util.TimezoneUtil;
import org.apache.openmeetings.mail.MailHandler;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
-import org.apache.openmeetings.remote.util.SessionVariablesUtil;
import org.apache.openmeetings.util.AuthLevelUtil;
import org.apache.openmeetings.util.CalendarPatterns;
import org.apache.openmeetings.util.DaoHelper;
import org.apache.openmeetings.util.crypt.ManageCryptStyle;
import org.red5.logging.Red5LoggerFactory;
-import org.red5.server.api.IClient;
import org.red5.server.api.scope.IScope;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -144,78 +143,6 @@ public class UserManager implements IUse
return null;
}
- /**
- * login logic
- *
- * @param SID
- * @param Username
- * @param Userpass
- * @return
- */
- public Object loginUser(String SID, String userOrEmail, String userpass,
- Client currentClient, IClient client, Boolean storePermanent) {
- try {
- log.debug("Login user SID : " + SID + " Stored Permanent: " + storePermanent);
- String hql = "SELECT c from User AS c "
- + "WHERE "
- + "(c.login LIKE :userOrEmail OR c.adresses.email LIKE :userOrEmail ) "
- + "AND c.deleted <> :deleted";
-
- TypedQuery<User> query = em.createQuery(hql, User.class);
- query.setParameter("userOrEmail", userOrEmail);
- query.setParameter("deleted", true);
-
- List<User> ll = query.getResultList();
-
- log.debug("debug SIZE: " + ll.size());
-
- if (ll.size() == 0) {
- return new Long(-10);
- } else {
- User users = ll.get(0);
-
- if (usersDao.verifyPassword(users.getUser_id(), userpass)) {
- Boolean bool = sessiondataDao.updateUser(SID, users.getUser_id(), storePermanent, users.getLanguage_id());
- if (bool == null) {
- // Exception
- return new Long(-1);
- } else if (!bool) {
- // invalid Session-Object
- return new Long(-35);
- }
-
- // Check if activated
- if (users.getStatus() != null && users.getStatus().equals(0)) {
- return -41L;
- }
-
- users.setUserlevel(getUserLevel(users.getLevel_id()));
- updateLastLogin(users);
- // If invoked via SOAP this is NULL
- if (currentClient != null) {
- currentClient.setUser_id(users.getUser_id());
- SessionVariablesUtil.setUserId(client, users.getUser_id());
- }
-
- log.debug("loginUser " + users.getOrganisation_users());
- if (!users.getOrganisation_users().isEmpty()) {
- log.debug("loginUser size " + users.getOrganisation_users().size());
- } else {
- throw new Exception("No Organization assigned to user");
- }
-
- return users;
- } else {
- return new Long(-11);
- }
- }
-
- } catch (Exception ex2) {
- log.error("[loginUser]: ", ex2);
- }
- return new Long(-1);
- }
-
public User loginUserByRemoteHash(String SID, String remoteHash) {
try {
@@ -242,21 +169,6 @@ public class UserManager implements IUse
return new Long(-12);
}
- private void updateLastLogin(User us) {
- try {
- us.setLastlogin(new Date());
- if (us.getUser_id() == null) {
- em.persist(us);
- } else {
- if (!em.contains(us)) {
- em.merge(us);
- }
- }
- } catch (Exception ex2) {
- log.error("updateLastLogin", ex2);
- }
- }
-
public List<Userdata> getUserdataDashBoard(Long user_id) {
if (user_id.longValue() > 0) {
try {
@@ -353,114 +265,6 @@ public class UserManager implements IUse
return ret;
}
- private Userlevel getUserLevel(Long level_id) {
- Userlevel userlevel = new Userlevel();
- try {
- TypedQuery<Userlevel> query = em
- .createQuery("select c from Userlevel as c where c.level_id = :level_id AND c.deleted <> :deleted", Userlevel.class);
- query.setParameter("level_id", level_id.longValue());
- query.setParameter("deleted", true);
- for(Iterator<Userlevel> it2 = query.getResultList().iterator(); it2
- .hasNext();) {
- userlevel = it2.next();
- }
- } catch (Exception ex2) {
- log.error("[getUserLevel]", ex2);
- }
- return userlevel;
- }
-
- /**
- * get user-role 1 - user 2 - moderator 3 - admin
- *
- * @param user_id
- * @return
- */
- public Long getUserLevelByID(Long user_id) {
-
- try {
- if (user_id == null) {
- return 0L;
- }
- // For direct access of linked users
- if (user_id < 0) {
- return 1L;
- }
-
- TypedQuery<User> query = em
- .createQuery("select c from User as c where c.user_id = :user_id AND c.deleted <> true", User.class);
- query.setParameter("user_id", user_id);
- User us = null;
- try {
- us = query.getSingleResult();
- } catch (NoResultException e) {
- // u=null}
- }
-
- if (us != null) {
- return us.getLevel_id();
- } else {
- return -1L;
- }
- } catch (Exception ex2) {
- log.error("[getUserLevelByID]", ex2);
- }
- return null;
- }
-
- public Long getUserLevelByIdAndOrg(Long user_id, Long organisation_id) {
-
- try {
- if (user_id == null)
- return new Long(0);
- // For direct access of linked users
- if (user_id == -1) {
- return new Long(1);
- }
-
- TypedQuery<User> query = em
- .createQuery("select c from User as c where c.user_id = :user_id AND c.deleted <> true", User.class);
- query.setParameter("user_id", user_id);
- User us = null;
- try {
- us = query.getSingleResult();
- } catch (NoResultException e) {
- // u=null}
- }
-
- if (us != null) {
-
- if (us.getLevel_id() > 2) {
- return us.getLevel_id();
- } else {
-
- log.debug("user_id, organisation_id" + user_id + ", "
- + organisation_id);
-
- Organisation_Users ou = orgUserDao.getByOrganizationAndUser(organisation_id, user_id);
-
- log.debug("ou: " + ou);
-
- if (ou != null) {
- if (ou.getIsModerator() != null && ou.getIsModerator()) {
- return 2L;
- } else {
- return us.getLevel_id();
- }
- } else {
- return us.getLevel_id();
- }
- }
-
- } else {
- return -1L;
- }
- } catch (Exception ex2) {
- log.error("[getUserLevelByID]", ex2);
- }
- return null;
- }
-
/**
* Method to register a new User, User will automatically be added to the
* default user_level(1) new users will be automatically added to the
@@ -523,12 +327,11 @@ public class UserManager implements IUse
// TODO: Read and generate SIP-Data via RPC-Interface Issue 1098
- Long user_id = this.registerUserInit(3, 1, 0, 1, login,
+ Long user_id = registerUserInit(UserDao.getDefaultRights(), login,
Userpass, lastname, firstname, email, age, street,
additionalname, fax, zip, states_id, town, language_id,
- true, Arrays.asList(configurationDao.getConfValue(
- "default_domain_id", Long.class, null)), phone,
- sendSMS, sendConfirmation, jNameTimeZone, false, "", "", false, true);
+ true, Arrays.asList(configurationDao.getConfValue("default_domain_id", Long.class, null)), phone,
+ sendSMS, sendConfirmation, timezoneUtil.getTimeZone(jNameTimeZone), false, "", "", false, true, null);
if (user_id > 0 && sendConfirmation) {
return new Long(-40);
@@ -543,52 +346,6 @@ public class UserManager implements IUse
}
/**
- * Adds a user including his adress-data,auth-date,mail-data
- *
- * @param user_level
- * @param level_id
- * @param availible
- * @param status
- * @param login
- * @param password
- * @param lastname
- * @param firstname
- * @param email
- * @param age
- * @param street
- * @param additionalname
- * @param fax
- * @param zip
- * @param states_id
- * @param town
- * @param language_id
- * @param phone
- * @return new users_id OR null if an exception, -1 if an error, -4 if mail
- * already taken, -5 if username already taken, -3 if login or pass
- * or mail is empty
- */
- public Long registerUserInit(long user_level, long level_id, int availible,
- int status, String login, String password, String lastname,
- String firstname, String email, Date age, String street,
- String additionalname, String fax, String zip, long states_id,
- String town, long language_id, boolean sendWelcomeMessage,
- List<Long> organisations, String phone, boolean sendSMS,
- Boolean sendConfirmation, String iCalTz, Boolean forceTimeZoneCheck,
- String userOffers, String userSearchs, Boolean showContactData,
- Boolean showContactDataToContacts) throws Exception {
- return registerUserInit(user_level, level_id, availible,
- status, login, password, lastname,
- firstname, email, age, street,
- additionalname, fax, zip, states_id,
- town, language_id, sendWelcomeMessage,
- organisations, phone, sendSMS, sendConfirmation,
- timezoneUtil.getTimeZone(iCalTz),
- forceTimeZoneCheck,
- userOffers, userSearchs, showContactData,
- showContactDataToContacts, null);
- }
-
- /**
* @param user_level
* @param level_id
* @param availible
@@ -622,8 +379,7 @@ public class UserManager implements IUse
* or mail is empty
* @throws Exception
*/
- public Long registerUserInit(long user_level, long level_id, int availible,
- int status, String login, String password, String lastname,
+ public Long registerUserInit(Set<Right> rights, String login, String password, String lastname,
String firstname, String email, Date age, String street,
String additionalname, String fax, String zip, long states_id,
String town, long language_id, boolean sendWelcomeMessage,
@@ -632,217 +388,68 @@ public class UserManager implements IUse
String userOffers, String userSearchs, Boolean showContactData,
Boolean showContactDataToContacts, String activatedHash) throws Exception {
// TODO: make phone number persistent
- // User Level must be at least Admin
- // Moderators will get a temp update of there UserLevel to add Users to
- // their Group
- if (AuthLevelUtil.checkModLevel(user_level)) {
- // Check for required data
- if (login.length() >= getMinLoginLength(configurationDao)) {
- // Check for duplicates
- boolean checkName = usersDao.checkUserLogin(login, null);
- boolean checkEmail = usersDao.checkUserEMail(email, null);
- if (checkName && checkEmail) {
-
- String link = configurationDao.getBaseUrl();
- String hash = activatedHash;
- if (hash == null){
- hash = ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(login
- + CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
- }
- link += "activate?u=" + hash;
-
- if (sendWelcomeMessage && email.length() != 0) {
- String sendMail = emailManagement.sendMail(login,
- password, email, link, sendConfirmation);
- if (!sendMail.equals("success"))
- return new Long(-19);
- }
- Address adr = new Address();
- adr.setStreet(street);
- adr.setZip(zip);
- adr.setTown(town);
- adr.setStates(statemanagement.getStateById(states_id));
- adr.setAdditionalname(additionalname);
- adr.setComment("");
- adr.setFax(fax);
- adr.setPhone(phone);
- adr.setEmail(email);
-
- // If this user needs first to click his E-Mail verification
- // code then set the status to 0
- if (sendConfirmation) {
- status = 0;
- }
-
- Long user_id = addUser(level_id, availible, status,
- firstname, login, lastname, language_id, password,
- adr, sendSMS, age, hash, timezone,
- forceTimeZoneCheck, userOffers, userSearchs,
- showContactData, showContactDataToContacts, organisations);
- log.debug("Added user-Id " + user_id);
- if (user_id == null) {
- return new Long(-111);
- }
-
- /*
- * Long adress_emails_id =
- * emailManagement.registerEmail(email, address_id,""); if
- * (adress_emails_id==null) { return new Long(-112); }
- */
-
- if (adr.getAdresses_id() > 0 && user_id > 0) {
- return user_id;
- } else {
- return new Long(-16);
- }
- } else {
- if (!checkName) {
- return new Long(-15);
- } else if (!checkEmail) {
- return new Long(-17);
- }
+ // Check for required data
+ if (login.length() >= getMinLoginLength(configurationDao)) {
+ // Check for duplicates
+ boolean checkName = usersDao.checkUserLogin(login, null);
+ boolean checkEmail = usersDao.checkUserEMail(email, null);
+ if (checkName && checkEmail) {
+
+ String link = configurationDao.getBaseUrl();
+ String hash = activatedHash;
+ if (hash == null){
+ hash = ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(login
+ + CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
}
- } else {
- return new Long(-13);
- }
- }
- return new Long(-1);
- }
+ link += "activate?u=" + hash;
- /**
- * @author swagner This Methdo adds a User to the User-Table
- * @param level_id
- * The User Level, 1=User, 2=GroupAdmin/Moderator,
- * 3=SystemAdmin/Admin
- * @param availible
- * The user is activated
- * @param status
- * The user is not blocked by System admins
- * @param firstname
- * @param login
- * Username for login
- * @param lastname
- * @param language_id
- * @param Userpass
- * is MD5-crypted
- * @param Address adress
- * @return user_id or error null
- */
- public Long addUser(long level_id, int availible, int status,
- String firstname, String login, String lastname, long language_id,
- String userpass, Address adress, boolean sendSMS, Date age, String hash,
- TimeZone timezone,
- Boolean forceTimeZoneCheck, String userOffers, String userSearchs,
- Boolean showContactData, Boolean showContactDataToContacts, List<Long> orgIds) {
- try {
-
- User users = new User();
- users.setFirstname(firstname);
- users.setLogin(login);
- users.setLastname(lastname);
- users.setAge(age);
- users.setAdresses(adress);
- users.setSendSMS(sendSMS);
- users.setAvailible(availible);
- users.setLastlogin(new Date());
- users.setLasttrans(new Long(0));
- users.setLevel_id(level_id);
- users.setStatus(status);
- users.setSalutations_id(1L);
- users.setStarttime(new Date());
- users.setActivatehash(hash);
- users.setTimeZoneId(timezone.getID());
- users.setForceTimeZoneCheck(forceTimeZoneCheck);
-
- users.setUserOffers(userOffers);
- users.setUserSearchs(userSearchs);
- users.setShowContactData(showContactData);
- users.setShowContactDataToContacts(showContactDataToContacts);
-
- // this is needed cause the language is not a needed data at
- // registering
- if (language_id != 0) {
- users.setLanguage_id(language_id);
- } else {
- users.setLanguage_id(null);
- }
- users.updatePassword(configurationDao, userpass);
- users.setRegdate(new Date());
- users.setDeleted(false);
-
- //new user add organizations without checks
- if (orgIds != null) {
- List<Organisation_Users> orgList = users.getOrganisation_users();
- for (Long orgId : orgIds) {
- orgList.add(new Organisation_Users(orgDao.get(orgId)));
+ if (sendWelcomeMessage && email.length() != 0) {
+ String sendMail = emailManagement.sendMail(login,
+ password, email, link, sendConfirmation);
+ if (!sendMail.equals("success"))
+ return new Long(-19);
}
- }
- return usersDao.update(users, null).getUser_id();
+ Address adr = usersDao.getAddress(street, zip, town, states_id, additionalname, fax, phone, email);
- } catch (Exception ex2) {
- log.error("[registerUser]", ex2);
- }
- return null;
- }
+ // If this user needs first to click his E-Mail verification
+ // code then set the status to 0
+ if (sendConfirmation && rights.contains(Right.Login)) {
+ rights.remove(Right.Login);
+ }
- public Long addUserWithExternalKey(long level_id, int availible,
- int status, String firstname, String login, String lastname,
- long language_id, boolean emptyPass, String userpass, Address address, Date age,
- String hash, String externalUserId, String externalUserType,
- boolean generateSipUserData, String email, String iCalTz,
- String pictureuri) {
- try {
- User users = new User();
- users.setFirstname(firstname);
- users.setLogin(login);
- users.setLastname(lastname);
- users.setAge(age);
+ List<Organisation_Users> orgList = new ArrayList<Organisation_Users>();
+ for (Long id : organisations) {
+ orgList.add(new Organisation_Users(orgDao.get(id)));
+ }
+ User u = usersDao.addUser(rights, firstname, login, lastname, language_id,
+ password, adr, sendSMS, age, hash, timezone,
+ forceTimeZoneCheck, userOffers, userSearchs, showContactData,
+ showContactDataToContacts, null, null, orgList, null);
+ if (u == null) {
+ return -111L;
+ }
+ log.debug("Added user-Id " + u.getUser_id());
- if (address != null) {
- users.setAdresses(address);
- } else {
- users.setAdresses("", "", "", statemanagement.getStateById(1L), "", "", "", "", email);
- }
+ /*
+ * Long adress_emails_id =
+ * emailManagement.registerEmail(email, address_id,""); if
+ * (adress_emails_id==null) { return new Long(-112); }
+ */
- users.setAvailible(availible);
- users.setLastlogin(new Date());
- users.setLasttrans(new Long(0));
- users.setLevel_id(level_id);
- users.setStatus(status);
- users.setSalutations_id(1L);
- users.setStarttime(new Date());
- users.setActivatehash(hash);
- users.setPictureuri(pictureuri);
- users.setTimeZoneId(timezoneUtil.getTimeZone(iCalTz).getID());
-
- users.setExternalUserId(externalUserId);
- users.setExternalUserType(externalUserType);
-
- // this is needed cause the language is not a needed data at
- // registering
- if (language_id != 0) {
- users.setLanguage_id(new Long(language_id));
+ if (adr.getAdresses_id() > 0 && u.getUser_id() > 0) {
+ return u.getUser_id();
+ } else {
+ return -16L;
+ }
} else {
- users.setLanguage_id(null);
+ if (!checkName) {
+ return -15L;
+ } else if (!checkEmail) {
+ return -17L;
+ }
}
- users.updatePassword(configurationDao, userpass, emptyPass);
- users.setRegdate(new Date());
- users.setDeleted(false);
-
- em.persist(users);
-
- em.refresh(users);
-
- // em.flush();
-
- long user_id = users.getUser_id();
-
- return user_id;
-
- } catch (Exception ex2) {
- log.error("[addUserWithExternalKey]", ex2);
}
- return null;
+ return -1L;
}
/**
@@ -853,10 +460,9 @@ public class UserManager implements IUse
public Boolean kickUserByStreamId(String SID, Long room_id) {
try {
Long users_id = sessiondataDao.checkSession(SID);
- Long user_level = getUserLevelByID(users_id);
// admins only
- if (AuthLevelUtil.checkAdminLevel(user_level)) {
+ if (AuthLevelUtil.hasAdminLevel(usersDao.getRights(users_id))) {
sessiondataDao.clearSessionByRoomId(room_id);
@@ -891,10 +497,9 @@ public class UserManager implements IUse
public Boolean kickUserByPublicSID(String SID, String publicSID) {
try {
Long users_id = sessiondataDao.checkSession(SID);
- Long user_level = getUserLevelByID(users_id);
// admins only
- if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+ if (AuthLevelUtil.hasWebServiceLevel(usersDao.getRights(users_id))) {
Client rcl = sessionManager
.getClientByPublicSID(publicSID, false, null);
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java Tue Jun 10 15:46:38 2014
@@ -37,17 +37,15 @@ import org.apache.openmeetings.db.dao.se
import org.apache.openmeetings.db.dao.user.ILdapLoginManagement;
import org.apache.openmeetings.db.dao.user.StateDao;
import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.room.Client;
import org.apache.openmeetings.db.entity.server.LdapConfig;
import org.apache.openmeetings.db.entity.user.State;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.entity.user.User.Type;
import org.apache.openmeetings.db.util.TimezoneUtil;
import org.apache.openmeetings.ldap.config.ConfigReader;
-import org.apache.openmeetings.remote.util.SessionVariablesUtil;
+import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.util.OmFileHelper;
import org.red5.logging.Red5LoggerFactory;
-import org.red5.server.api.IClient;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -229,15 +227,14 @@ public class LdapLoginManagement impleme
*
*/
// ----------------------------------------------------------------------------------------
- public Object doLdapLogin(String user, String passwd,
- Client currentClient, IClient client, String SID, String domain) {
+ public User login(String user, String passwd, Long domainId) throws OmException {
log.debug("LdapLoginmanagement.doLdapLogin");
// Retrieve Configuration Data
HashMap<String, String> configData;
try {
- configData = getLdapConfigData(domain);
+ configData = getLdapConfigData(ldapConfigDao.get(domainId).getConfigFileName());
} catch (Exception e) {
log.error("Error on LdapAuth : " + e.getMessage());
return null;
@@ -394,8 +391,10 @@ public class LdapLoginManagement impleme
try {
if (!lAuth.authenticateUser(ldapUserDN, passwd)) {
log.error(ldapUserDN + " not authenticated.");
- return new Long(-11);
+ throw new OmException(-11L);
}
+ } catch (OmException oe) {
+ throw oe;
} catch (Exception e) {
log.error("Error on LdapAuth : " + e.getMessage());
return null;
@@ -403,8 +402,10 @@ public class LdapLoginManagement impleme
} else {
try {
if (!lAuth.authenticateUser(user, passwd)) {
- return new Long(-11);
+ throw new OmException(-11L);
}
+ } catch (OmException oe) {
+ throw oe;
} catch (Exception e) {
log.error("Error on LdapAuth : " + e.getMessage());
return null;
@@ -416,7 +417,7 @@ public class LdapLoginManagement impleme
User u = null;
try {
- u = usersDao.getUserByName(user, User.Type.ldap);
+ u = usersDao.getByName(user, User.Type.ldap);
} catch (Exception e) {
log.error("Error retrieving Userdata : " + e.getMessage());
}
@@ -459,7 +460,7 @@ public class LdapLoginManagement impleme
if (result == null || result.size() < 1) {
log.error("Error on Ldap request - no result for user " + user);
- return new Long(-10);
+ throw new OmException(-10L);
}
if (result.size() > 1) {
@@ -489,30 +490,11 @@ public class LdapLoginManagement impleme
}
log.debug("New User ID : " + userid);
- // If invoked via SOAP this is NULL
- if (currentClient != null) {
- currentClient.setUser_id(userid);
- SessionVariablesUtil.setUserId(client, userid);
- }
-
- // Update Session
- Boolean bool = sessiondataDao.updateUser(SID, userid);
-
- if (bool == null) {
- // Exception
- log.error("Error on Updating Session");
- return new Long(-1);
- } else if (!bool) {
- // invalid Session-Object
- log.error("Invalid Session Object");
- return new Long(-35);
- }
-
// Return UserObject
User u2 = usersDao.get(userid);
if (u2 == null) {
- return new Long(-1);
+ throw new OmException(-1L);
}
u2.setType(Type.ldap);
@@ -525,30 +507,12 @@ public class LdapLoginManagement impleme
return u2;
} catch (Exception e) {
log.error("Error on Working Userdata : ", e);
- return new Long(-1);
+ throw new OmException(-1L);
}
} else {
// User exists, just update necessary values
log.debug("User already exists -> Update of current passwd");
- // If invoked via SOAP this is NULL
- if (currentClient != null) {
- currentClient.setUser_id(u.getUser_id());
- }
-
- // Update Session
- Boolean bool = sessiondataDao.updateUser(SID, u.getUser_id());
-
- if (bool == null) {
- // Exception
- log.error("Error on Updating Session");
- return new Long(-1);
- } else if (!bool) {
- // invalid Session-Object
- log.error("Invalid Session Object");
- return new Long(-35);
- }
-
try {
// Update password (could have changed in LDAP)
if (ldap_sync_passwd_to_om) {
@@ -561,7 +525,7 @@ public class LdapLoginManagement impleme
usersDao.update(u, null);
} catch (Exception e) {
log.error("Error updating user : " + e.getMessage());
- return new Long(-1);
+ throw new OmException(-1L);
}
return u;
@@ -656,8 +620,6 @@ public class LdapLoginManagement impleme
iCalTz = userdata.get(ldapAttrs.get("timezoneAttr"));
}
- iCalTz = timezoneUtil.getTimeZone(iCalTz).getID();
-
String town = "town";
if (userdata.containsKey(ldapAttrs.get("townAttr"))
&& userdata.get(ldapAttrs.get("townAttr")) != null)
@@ -670,11 +632,7 @@ public class LdapLoginManagement impleme
// Check if LDAP Users get a SIP Account Issue 1099
newUserId = userManager.registerUserInit(
- 2,// user_level
- 1,// level_id
- 1,// available
- 1,// status
- login,// loginname
+ UserDao.getDefaultRights(), login,// loginname
passwd,// passwd
lastname, firstname, email,
new java.util.Date(), //age
@@ -682,18 +640,17 @@ public class LdapLoginManagement impleme
additionalname, fax, zip, state_id, town,
configurationDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, Long.class, "1"), // language_id
false, // sendWelcomeMessage
- Arrays.asList(configurationDao.getConfValue(
- "default_domain_id", Long.class, null)), // organozation
- // Ids
+ Arrays.asList(configurationDao.getConfValue("default_domain_id", Long.class, null)), // organozation Ids
phone,
false,
false,// send verification code
- iCalTz,
+ timezoneUtil.getTimeZone(iCalTz),
false, // forceTimeZoneCheck
"", //userOffers
"", //userSearchs
false, //showContactData
- true //showContactDataToContacts
+ true, //showContactDataToContacts
+ null
);
User user = usersDao.get(newUserId);
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java?rev=1601669&r1=1601668&r2=1601669&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java Tue Jun 10 15:46:38 2014
@@ -26,11 +26,11 @@ import java.util.Map;
import java.util.Set;
import org.apache.commons.transaction.util.FileHelper;
-import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.data.whiteboard.WhiteboardManager;
import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
import org.apache.openmeetings.db.dao.server.ISessionManager;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.dto.file.LibraryPresentation;
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
import org.apache.openmeetings.db.entity.room.Client;
@@ -66,7 +66,7 @@ public class ConferenceLibrary implement
@Autowired
private SessiondataDao sessiondataDao;
@Autowired
- private UserManager userManager;
+ private UserDao userDao;
@Autowired
private FileExplorerItemDao fileExplorerItemDao;
@Autowired
@@ -80,12 +80,10 @@ public class ConferenceLibrary implement
try {
Long users_id = sessiondataDao.checkSession(SID);
- Long user_level = userManager.getUserLevelByID(users_id);
log.debug("#############users_id : " + users_id);
- log.debug("#############user_level : " + user_level);
- if (AuthLevelUtil.checkUserLevel(user_level)) {
+ if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
File working_dir = new File(OmFileHelper.getUploadFilesDir(), parentFolder);
log.debug("############# working_dir : " + working_dir);
@@ -123,8 +121,7 @@ public class ConferenceLibrary implement
Object tObjectRef) {
try {
Long users_id = sessiondataDao.checkSession(SID);
- Long user_level = userManager.getUserLevelByID(users_id);
- if (AuthLevelUtil.checkUserLevel(user_level)) {
+ if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
// LinkedHashMap tObject = (LinkedHashMap)t;
// ArrayList tObject = (ArrayList)t;
@@ -174,9 +171,8 @@ public class ConferenceLibrary implement
Long fileExplorerItemId, Long whiteboardId) {
try {
Long users_id = sessiondataDao.checkSession(SID);
- Long user_level = userManager.getUserLevelByID(users_id);
- if (AuthLevelUtil.checkUserLevel(user_level)) {
+ if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
IConnection current = Red5.getConnectionLocal();
Client currentClient = this.sessionManager
@@ -255,8 +251,7 @@ public class ConferenceLibrary implement
public ArrayList loadChartObject(String SID, Long room_id, String fileName) {
try {
Long users_id = sessiondataDao.checkSession(SID);
- Long user_level = userManager.getUserLevelByID(users_id);
- if (AuthLevelUtil.checkUserLevel(user_level)) {
+ if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
return LibraryChartLoader.getInstance().loadChart(OmFileHelper.getUploadRoomDir(room_id.toString()),
fileName);
}
@@ -275,9 +270,8 @@ public class ConferenceLibrary implement
try {
Long users_id = sessiondataDao.checkSession(SID);
- Long user_level = userManager.getUserLevelByID(users_id);
- if (AuthLevelUtil.checkUserLevel(user_level)) {
+ if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
IConnection current = Red5.getConnectionLocal();
String streamid = current.getClient().getId();