Hi Fitz,

Great to see so much motivation from you :)

Just don't forget that GSOC coding period is not started yet and that
we still have no idea how many slots Google will give us and who we
will select this year (this will be 22nd April).

On Tue, Apr 12, 2016 at 10:03 AM, fitz <[email protected]> wrote:
> Hello Dear devs,
>
> I am Fitz Lee, a CS Master's student from the University of Chinese Academy
> of Sciences. I'm very interested in this project, XWiki authenticator
> Android. I have submitted the final application for Gsoc2016
> (https://drive.google.com/file/d/0ByNx4jI3PEaNaGRxMkt0cUU3SjA/view?usp=sharing
> ).
> In order to furtherly understand the authenticator project, I have developed
> this android demo (https://github.com/fitzlee/SampleSyncAdapter), which is
> based on SampleSyncAdapter Google Android Sample. By deeply Analyzing the
> SampleSyncAdapter source,  I have implemented the material design(>=4.4) ui,
> the synchronization of contacts and the access of other apps .  But some
> functions in google server(https://samplesyncadapter2.appspot.com/sync)
> can't work well so that the client-to-server Synchronization function can't
> be tested and verified, and it needs to cooperate with server.  In my github
> repository(https://github.com/fitzlee/SampleSyncAdapter), I also show my
> analysis about the authenticator, synchronization, contactmanager, sign-in,
> sign-up and the whole process of the app. And now I am trying to develop the
> XWiki android authenticator project.
>
> Please consider my application, and I am eager to join this project and make
> a contribution. It's my first time to join the open source organization for
> enhancing my teamwork and technical skills. Please give me a chance, and I
> will try my best. If there is anything I can do for this project , I will be
> very happy.
>
> Here, i also have some questions which confuse me during my development:
> 1. contact synchronization
> (1)Situation:
> Now I have implemented the server-to-app synchronization with the modified
> SampleSyncAdapter (https://github.com/fitzlee/SampleSyncAdapter), and this
> demo can download contacts from server to local sqlite3 database. Also I can
> edit and modify the local contact and from logcat I have seen the dirty
> contacts being sent to the server. But the synchronization of server can't
> work so that I can't test this function.
> (2)Problem:
> Moreover, by analyzing the XWiki android authenticator in the repository
> (https://github.com/xwiki-contrib/android-authenticator). I have seen that
> some function has not been implemented, like getDirtyContacts and
> getRawContact in ContactManager. And the process of synchronisation in
> SynAdapter_onPerformSync also confuse me, like "ensureXWikiGroupExists>>
> XWikiConnector.getUsers>> ContactManager.updateContacts>>
> ContactManager.updateStatusMessages". I think it should be this process,
> like "ContactManager.getDirtyContacts>> NetworkUtilities.syncContacts>>
> ContactManager.updateContacts". Therefore, I don't know whether there is
> something wrong with me.  Could you give me some advice?

Yes contact synchronization in
https://github.com/xwiki-contrib/android-authenticator is not the
beginning or an experiment I never had time to finish so it's more
pseudo code that never worked yet.

>
> 2. A test xwiki server and test user which may help me a lot to develop this
> project for testing.
> I have analysed the sampleSynAdapter and implemented some function, for
> example material design(>=4.4), version support(2.3 with v7 library) and the
> synchronisation from server to the android local sqlite3
> database(contacts2.db) using ContactManager.But when client sends some dirty
> contact data to server, the synchronisation of server in google appengine
> can't work well so that I can't test my app's synchronisation. And the
> SampleSyncAdapter server also can't provide me more apis,like signing up and
> other necessary function.I have tried to upload a python server to google
> appengine,but failed because of the incompatibility between the source code
> by python version 2.5 and the cloud platform by 2.7 version.
> Question: Please if possible, could i have a test user and some server apis
> in xwiki server, or maybe i should write a test server by myself?

I see two main possibility for this:
* the first thing you should do I think is download the jetty/hsqld
all in one distribution on
http://www.xwiki.org/xwiki/bin/view/Main/Download and use that as test
server (you have admin right in it and can create as many test users
or groups as you want)
* as soon as you want to test volume and compatibility with existing
instance of XWiki you can register on http://www.xwiki.org which
contains 1519 users right now

>
> 3. requirement
> I think this project mainly has the following requirements.

> (1) sign in
> it is easy,just like my analysis of android SampleSyncAdapter, including the
> server connection with XWikiconnector and the account added by
> AccountManager

Don't reduce too quickly the level of difficulty on this side, one
thing you will have to work around is that standard XWiki instance
have no token based authentication so you will have to hack an as safe
as possible BASIC auth based implementation of Android authenticator
(which mean users of the authenticator can't just ask for the token
and connect to XWiki server).

> (2) sign up
> may also need some other api, like getting a list of xwiki user, adding
> friends which can be synchronized in the local phone contacts. Also other
> activitie may be possibly added, therefor the authenticator app will be very
> complex.
> (3) synchronization of contacts
> (4) edit the contact
> (5) access by other apps
> Question: Are there more other requirements in this app, like adding
> friends(general person) and creating new xwiki account(administrator)?
> maybe it will cause more demands and be more complex.
>

There is no real "friends" system in standard XWiki and anyway the
main use case for this application being intranets you usually want to
simply synchronize all users of the wiki since those are your
coworkers. An improvement would be to allow the user to select a list
of XWiki groups to synchronize if you don't want the whole wiki in a
big company or public wiki like xwiki.org for example.

> 4. support version and ui
> (1) ui design
> * material design >=4.4 with the support library support-v7
> (2) support version
> * The ui design can support the lowest 2.3 version and the android
> sampleSynAdapter can also support 2.3 version. So I think our authenticator
> app can support the lowest 2.3 version if needed.
> Question: Maybe there are somethings I have not noticed, so this conclusion
> is wrong, please give me some advice? Is that OK?

Supporting the lowest possible version is always nicer for users but
according to http://developer.android.com/about/dashboards/index.html
no need to go beyond 4.1.

4.4 seems to still be a bit too recent and might left behind too many users.

>
> 5. account permission
> In AccountGeneral.java there are two permissions , like
> AUTHTOKEN_TYPE_READ_ONLY, AUTHTOKEN_TYPE_FULL_ACCESS.  Could you tell me
> what the permissions main?  other xwiki instance access  limits ?  Account
> manager? And where should I use them?

You have many right on XWiki (and any extension can add more) plus it
depend what part of the wiki you are accessing.

But since you don't have any concept of token associated to an
application in standard XWiki the application will have whatever right
the user have so I guess you can return AUTHTOKEN_TYPE_FULL_ACCESS all
the time in the Android authenticator (then the application will have
to deal with 403 errors).

>
> I am looking forward to hearing from you. Thank you very much.
>
> Best Regards
> Fitz Lee | UCAS Master
> Email&Skype: [email protected]
> Github&Homepage: https://github.com/fitzlee
>
> University of Chinese Academy of Sciences(UCAS)
> Shijingshan District, Beijing, China
>
>
>
>
> --
> View this message in context: 
> http://xwiki.475771.n2.nabble.com/Questions-Gsoc2016-XWiki-Android-authenticator-tp7598932.html
> Sent from the XWiki- Dev mailing list archive at Nabble.com.
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to