Revision: 3865
Author:   seba.wagner
Date:     Sun Jun 26 04:01:56 2011
Log:      Calls to manage external users via SOAP
http://code.google.com/p/openmeetings/source/detail?r=3865

Modified:
/trunk/singlewebapp/src/app/org/openmeetings/app/data/user/Usermanagement.java /trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserService.java

=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/data/user/Usermanagement.java Wed Nov 10 03:53:07 2010 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/data/user/Usermanagement.java Sun Jun 26 04:01:56 2011
@@ -921,6 +921,48 @@
                }
                return null;
        }
+
+ public Long registerUserNoEmail(String login, String Userpass, String lastname,
+                       String firstname, String email, Date age, String street,
+                       String additionalname, String fax, String zip, long 
states_id,
+                       String town, long language_id, String phone,
+                       boolean generateSipUserData, String jNameTimeZone) {
+               try {
+                       // Checks if FrontEndUsers can register
+ if (Configurationmanagement.getInstance().getConfKey(3,"allow_frontend_register").getConf_value().equals("1")) {
+
+                               Boolean sendConfirmation = false;
+                               Boolean sendWelcomeMessage = false;
+                               String baseURL = "";
+
+                               //TODO: Read and generate SIP-Data via 
RPC-Interface Issue 1098
+
+ Long user_id = this.registerUserInit(3, 1, 0, 1, login, Userpass,lastname, firstname, email, age,
+                                                                               
street, additionalname,fax, zip, states_id, town,
+ language_id, sendWelcomeMessage, new LinkedList(), phone, baseURL, + sendConfirmation,"","","", generateSipUserData, jNameTimeZone, false,
+                                                                               
"",
+                                                                               
"",
+                                                                               
false,
+                                                                               
true);
+
+                               // Get the default organisation_id of 
registered users
+                               if (user_id>0){
+ long organisation_id = Long.valueOf(Configurationmanagement.getInstance().getConfKey(3,"default_domain_id").getConf_value()).longValue(); + Organisationmanagement.getInstance().addUserToOrganisation(user_id,organisation_id, user_id, "");
+                               }
+
+                               if (sendConfirmation) {
+                                       return new Long(-40);
+                               }
+
+                               return user_id;
+                       }
+               } catch (Exception e) {
+                       log.error("[registerUserNoEmail]",e);
+               }
+               return null;
+       }

        /**
         * Adds a user including his adress-data,auth-date,mail-data
@@ -969,13 +1011,17 @@
                                if (checkName && checkEmail) {

String hash = ManageCryptStyle.getInstance().getInstanceOfCrypt().createPassPhrase(login + CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
-                                       String link = 
baseURL+"activateUser?u="+hash;
-
+
+                                       //Check if there are any emails to be 
send
                                        if (sendWelcomeMessage && 
email.length()!=0) {
+
+                                               String link = 
baseURL+"activateUser?u="+hash;
+
//We need to pass the baseURL to check if this is really set to be send String sendMail = Emailmanagement.getInstance().sendMail(login, Userpass, email, link, sendConfirmation);
                                                if 
(!sendMail.equals("success")) return new Long(-19);
-                                       }
+                                       }
+
Long address_id = Addressmanagement.getInstance().saveAddress(street, zip, town, states_id, additionalname, "",fax, phone, email);
                                        if (address_id==null) {
                                                return new Long(-22);
=======================================
--- /trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserService.java Tue Apr 26 02:04:46 2011 +++ /trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserService.java Sun Jun 26 04:01:56 2011
@@ -15,8 +15,11 @@
 import org.openmeetings.app.data.basic.dao.SOAPLoginDaoImpl;
 import org.openmeetings.app.data.beans.basic.ErrorResult;
 import org.openmeetings.app.data.beans.basic.SearchResult;
+import org.openmeetings.app.data.user.Addressmanagement;
 import org.openmeetings.app.data.user.Organisationmanagement;
 import org.openmeetings.app.data.user.Usermanagement;
+import org.openmeetings.app.data.user.dao.UsersDaoImpl;
+import org.openmeetings.app.hibernate.beans.adresses.Adresses;
 import org.openmeetings.app.hibernate.beans.basic.Configuration;
 import org.openmeetings.app.hibernate.beans.basic.ErrorValues;
 import org.openmeetings.app.hibernate.beans.basic.Sessiondata;
@@ -197,6 +200,188 @@
                        throw new AxisFault(err.getMessage());
                }
        }
+
+       /**
+        *
+ * Adds a user with an externalUserId and type, but checks if the user/type
+        * does already exist
+        *
+        * @param SID
+        * @param username
+        * @param userpass
+        * @param lastname
+        * @param firstname
+        * @param email
+        * @param additionalname
+        * @param street
+        * @param zip
+        * @param fax
+        * @param states_id
+        * @param town
+        * @param language_id
+        * @param baseURL
+        * @param jNameTimeZone
+        * @param externalUserId
+        * @param externalUserType
+        * @return
+        * @throws AxisFault
+        */
+ public Long addNewUserWithExternalType(String SID, String username, String userpass,
+                       String lastname, String firstname, String email,
+                       String additionalname, String street, String zip, 
String fax,
+                       long states_id, String town, long language_id, String 
baseURL,
+                       String jNameTimeZone, Long externalUserId, String 
externalUserType)
+                       throws AxisFault {
+               try {
+                       Long users_id = 
Sessionmanagement.getInstance().checkSession(SID);
+                       Long user_level = 
Usermanagement.getInstance().getUserLevelByID(
+                                       users_id);
+
+                       if 
(AuthLevelmanagement.getInstance().checkAdminLevel(user_level)) {
+
+ Users testUser = Usermanagement.getInstance().getUserByExternalIdAndType(externalUserId, externalUserType);
+
+                               if (testUser != null) {
+                                       throw new Exception("User does already 
exist!");
+                               }
+
+                               //This will send no email to the users
+                       Long user_id = 
Usermanagement.getInstance().registerUserNoEmail(
+                                       username, userpass,
+                                       lastname, firstname, email,
+                                       new Date(), street, additionalname,
+                                       fax, zip,
+                                       states_id,
+                                       town,
+                                       language_id,
+                                       "",
+                                       true, //generate SIP Data if the config 
is enabled
+                                       jNameTimeZone);
+
+                               if (user_id < 0) {
+                                       return user_id;
+                               }
+
+                               Users user = 
Usermanagement.getInstance().getUserById(user_id);
+
+                               // activate the User
+                               user.setStatus(1);
+                               user.setUpdatetime(new Date());
+                               user.setExternalUserId(externalUserId);
+                               user.setExternalUserType(externalUserType);
+
+                               Usermanagement.getInstance().updateUser(user);
+
+                               return user_id;
+
+                       } else {
+                               return new Long(-26);
+                       }
+
+               } catch (Exception err) {
+                       log.error("addNewUserWithExternalType", err);
+                       throw new AxisFault(err.getMessage());
+               }
+       }
+
+       /**
+        *
+        * delete a user by its id
+        *
+        * @param SID
+        * @param userId
+        * @return
+        * @throws AxisFault
+        */
+       public Long deleteUserById(String SID, Long userId) throws AxisFault {
+               try {
+                       Long users_id = 
Sessionmanagement.getInstance().checkSession(SID);
+                       Long user_level = 
Usermanagement.getInstance().getUserLevelByID(
+                                       users_id);
+
+                       if 
(AuthLevelmanagement.getInstance().checkAdminLevel(user_level)) {
+
+                               // Setting user deleted
+                               UsersDaoImpl.getInstance().deleteUserID(userId);
+
+                               Users user = Usermanagement.getInstance()
+                                               
.checkAdmingetUserById(user_level, userId);
+
+                               // Updating address
+                               Adresses ad = user.getAdresses();
+
+                               if (ad != null) {
+                                       ad.setDeleted("true");
+
+                                       
Addressmanagement.getInstance().updateAdress(ad);
+                                       log.debug("deleteUserId : Address 
updated");
+
+
+                               }
+
+                               return userId;
+
+                       } else {
+                               return new Long(-26);
+                       }
+
+               } catch (Exception err) {
+                       log.error("deleteUserById", err);
+                       throw new AxisFault(err.getMessage());
+               }
+       }
+
+       /**
+        *
+        * delete a user by its external user id and type
+        *
+        * @param SID
+        * @param externalUserId
+        * @param externalUserType
+        * @return
+        * @throws AxisFault
+        */
+ public Long deleteUserByExternalUserIdAndType(String SID, Long externalUserId, String externalUserType) throws AxisFault {
+               try {
+                       Long users_id = 
Sessionmanagement.getInstance().checkSession(SID);
+                       Long user_level = 
Usermanagement.getInstance().getUserLevelByID(
+                                       users_id);
+
+                       if 
(AuthLevelmanagement.getInstance().checkAdminLevel(user_level)) {
+
+ Users userExternal = Usermanagement.getInstance().getUserByExternalIdAndType(externalUserId, externalUserType);
+
+                               Long userId = userExternal.getUser_id();
+
+                               // Setting user deleted
+                               UsersDaoImpl.getInstance().deleteUserID(userId);
+
+                               Users user = Usermanagement.getInstance()
+                                               
.checkAdmingetUserById(user_level, userId);
+
+                               // Updating address
+                               Adresses ad = user.getAdresses();
+
+                               if (ad != null) {
+                                       ad.setDeleted("true");
+
+                                       
Addressmanagement.getInstance().updateAdress(ad);
+                                       log.debug("deleteUserId : Address 
updated");
+
+
+                               }
+
+                               return userId;
+
+                       } else {
+                               return new Long(-26);
+                       }
+
+               } catch (Exception err) {
+                       log.error("deleteUserById", err);
+                       throw new AxisFault(err.getMessage());
+               }
+       }

        /**
         *

--
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en.

Reply via email to