diff --git a/v3.html b/v3.html index 5ccd7956..f0c9f5dc 100644 --- a/v3.html +++ b/v3.html @@ -182,23 +182,18 @@ with the WSGI server
  • web
  • logging
  • headers
  • -
  • hook
  • -
  • rabbitmq_endpoint
  • -
  • rabbitmq_topic
  • -
  • rabbitmq_queue_type
  • -
  • reporting
  • - -
  • Supported +
  • Supported Clients
  • Authentication and Rights
  • Storage
  • Contribute
    @@ -1431,10 +1185,10 @@ system. The storage is locked with exclusive access while the
    Linux shell scripts

    Use the flock utility.

    -
    # Exclusive
    -$ flock --exclusive /path/to/storage/.Radicale.lock COMMAND
    -# Shared
    -$ flock --shared /path/to/storage/.Radicale.lock COMMAND
    +
    # Exclusive
    +$ flock --exclusive /path/to/storage/.Radicale.lock COMMAND
    +# Shared
    +$ flock --shared /path/to/storage/.Radicale.lock COMMAND
    Linux and MacOS
    @@ -1459,11 +1213,11 @@ folder in the file system storage (e.g. clients that the collection is a calendar, you have to create the file .Radicale.props with the following content in the folder:

    -
    {"tag": "VCALENDAR"}
    +
    {"tag": "VCALENDAR"}

    The calendar is now available at the URL path /user/calendar. For address books the file must contain:

    -
    {"tag": "VADDRESSBOOK"}
    +
    {"tag": "VADDRESSBOOK"}

    Calendar and address book collections must not have any child collections. Clients with automatic discovery of collections will only show calendars and address books that are direct children of the path @@ -1594,49 +1348,49 @@ password.

    modules is Distutils. For a minimal setup create the file setup.py with the following content in an empty folder:

    -
    #!/usr/bin/env python3
    -
    -from distutils.core import setup
    -
    -setup(name="radicale_static_password_auth",
    -      packages=["radicale_static_password_auth"])
    +
    #!/usr/bin/env python3
    +
    +from distutils.core import setup
    +
    +setup(name="radicale_static_password_auth",
    +      packages=["radicale_static_password_auth"])

    In the same folder create the sub-folder radicale_static_password_auth. The folder must have the same name as specified in packages above.

    Create the file __init__.py in the radicale_static_password_auth folder with the following content:

    -
    from radicale.auth import BaseAuth
    -from radicale.log import logger
    -
    -PLUGIN_CONFIG_SCHEMA = {"auth": {
    -    "password": {"value": "", "type": str}}}
    -
    -
    -class Auth(BaseAuth):
    -    def __init__(self, configuration):
    -        super().__init__(configuration.copy(PLUGIN_CONFIG_SCHEMA))
    -
    -    def login(self, login, password):
    -        # Get password from configuration option
    -        static_password = self.configuration.get("auth", "password")
    -        # Check authentication
    -        logger.info("Login attempt by %r with password %r",
    -                    login, password)
    -        if password == static_password:
    -            return login
    -        return ""
    +
    from radicale.auth import BaseAuth
    +from radicale.log import logger
    +
    +PLUGIN_CONFIG_SCHEMA = {"auth": {
    +    "password": {"value": "", "type": str}}}
    +
    +
    +class Auth(BaseAuth):
    +    def __init__(self, configuration):
    +        super().__init__(configuration.copy(PLUGIN_CONFIG_SCHEMA))
    +
    +    def login(self, login, password):
    +        # Get password from configuration option
    +        static_password = self.configuration.get("auth", "password")
    +        # Check authentication
    +        logger.info("Login attempt by %r with password %r",
    +                    login, password)
    +        if password == static_password:
    +            return login
    +        return ""

    Install the python module by running the following command in the same folder as setup.py:

    -
    python3 -m pip install .
    +
    python3 -m pip install .

    To make use this great creation in Radicale, set the configuration option type in the auth section to radicale_static_password_auth:

    -
    [auth]
    -type = radicale_static_password_auth
    -password = secret
    +
    [auth]
    +type = radicale_static_password_auth
    +password = secret

    You can uninstall the module with:

    -
    python3 -m pip uninstall radicale_static_password_auth
    +
    python3 -m pip uninstall radicale_static_password_auth

    Authentication plugins

    @@ -1674,6 +1428,11 @@ more information.

    Contribute

    +
    +

    Chat with Us on IRC

    +

    Want to say something? Join our IRC room: ##kozea on +Freenode.

    +

    Report Bugs

    Found a bug? Want a new feature? Report a new issue on the Radicale @@ -1686,7 +1445,7 @@ you want to add new features, fix bugs or update the documentation.

    Documentation

    -

    To change or complement the documentation create a pull request to DOCUMENTATION.md.

    +

    To change or complement the documentation create a pull request to DOCUMENTATION.md.

    @@ -1695,14 +1454,14 @@ you want to add new features, fix bugs or update the documentation.

    PyPI

    Radicale is available on PyPI. To install, just type as superuser:

    -
    python3 -m pip install --upgrade radicale
    +
    python3 -m pip install --upgrade radicale

    Git Repository

    If you want the development version of Radicale, take a look at the git repository on GitHub, or install it directly with:

    -
    python3 -m pip install --upgrade https://github.com/Kozea/Radicale/archive/master.tar.gz
    +
    python3 -m pip install --upgrade https://github.com/Kozea/Radicale/archive/master.tar.gz

    You can also download the content of the repository as an archive.

    @@ -1719,7 +1478,7 @@ by David Runge
  • Smedegaard
  • Gentoo by René Neumann, Maxim Koltsov and Manuel Rüger
  • -
  • Fedora/EnterpriseLinux +
  • Fedora/RHEL/CentOS by Jorti and Peter Bieringer
  • Mageia by Jani Välimaa