Completed Login module

git-svn-id: https://forja.rediris.es/svn/cusl6-swadroid/trunk@76 5bc14d19-1e4b-4ba2-aa50-860af135f48c
This commit is contained in:
Juan Miguel Boyero Corral 2011-11-22 22:05:56 +00:00
parent 9ea8d97fc6
commit 7ee27f4758
4 changed files with 43 additions and 21 deletions

View File

@ -24,14 +24,18 @@ package es.ugr.swad.swadroid;
* @author Juan Miguel Boyero Corral <juanmi1982@gmail.com> * @author Juan Miguel Boyero Corral <juanmi1982@gmail.com>
*/ */
public class Global { public class Global {
/** /**
* Request code for Login module. * SWAD application key
*/ */
public static final int LOGIN_REQUEST_CODE = 1; private static final String AppKey = "HTC-Desire";
/** /**
* User logged flag * User logged flag
*/ */
private static boolean logged; private static boolean logged;
/**
* Request code for Login module.
*/
public static final int LOGIN_REQUEST_CODE = 1;
/** /**
* Enum type defining allowed user types * Enum type defining allowed user types
*/ */
@ -105,6 +109,14 @@ public class Global {
* Table name for for relationship between test's questions and tags * Table name for for relationship between test's questions and tags
*/ */
public static final String DB_TABLE_TEST_QUESTIONS_TAGS = "tst_questions_tags"; public static final String DB_TABLE_TEST_QUESTIONS_TAGS = "tst_questions_tags";
/**
* Gets the SWAD application key
* @return SWAD application key
*/
public static String getAppKey() {
return AppKey;
}
/** /**
* Checks if user is already logged on SWAD * Checks if user is already logged on SWAD
* @return User logged flag * @return User logged flag

View File

@ -31,6 +31,7 @@ import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.Window; import android.view.Window;
import es.ugr.swad.swadroid.model.DataBaseHelper; import es.ugr.swad.swadroid.model.DataBaseHelper;
import es.ugr.swad.swadroid.model.User;
import es.ugr.swad.swadroid.modules.Login; import es.ugr.swad.swadroid.modules.Login;
import es.ugr.swad.swadroid.ssl.SecureConnection; import es.ugr.swad.swadroid.ssl.SecureConnection;

View File

@ -22,13 +22,14 @@ package es.ugr.swad.swadroid.modules;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.util.Base64;
import android.util.Log; import android.util.Log;
import es.ugr.swad.swadroid.Global;
import es.ugr.swad.swadroid.R; import es.ugr.swad.swadroid.R;
import es.ugr.swad.swadroid.model.User; import es.ugr.swad.swadroid.model.User;
import java.io.IOException; import java.io.IOException;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import org.kobjects.base64.Base64;
import org.ksoap2.SoapFault; import org.ksoap2.SoapFault;
import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException;
@ -53,7 +54,7 @@ public class Login extends Module {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setMETHOD_NAME("loginByUserPassword"); setMETHOD_NAME("loginByUserPasswordKey");
connect(); connect();
} }
@ -75,26 +76,27 @@ public class Login extends Module {
private void requestService() private void requestService()
throws NoSuchAlgorithmException, IOException, XmlPullParserException, SoapFault { throws NoSuchAlgorithmException, IOException, XmlPullParserException, SoapFault {
//Encrypts user password with SHA-512 and encodes it to Base64 //Encrypts user password with SHA-512 and encodes it to Base64
md = MessageDigest.getInstance("SHA-512"); md = MessageDigest.getInstance("SHA-512");
md.update(prefs.getUserPassword().getBytes()); md.update(prefs.getUserPassword().getBytes());
userPassword = Base64.encode(md.digest()); userPassword = new String(Base64.encode(md.digest(), Base64.URL_SAFE + Base64.NO_PADDING + Base64.NO_WRAP));
//Creates webservice request, adds required params and sends request to webservice //Creates webservice request, adds required params and sends request to webservice
createRequest(); createRequest();
addParam("userID", prefs.getUserID()); addParam("userID", prefs.getUserID());
addParam("userPassword", userPassword); addParam("userPassword", userPassword);
addParam("appKey", Global.getAppKey());
sendRequest(); sendRequest();
//Stores user data returned by webservice response //Stores user data returned by webservice response
User.setUserCode(result.getProperty("userCode").toString()); User.setUserCode(result.get(0).toString());
User.setUserTypeCode(result.getProperty("userTypeCode").toString()); User.setUserTypeCode(result.get(1).toString());
User.setWsKey(result.getProperty("wsKey").toString()); User.setWsKey(result.get(2).toString());
User.setUserID(result.getProperty("userID").toString()); User.setUserID(result.get(3).toString());
User.setUserSurname1(result.getProperty("userSurname1").toString()); User.setUserSurname1(result.get(4).toString());
User.setUserSurname2(result.getProperty("userSurname2").toString()); User.setUserSurname2(result.get(5).toString());
User.setUserFirstName(result.getProperty("userFirstName").toString()); User.setUserFirstName(result.get(6).toString());
User.setUserTypeName(result.getProperty("userTypeName").toString()); User.setUserTypeName(result.get(7).toString());
//Request finalized without errors //Request finalized without errors
setResult(RESULT_OK); setResult(RESULT_OK);

View File

@ -29,8 +29,11 @@ import es.ugr.swad.swadroid.Global;
import es.ugr.swad.swadroid.Preferences; import es.ugr.swad.swadroid.Preferences;
import es.ugr.swad.swadroid.R; import es.ugr.swad.swadroid.R;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import org.ksoap2.SoapEnvelope; import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault; import org.ksoap2.SoapFault;
import org.ksoap2.serialization.KvmSerializable;
import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE; import org.ksoap2.transport.HttpTransportSE;
@ -68,7 +71,7 @@ public class Module extends Activity {
/** /**
* Webservice result. * Webservice result.
*/ */
SoapObject result; ArrayList<Object> result;
/** /**
* Shows error messages. * Shows error messages.
*/ */
@ -174,7 +177,7 @@ public class Module extends Activity {
* Gets webservice result. * Gets webservice result.
* @return Webservice result. * @return Webservice result.
*/ */
public SoapObject getResult() { public ArrayList<Object> getResult() {
return result; return result;
} }
@ -182,7 +185,7 @@ public class Module extends Activity {
* Sets webservice result. * Sets webservice result.
* @param result Webservice result. * @param result Webservice result.
*/ */
public void setResult(SoapObject result) { public void setResult(ArrayList<Object> result) {
this.result = result; this.result = result;
} }
@ -227,7 +230,7 @@ public class Module extends Activity {
*/ */
protected void createRequest() { protected void createRequest() {
request = new SoapObject(NAMESPACE, METHOD_NAME); request = new SoapObject(NAMESPACE, METHOD_NAME);
result = null; result = new ArrayList<Object>();
} }
/** /**
@ -260,7 +263,11 @@ public class Module extends Activity {
androidHttpTransport.call(SOAP_ACTION, envelope); androidHttpTransport.call(SOAP_ACTION, envelope);
} }
result = (SoapObject) envelope.getResponse(); KvmSerializable ks = (KvmSerializable)envelope.bodyIn;
for(int i=0;i<ks.getPropertyCount();i++)
{
result.add(ks.getProperty(i)); //if complex type is present then you can cast this to SoapObject and if primitive type is returned you can use toString() to get actual value.
}
} }
/** /**