<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 07/19/2015 07:31 PM, Michal Hlavac
      wrote:<br>
    </div>
    <blockquote cite="mid:4683920.HRGSpnH9Ik@hlavki" type="cite">
      <meta name="qrichtext" content="1">
      <style type="text/css">
p, li { white-space: pre-wrap; }
</style>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Hi,</p>
      <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">I wrote simple synchronizer of ldap users and groups to kallithea database. You can find sources on github:</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><a class="moz-txt-link-freetext" href="https://github.com/hlavki/kallithea-ldap-sync">https://github.com/hlavki/kallithea-ldap-sync</a></p>
      <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">It's written in java and you can run it in 'dry' mode (no changes written). But be aware to not use production database for tests.</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">If you have any question, feel free to ask</p>
    </blockquote>
    <br>
    This seems very useful.<br>
    <br>
    It could perhaps be more useful with some additional documentation
    describing what problem it solves, how it solves it ... and how it
    is run.<br>
    <br>
    Looking at the example, I wonder what strategy it uses to handle
    conflicts between groups created in LDAP and groups created in
    Kallithea, and how it handles conflicts between changes from LDAP
    changes and changes in Kallithea.<br>
    <br>
    Also, how about using usernames and group names in the configuration
    instead of IDs?<br>
    <br>
    <br>
    You can perhaps contribute a patch to the Kallithea documentation
    mentioning your tool.<br>
    <br>
    Ultimately, it would be nice to get it reimplemented in Python so we
    could ship it with Kallithea.<br>
    <br>
    /Mads<br>
  </body>
</html>