Giter VIP home page Giter VIP logo

dolomite's Introduction

DOLOMITE - Directories Led by Members

License: GNU Affero General Public License

Contact: [email protected]

Home page: http://dolomite.sf.net

Installation and tests

Install the Java Development kit.

Download Play! and unzip it somewhere without spaces in the full path.

In the "Play!" folder, clone the Git repository.

In "Dolomite/conf", copy "application.conf.sample" as "application.conf".

In the new file, edit (at least) the parameters about your LDAP directory:

ldap.host = ldap.acme.com:19389
ldap.dn = dc=acme,dc=com
ldap.admin.dn = cn=admin,dc=acme,dc=com
ldap.admin.password = sesame

Launch Dolomite in test mode:

./play test Dolomite

Open http://localhost:9000/@tests in a browser. If your LDAP settings are OK, you should be able to run "LdapTest".

If everything goes fine, define a community in your settings:

ourcommunity.acme.com.name = Foo Bar
ourcommunity.acme.com.href = http://ourapplication.acme.com/

Register the hostname ("ourcommunity.acme.com") as an alias for localhost in your local DNS settings file:

  • /etc/hosts on Unices,
  • C:\WINDOWS\system32\drivers\etc\hosts on Windows.

Run Dolomite: ./play run Dolomite

Open Dolomite at http://ourcommunity.acme.com:9000/ and invite someone by logging in with an existing LDAP account.

Run functional tests in http://ourcommunity.acme.com:9000/@tests

Production

In the DNS settings of your domain, define the customized hostnames for your communities.

In "application.conf", add the corresponding settings For every community.

set application mode to "production":

application.mode=prod

Use an in-file database (instead of in-memory):

db = fs

Activate data definition:

jpa.ddl=update

Define a real SMTP server (instead of the mock):

mail.smtp.host = smtp.acme.com 

Go back to the "Play!" folder, and generate a new secret key for your instance:

./play secret Dolomite

Start Play! in the background:

./play start Dolomite

dolomite's People

Contributors

aladji avatar benel avatar dianita avatar fenglu avatar kamwastephanie avatar lejeunec avatar mourlonben avatar paulleboullenger avatar radet avatar saoutal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dolomite's Issues

Refactoring of the LDAP API

The aim is to have a general Data Access Object (DAO) for LDAP.

My proposition is to use a CRUD architecture with the same functions for user, group and member group manipulations.

public void create (String type, Hashtable<String, String> ldapEnv, Attributes attributes)
{
}

public Attributes retrieve (String type, Hashtable ldapEnv, String id)
{
}

public void update (String type, Hashtable ldapEnv, String id, String attributeName, String value,)
{
}

public void delete (String type, Hashtable ldapEnv, String id, ArrayList members)
{
}

type would be equal to "user", "group" or "memberGroup" to make the difference between an action on a user, or a group.
Thoses methods are quite general and are taking advantages of the similarities between the different actions to refactor the code.

The differents informations mandatory to add a user, a group or a group member will be grouped in an Attributes object.

For the Delete method, the "ArrayList members" would be "null" for a user or a group since we don't need this to delete them.
(I'm not sure if this is possible in Java, an other solution would be to create 2 methods Delete, one with one more parameters than the other : "ArrayList members")

This structure would change the definition of the object attributes which would have to be done in the LdapUser and LdapGroup classes instead of Ldap.

Registration to a group

On registration, the user should be added to the LDAP group corresponding to the community.

Names with diacritics

Firstnames and/or surnames with diacritics caused an improper "bad signature" exception.

Code fixed by 89d4026.
Test needed.

Malicious password change request

Alice has the account "alice.dodgson" with the following e-mail: "[email protected]".
Malory has also an account and want to steal Alice's.
He sends an invitation to alice.dodgson but to his own e-mail "[email protected]".

A functional test will have to be created to check if this scenario is prevented.
If not, the code will have to be fixed.

User name in the invitation mail

The user name is currently notified only once to the user : on the webpage, when he choose his/her password. Unfortunately, many users hit the button without reading the username. They worry about their username so sooner than when requested by our platform.

I suggest that the user name will be notified in the invitation mail so that the user can keep it in the future.

Fix: Error messages in both languages fr & en

The error messages such a the messages in the app/controllers/inscription.java @required(message="The first password is required") should not be set directly in the source code but should refer to a message in the message.en and message.fr file.

However, the @required annotation only allow the use of constants (It's not possible to call the Message class). An idea could be to handle the error messages directly in the body of the methods, it is less easier than with annotations but would allow the use of multi-languages

Feature: logs treatment

The user wants to be able to see which users logged in a specific application and how many times.

Community Homepage

Depending on the training session, the homepage of the community is different. Either we create a new community for each training session or we change the homepage on each invitation. The latter need a new feature, but is perhaps easier to manage in the long term.

Unidentified Sponsor

I have invited all students attending my last class on Hypertopic suite. On month later, people claims not having received any invitation. In fact, mails were considered as junk because mail sender was unidentified.

Perhaps sender address could be replace by sponsor mail or by leader of the community...

Multiple first names or surnames

Some users with multiple first names or surnames could not login in Mediawiki with accounts created in Dolomite.
Check if this could be due to a bug in Dolomite.

Bulk invitations

Sometimes, a sponsor need to invite multiple users at once. This is for instance the case while you are giving training sessions.

The invitation form could allow to encode name, surname and email from several persons at once.

User-managed communities settings

On the creation or update of an LDAP group, members could change the name and URL of the corresponding community.
It would be stored in the LDAP database rather than in the configuration file.

Invitation to a group

To invite someone to a community, the user should be a member of the LDAP group corresponding to this community.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.