linuxmuster-tools7 (7.4.14) lmn74; urgency=medium

  * [lmnfile] StartConfLoader: opening a non-existent start.conf.* in 'w'
    mode now creates a new group file instead of raising
    FileNotFoundError. Fix linuxmuster/linuxmuster-webui7#293 (webui
    creates a new LINBO group via `with LMNFile(path, 'w') as f`).
  * [packaging] Add pexpect as a dependency. Fix #28.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 17 Aug 2026 00:00:00 +0200

linuxmuster-tools7 (7.4.13) lmn74; urgency=medium

  * [ldapconnector] Remove the deprecated LMNMgmtGroup class (superseded
    by samba_util.GroupManager, which properly reports LDAP errors
    instead of swallowing them). Update the ResetInternet.py example
    accordingly.
  * [ldapconnector/quotas] Fix sophomorixCloudQuotaCalculated and
    sophomorixMailQuotaCalculated being typed as list instead of str in
    LMNUserModel, LMNRawUserModel and LMNObjectModel - both are
    single-valued LDAP attributes (isSingleValued: TRUE), so the reader
    was wrapping a plain string in a list, showing up as e.g.
    ["2506 MB"] once rendered by the webui. get_user_quotas() adjusted
    accordingly. Breaking change: any consumer of these two fields now
    gets a str, not a list.
  * [tests] Adjust fixtures and expectations in ldapconnector and quotas
    test suites for the list->str change above.
  * [common] Add is_samba_provisioned() (provisioning.py), based on the
    presence of /etc/linuxmuster/.secret/administrator - the AD admin
    secret samba-tool domain provision creates - rather than
    /var/lib/linuxmuster/setup.ini, which is written by linuxmuster-setup's
    very first module and stays present for most of the install while LDAP
    is still unusable. Also add LdapNotProvisionedError (exceptions.py).
  * [ldapconnector] LdapConnector._connect() now raises
    LdapNotProvisionedError instead of a raw FileNotFoundError when
    connecting as root/outside the webui on a domain that isn't
    provisioned yet, so callers can catch it and respond cleanly (e.g.
    redirect to the setup wizard, return a 503) instead of crashing.
  * [devices] Devices.load() no longer raises when
    SCHOOL/[SCHOOL.]devices.csv doesn't exist yet (fresh install, school
    not provisioned yet): devices/groups/macs/ips/rooms are left empty
    instead. Fixes a startup crash in linuxmuster-webui7, which imports
    all its plugins eagerly and, through ldapconnector.writers.device,
    instantiates a module-level Devices() singleton.
  * [samba_util] SambaToolDNS._get_ignore_list() gets the same guard for
    the same devices.csv read.
  * [packaging] debian/control: add python3-pip as a dependency.
  * [tests] Add coverage for the provisioning check (common, ldapconnector)
    and for the missing-devices.csv case (devices, samba_util).

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 08 Aug 2026 16:00:00 +0200

linuxmuster-tools7 (7.4.12) lmn74; urgency=medium

  * [linbo] Add LinboRemote (linbo_sync.py) to build and run linbo-remote
    commands: target a group, a room or a list of clients (ip or
    hostname), with parameter validation and nr checked against the
    target's start.conf before running. Raises LinboRemoteParameterError
    on invalid input instead of silently building a wrong command.
  * [linbo] Fix format:<nr> partition numbering: use the partition's
    position in start.conf's [Partition] list instead of the digit in its
    device path - the two diverge as soon as partitions aren't defined in
    the same order as their device numbers.
  * [linbo] Add list_running_sessions()/attach_command() to track
    linbo-remote's tmux sessions (see linuxmuster-api#32, thanks
    @TomlDev). Fix session names in the process: tmux silently replaces
    the dot in "<hostname>.linbo-remote" with an underscore, so sessions
    were never actually matched.
  * [linbo] host_status: add classify_host() (Off/Linbo/OS Linux/OS
    Windows/OS Unknown) via plain blocking sockets - no nmap, no asyncio,
    safe to call from gevent-based code (the webui).
  * [linbo] Fix group_os() missing the 'broadcast' default in its 'auto'
    dict - present in the webui's own copy of this logic, dropped in
    lmntools' version (used by lmncli), now aligned.
  * [linbo] Change last_sync_all()'s return shape to match the webui's:
    host['image'] (list of {date, status, image}) instead of the
    separate host['images']/host['sync'] lmncli used. lmncli's
    "lastsync" typer adapted accordingly (see linuxmuster-cli7).
  * [tests] Add coverage for LinboRemote, the session-name fix, host
    boot-state classification and the partition-numbering fix.
  * [linbo] Add 'hash' to the recognized non-editable image extra files
    (alongside torrent/macct/md5) - it was already produced on disk but
    unknown to LinboImage, so deleting or renaming an image left it
    behind (orphaned file, and a failed rmdir on delete).
  * [linbo] images.py: raise ImageExistsError/RuntimeError instead of a
    silent print()+return when renaming/duplicating onto an existing
    path, or renaming/deleting/saving extras on an image group whose
    base image failed to load.
  * [linbo] Add IncompleteImageInfoError for a missing or incomplete
    .info file. An image group with a broken .info now shows up in
    listings flagged with an error instead of either crashing the whole
    manager or silently fabricating missing fields.
  * [linbo] Fix LinboImageManager.delete() using self.images[group]
    instead of self.groups[group] for a backup-only deletion.
  * [ldapconnector] Fix a KeyError when a custom_fields.yml entry is
    present but missing a key (e.g. 'editable') - only entries missing
    entirely were defaulted before, partial ones weren't merged with the
    defaults.
  * [samba_util] GroupManager.add_members(): only swallow the benign LDAP
    "already a member" error (code 68); every other exception used to be
    silently dropped too.
  * [samba_util] GroupManager: run each post-hook script in its own
    try/except, logged on failure instead of failing the whole
    add_members()/remove_members() call - the LDAP change had already
    succeeded by the time hooks run, so a broken hook script must not be
    reported as a failed membership change.
  * [tests] Add coverage for image rename/duplicate/delete/restore
    conflicts and error paths, the incomplete-.info case, and the
    custom-fields partial-entry fix.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Fri, 07 Aug 2026 15:00:00 +0200

linuxmuster-tools7 (7.4.11) lmn74; urgency=medium

  * [ldapconnector] Add password-management methods to LMNUser:
    set_actual_password() (direct SamDB unicodePwd write, bypasses
    sophomorix-passwd/smbpasswd), set_first_password(), and
    set_random_first_password() (policy-aware random generation).
  * [ldapconnector] Add LMNUser.test_first_password(); extract the shared
    LDAP bind check into models/common.py::check_password().
  * [samba_util] Remove the deprecated, buggy UserManager class - password
    management now lives entirely in LMNUser (see ldapconnector).
  * [samba_util] Lazy-import Samba's Python bindings instead of at module
    import time - avoids an import-time failure/slowdown when Samba isn't
    available yet, and breaks a circular import with the password module.
  * [quotas] Lazy-import smbclient/smbprotocol bindings for the same
    reason.
  * [ldapconnector] Fix custom fields config resolution: role names were
    looked up singular against a YAML keyed plural, only fields 1-4 were
    read instead of 1-5, and the config always loaded default-school's
    settings regardless of the actual user's school. Closes #25.
  * [ldapconnector] Fix add_members()/remove_members() silently hiding
    per-user failures; one invalid cn no longer hides the rest of the
    batch, failures are now collected and returned as a list.
  * [ldapconnector] Fix stale data when converting a group to an LMN group
    (missing load_data() refresh before the follow-up setattr()).
  * [tests] Add coverage for custom fields config, LMNUser first-password
    methods, and group member batch failures.
  * [docs] Add README for common, devices, install scripts, lmnconfig,
    print, smbclient and subnets modules; update ldapconnector README for
    the new password-management API.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 05 Aug 2026 15:30:00 +0200

linuxmuster-tools7 (7.4.10) lmn74; urgency=medium

  * [passwords] New password constraints module: policy provider, Samba
    domain floor (min length/complexity/age), YAML config, webui editing,
    tests and README.
  * [samba_util] Throw a clear runtime error instead of a confusing
    AttributeError when SamDB can't be opened (no root access).
  * [samba_util] Fix missing SCOPE_SUBTREE import breaking
    DeviceManager.get_credentials(). Closes #20.
  * [ldapwriter] Fix silent failure when removing a group's last member or
    emptying a group entirely (redirect to delattr instead of a swallowed
    ValueError). Closes #21.
  * [ldapwriter] Raise ValueError instead of silently no-op'ing when
    setattr() is given an empty value.
  * [ldapwriter] Add SchoolError exception; catch it when instantiating
    LMNGroup with school='global'.
  * [ldapwriter] Avoid lowercase mismatch on group/user lookups.
  * [ldapconnector] Fix crash when /ou lookup returns an empty result.
  * [linbo] Add LINBO hardware inventory reader (@amolani)
  * [linbo] Add LINBO driver profile metadata management (@amolani)
  * [linbo] Add read-only then writable LINBO driver image assignments
    (@amolani)
  * [linbo] Render and publish LINBO driver dispatchers (@amolani)
  * [linbo] Delegate Windows drivers to LINBO image groups; synchronize
    driver assignments and dispatchers (@amolani)
  * [lmnfile] Make ConfigLoader writes atomic.
  * [tests] Add test coverage for common, devices, lmnconfig, print,
    quotas, samba_util, smbclient and subnets modules.
  * Replace deprecated datetime.utcnow() usage.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 22 Jul 2026 22:16:00 +0200

linuxmuster-tools7 (7.4.9) lmn74; urgency=medium

  * [linbo] Write and delete raw start.conf. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 16 Jul 2026 22:35:54 +0200

linuxmuster-tools7 (7.4.8) lmn74; urgency=medium

  * [check] Allow dot in login
  * [print] Possibility to print large cards (36 passwords on 2 pages).
  * [print] Print passwords and convert sophomorix templates as jinja
    templates.
  * [ldapwriter] Add LMNGroups
  * [subnets] New module to manage subnets and track changes (@hermanntoast)

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 15 Jul 2026 11:06:32 +0200

linuxmuster-tools7 (7.4.7) lmn74; urgency=medium

  * Allow dots in usernames in the LDAP router URL patterns.

 -- Lukas Spitznagel <lukas.spitznagel@netzint.de>  Fri, 26 Jun 2026 15:11:10 +0200

linuxmuster-tools7 (7.4.6) lmn74; urgency=medium

  * Add configobj as dependency.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 28 Jun 2026 11:21:43 +0200

linuxmuster-tools7 (7.4.5) lmn74; urgency=medium

  * Fix wrong asdict names again. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 20 Jun 2026 17:24:06 +0200

linuxmuster-tools7 (7.4.4) lmn74; urgency=medium

  * Fix wrong asdict var. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 17 Jun 2026 09:21:33 +0200

linuxmuster-tools7 (7.4.3) lmn74; urgency=medium

  * A lot of little fixs (shadowing vars, file opening, error catchs, etc...)
  * [ldapconnector] Pool of ldap connections and implicit reconnect
  * [print] Fix special chars in passwords paths
  * [samba-util] Fix samdb parameters for new samba

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 16 Jun 2026 17:07:41 +0200

linuxmuster-tools7 (7.4.2) lmn74; urgency=medium

  * Little fixs for Linbo Docker project.  

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 26 Apr 2026 12:34:50 +0200

linuxmuster-tools7 (7.4.1) lmn74; urgency=medium

  * New package for 7.4.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 25 Apr 2026 18:09:43 +0200

linuxmuster-tools7 (7.3.43) lmn73; urgency=medium

  * Merge Linbo tools for Linbo Docker (@amoalani)  

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 25 Apr 2026 17:45:45 +0200

linuxmuster-tools7 (7.3.42) lmn73; urgency=medium

  * Remove LaTeX  templates from bootstrap to avoid lmnapi boot problems.
  * [ldapwriter] LMNPrinter class to join/quit printer groups. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 02 Apr 2026 00:00:50 +0200

linuxmuster-tools7 (7.3.41) lmn73; urgency=medium

  * [linbo] Get last sync datetime for a device with pxe boot.
  * [samba-util] Use native ldb to get and set credentials for devices. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 08 Mar 2026 21:15:28 +0100

linuxmuster-tools7 (7.3.40) lmn73; urgency=medium

  * [common] Check tmp dir and harden security.
  * [linbo] Fix read config. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 04 Mar 2026 14:22:17 +0100

linuxmuster-tools7 (7.3.39) lmn73; urgency=medium

  * [common] DomCert object to check certificates.
  * [ldapwriter] Set device password hashes. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 03 Mar 2026 16:54:34 +0100

linuxmuster-tools7 (7.3.38) lmn73; urgency=medium

  * [lmnfile] Fix semicolons in comments line. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 25 Feb 2026 11:27:15 +0100

linuxmuster-tools7 (7.3.37) lmn73; urgency=medium

  * [ldapreader] Remove webui permissions in rawuser response.
  * [ldapreader] Add endpoints for school- and global admins. 
  * [ldapreader] Add endpoints for school- and global bind users.
  * [ldapwriter] Fix multischool issues.
  * [linbo] Class for linbo-remote and build command. 
  * [linbo] New parser for start.conf.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 22 Feb 2026 18:07:51 +0100

linuxmuster-tools7 (7.3.36) lmn73; urgency=medium

  * [print] List all LaTeX templates. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 04 Feb 2026 20:59:03 +0100

linuxmuster-tools7 (7.3.35) lmn73; urgency=medium

  * [common] Human readable output for sophomorix status
  * [ldapreader] Add request to get raw users

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 01 Jan 2026 23:49:52 +0100

linuxmuster-tools7 (7.3.34) lmn73; urgency=medium

  * [common] Fix progress and last text in spinner 
  * [ldapconnector] Allow root in the Webui to use administrator account
  * [ldapreader] Get extraclasses
  * [smbclient] Basic tool for common operations. EXPERIMENTAL.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 30 Dec 2025 17:56:23 +0100

linuxmuster-tools7 (7.3.33) lmn73; urgency=medium

  * Multischool support for group sync 
  * [print] Use lmodern for more font compatibility

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 08 Dec 2025 20:45:37 +0100

linuxmuster-tools7 (7.3.32) lmn73; urgency=medium

  * Fix missing templates 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 07 Dec 2025 11:58:34 +0100

linuxmuster-tools7 (7.3.31) lmn73; urgency=medium

  * [ldapwriter] Only create new projects
  * [print] Fix current working directory 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 16 Nov 2025 13:52:23 +0100

linuxmuster-tools7 (7.3.30) lmn73; urgency=medium

  * [ldapwriter] Allow custom fields in schoolclasses  
  * [ldapwriter] Allow custom fields in groups
  * [ldapwriter] Create non existing projects
  * [lmnconfig] Fix LDAP domain component and context for complex domains 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 16 Nov 2025 12:00:17 +0100

linuxmuster-tools7 (7.3.29) lmn73; urgency=medium

  * [common] Add colors for ColorShell
  * [examples] Get list of teachers members of schoolclasses
  * [examples] ResetInternet: speed up call of all students
  * [ldapwriter] Allow custom fields in projects
  * [print] Add template manager (jinja and LaTeX)
  * [print] Add templates for students lists (DE, EN, FR)
  * [print] Print schoolclass' students list
  * [print] Support multipages
  * [samba] Avoid prefix shadowing in smbstatus

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 15 Nov 2025 13:07:01 +0100

linuxmuster-tools7 (7.3.28) lmn73; urgency=medium

  * [ldapreader] Add raw user model for quick response 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 08 Nov 2025 13:34:07 +0100

linuxmuster-tools7 (7.3.27) lmn73; urgency=medium

  * [ldapwriter] Fix logic for accumulating parent DNs in fill_members
    (@hermanntoast) 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 02 Nov 2025 21:47:41 +0100

linuxmuster-tools7 (7.3.26) lmn73; urgency=medium

  * Fix tmp data. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 27 Oct 2025 21:57:44 +0100

linuxmuster-tools7 (7.3.25) lmn73; urgency=medium

  * Not restarting others services during installation 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 23 Oct 2025 14:34:38 +0200

linuxmuster-tools7 (7.3.24) lmn73; urgency=medium

  * [common] Fix color names
  * [lmnfile] Fix paths 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 22 Oct 2025 10:42:17 +0200

linuxmuster-tools7 (7.3.23) lmn73; urgency=medium

  * [samba_util] Add room to SMBConnection 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 21 Oct 2025 14:40:14 +0200

linuxmuster-tools7 (7.3.22) lmn73; urgency=medium

  * [lmnconfig] Fix lmncli output 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 20 Oct 2025 21:08:39 +0200

linuxmuster-tools7 (7.3.21) lmn73; urgency=medium

  * More examples of use of ldapwriter 
  * Restarting API and Webui after each update
  * [common] Fix spinner and add progress parameter
  * [ldapwriter] Many shortcuts to manipulate multiple objects
  * [ldapwriter] Update groups types
  * [lmnconfig] Add server hostname and ip
  * [samba_util] Ignore connections with local server ip in smbstatus

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 19 Oct 2025 16:01:36 +0200

linuxmuster-tools7 (7.3.20) lmn73; urgency=medium

  * [ldapwriter] Fix creation of students subgroups 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 16 Oct 2025 18:39:02 +0200

linuxmuster-tools7 (7.3.19) lmn73; urgency=medium

  * [lmnfile] Autofix BOM in csv files 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 15 Oct 2025 22:37:47 +0200

linuxmuster-tools7 (7.3.18) lmn73; urgency=medium

  * [ldapreader] Get empty schoolclasses
  * [ldapreader] Get students list as CSV
  * [ldapreader] Get empty rooms
  * [ldapreader] Improvements for OU requests and devices checks
  * [ldapwriter] Writer for devices objects 
  * [ldapwriter] Aliases for all teachers, all students, etc ...
  * More examples

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 12 Oct 2025 21:08:34 +0200

linuxmuster-tools7 (7.3.17) lmn73; urgency=medium

  * [ldapconnector] Allow self-signed certificates (@hermanntoast) 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 24 Sep 2025 11:49:50 +0200

linuxmuster-tools7 (7.3.16) lmn73; urgency=medium

  * [ldapreader] Extend types for objects response
  * [ldapreader] Fix printers request
  * [lmnfile] Allow access to api config 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 23 Sep 2025 17:38:01 +0200

linuxmuster-tools7 (7.3.15) lmn73; urgency=medium

  * Move lmntools scripts to lmncli
  * [ldapreader] Use secure connection
  * [ldapreader] Get parents of student 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 14 Jul 2025 21:03:56 +0200

linuxmuster-tools7 (7.3.14) lmn73; urgency=medium

  * [sophomorix-hooks] Support for multischool
  * Add script lmntools-class to check schoolclasses groups memberships 
  * Add script lmntools-student to handle student's parents (get, add, remove)

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 30 Jun 2025 21:06:21 +0200

linuxmuster-tools7 (7.3.13) lmn73; urgency=medium

  * Fix typo in postinst-script. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 18 Jun 2025 12:49:12 +0200

linuxmuster-tools7 (7.3.12) lmn73; urgency=medium

  * Ensure directory structure for sophomorix-hooks. Multischool todo. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 08 Jun 2025 14:48:23 +0200

linuxmuster-tools7 (7.3.11) lmn73; urgency=medium

  * Ignore LDAP checks for new installation
  * Add dependency to sophomorix 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 08 Jun 2025 12:38:08 +0200

linuxmuster-tools7 (7.3.10) lmn73; urgency=medium

  * Hook scripts for sophomorix-add, etc...
  * [ldapwriter] Handle students groups like 7a-teachers, 7a-parents,
    7a-students 
  * [ldapwriter] Handle parents in student object
  * [ldapwriter] Handle children in user object
  * [ldapwriter] Fix writing of empty attributes

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Fri, 06 Jun 2025 09:13:08 +0200

linuxmuster-tools7 (7.3.9) lmn73; urgency=medium

  * Update requirements. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 25 May 2025 12:55:58 +0200

linuxmuster-tools7 (7.3.8) lmn73; urgency=medium

  * Migrate to venv.
  * [ldapwriter] Fix sophomorixType for new groups. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 25 May 2025 12:11:37 +0200

linuxmuster-tools7 (7.3.7) lmn73; urgency=medium

  * [ldapwriter] New writer for management group.
  * [ldapwriter] Support for multischool. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 18 May 2025 20:57:25 +0200

linuxmuster-tools7 (7.3.6) lmn73; urgency=medium

  * [ldapreader] Add support for staff members
  * [ldapreader] Allow space in schoolclass names
  * [ldapreader] Add more attributes support in models
  * [ldapwriter] Completely rewrite the Ldap writers for more flexibility
  * [ldapwriter] Automatically create subgroups for schoolclasses
    (7a-teachers, ...)
  * [ldapwriter] Handle memberships of groups
  * [lmnfile] Fieldnames for staff.csv

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 15 May 2025 21:16:22 +0200

linuxmuster-tools7 (7.3.5) lmn73; urgency=medium

  * [ldapreader] Request for all GPOs 
  * [ldapwriter] Improve parents checks and move workflow
  * [quotas] Improve quotas and shares listing

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 24 Apr 2025 12:13:14 +0200

linuxmuster-tools7 (7.3.4) lmn73; urgency=medium

  * [ldapwriter] Add parent utilities (rename, move, add, del  )
  * [common] Checks for parents groups
  * [common] Get last update log

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 31 Mar 2025 21:56:42 +0200

linuxmuster-tools7 (7.3.3) lmn73; urgency=medium

  * [common] Parse update, kill and log from sophomorix.
  * [common] Filter sophomorix per weeks, days,etc ...
  * [common] Fix MAC devices check
  * [devices] More checks about devices values
  * [ldapreader] Add parents filter
  * [ldapreader] Fix response for non existent users
  * [lmnconfig] Parsers for sophomorix.ini and sopohmorix.conf 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 17 Mar 2025 12:35:57 +0100

linuxmuster-tools7 (7.3.2) lmn73; urgency=medium

  * Update artifact to v4. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 02 Feb 2025 15:03:09 +0100

linuxmuster-tools7 (7.3.1) lmn73; urgency=medium

  * New package for lmn7.3

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 02 Feb 2025 14:56:48 +0100

linuxmuster-tools7 (7.2.48) lmn72; urgency=medium

  * [lmnconfig] Fix LDAP_CONTEXT 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 27 Jan 2025 11:44:18 +0100

linuxmuster-tools7 (7.2.47) lmn72; urgency=medium

  * Add documentation
  * Add examples
  * Rewrite logger
  * [ldapwriter] Add GroupWriter
  * [ldapwriter] Fix resetting thumbnailPhoto
  * [ldapwriter] Fix quota types 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 20 Jan 2025 12:29:04 +0100

linuxmuster-tools7 (7.2.46) lmn72-testing; urgency=medium

  * Use env var instead of option

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 30 Dec 2024 19:45:00 +0100

linuxmuster-tools7 (7.2.45) lmn72-testing; urgency=medium

  * Temporary fix for newer pip versions

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 30 Dec 2024 17:15:48 +0100

linuxmuster-tools7 (7.2.44) lmn72; urgency=medium

  * [common] Convert sophomorix time as human readable
  * [common] Check user's status in attic 
  * [ldapreader] Get all rooms and a specific room
  * [ldapreader] Fix subtree search in groups requests
  * [ldapwriter] Check devices hostnames
  * [ldapwriter] Add OU and CN in Ldap
  * [lmnconfig] Add samba, sophomorix and setup config
  * [lmnconfig] Add LDAP_CONTEXT and SAMBA_TLD

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 09 Dec 2024 16:46:40 +0100

linuxmuster-tools7 (7.2.43) lmn72; urgency=medium

  * [ldapreader] Fix some school specific requests
  * [ldapwriter] Remove old write functions
  * [ldapwriter] Move entry to new OU/DN
  * [ldapwriter] Add Objectwriter
  * [ldapwriter] Add / Remove member from subtree
  * [ldapwriter] Move device to new room
  * [ldapwriter] Rename device 
  * [samba] Read smb.conf with right delimiter (thanks @hermanntoast)

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 18 Nov 2024 18:10:27 +0100

linuxmuster-tools7 (7.2.42) lmn72; urgency=medium

  * [ldapconnector] Introduce new writers
  * [ldapconnector] Optimize requests time 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 03 Nov 2024 11:00:21 +0100

linuxmuster-tools7 (7.2.41) lmn72; urgency=medium

  * [ldapreader] Refactor with common parent methods
  * [ldapreader] Basic exports as json and csv
  * [quotas] Check quotas for DFS shares 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 07 Oct 2024 12:27:58 +0200

linuxmuster-tools7 (7.2.40) lmn72; urgency=medium

  * [ldapreader] Fix printer search
  * [samba] Load DFS shares 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 30 Sep 2024 21:55:30 +0200

linuxmuster-tools7 (7.2.39) lmn72; urgency=medium

  * [ldapreader] No customFields object for Webui import. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 29 Sep 2024 14:09:02 +0200

linuxmuster-tools7 (7.2.38) lmn72; urgency=medium

  * [ldapreader] Ignore SCHOOLMARKER for globaladmins. 
  * [ldapwriter] Fix delete attribute.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 28 Sep 2024 12:59:32 +0200

linuxmuster-tools7 (7.2.37) lmn72; urgency=medium

  * [ldapreader] Add dn filter and refactor url decorators
  * [ldapreader] Custom fields object as user attribute
  * [quotas] Better handle quotas errors 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 28 Sep 2024 10:42:30 +0200

linuxmuster-tools7 (7.2.36) lmn72; urgency=medium

  * [ldapreader] Get object from dn.
  * [ldapreader] Add common object model.
  * [ldapreader] Real ldap_reader and ldapconnector objects.
  * [ldapwriter] Add ldap entry, group or OU.
  * [ldapwriter] Delete entry.
  * [ldapwriter] Separate del and set methods for each model.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 19 Sep 2024 18:28:33 +0200

linuxmuster-tools7 (7.2.35) lmn72; urgency=medium

  * [ldapreader] Fix conflicts for parallel requests
  * [ldapreader] Missing members in projects from sophomorix output

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 07 Sep 2024 17:24:18 +0200

linuxmuster-tools7 (7.2.34) lmn72; urgency=medium

  * [ldapreader] asdict for user model
  * [ldapreader] Handle subdn for global search
  * [ldapreader] Add printer model and get all members
  * [ldapreader] Get from dn in router 
  * [ldapwriter] Setting list values

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 05 Sep 2024 21:16:07 +0200

linuxmuster-tools7 (7.2.33) lmn72; urgency=medium

  * [ldapreader] Add proxyAddresses und IntrinsicMulti1 to groups and projects.
  * [ldapreader] Differenciate AD group.
  * [ldapreader] Search for displayName too.
  * [ldapreader] Add management group to ldap_writer.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 24 Jul 2024 17:29:05 +0200

linuxmuster-tools7 (7.2.32) lmn72; urgency=medium

  * [ldapreader] Add displayName to LDAP objects 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 22 Jul 2024 18:49:44 +0200

linuxmuster-tools7 (7.2.31) lmn72; urgency=medium

  * [samba] Scan gz logs too 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 22 Jul 2024 18:03:25 +0200

linuxmuster-tools7 (7.2.30) lmn72; urgency=medium

  * [ldapreader] Add attributes to search answers 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 22 Jul 2024 17:21:45 +0200

linuxmuster-tools7 (7.2.29) lmn72; urgency=medium

  * [samba] Sort logs by reverse date 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 18 Jul 2024 18:21:58 +0200

linuxmuster-tools7 (7.2.28) lmn72; urgency=medium

  * [samba] Handle missing log level parameter 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 18 Jul 2024 18:16:14 +0200

linuxmuster-tools7 (7.2.27) lmn72; urgency=medium

  * [samba] Get last login 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 18 Jul 2024 16:06:24 +0200

linuxmuster-tools7 (7.2.26) lmn72; urgency=medium

  * [ldapreader] Getval for collections
  * [ldapreader] Difference between units and sophomorix-group
  * [ldapreader] Get projects with special chars 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 09 Jul 2024 12:29:09 +0200

linuxmuster-tools7 (7.2.25) lmn72; urgency=medium

  * [validator] Better terminology. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 13 May 2024 09:39:09 +0200

linuxmuster-tools7 (7.2.24) lmn72; urgency=medium

  * [ldapreader] Check if linuxmuster is configured. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 08 May 2024 15:13:19 +0200

linuxmuster-tools7 (7.2.23) lmn72; urgency=medium

  * Add string checker fot LMN objects names
  * [ldapreader] Export session as string
  * [ldapreader] Ignore global school parameter
  * [ldapreader] Get all management groups
  * [ldapwriter] Flag add=True to only add an entry

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 01 May 2024 23:34:25 +0200

linuxmuster-tools7 (7.2.22) lmn72; urgency=medium

  * [ldapreader] Add whenChanged user attribute
  * [quotas] Catch all samab errors 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 11 Apr 2024 13:22:59 +0200

linuxmuster-tools7 (7.2.21) lmn72; urgency=medium

  * [samba] Fix format size folder. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 06 Apr 2024 13:23:46 +0200

linuxmuster-tools7 (7.2.20) lmn72; urgency=medium

  * [ldapreader] Alias for school
  * [ldapreader] Fix wrong alias values with getval
  * [ldapreader] Fix management group in multischool env
  * [samba] Folder size
  * [samba] Folder tree as dict

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 30 Mar 2024 12:03:14 +0100

linuxmuster-tools7 (7.2.19) lmn72; urgency=medium

  * Case insensitive hostnames
  * User manager to handle passwords
  * Fix crash on LDAP server down
  * Add school parameter for group management 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 21 Mar 2024 08:56:32 +0100

linuxmuster-tools7 (7.2.18) lmn72; urgency=medium

  * [samba] Idempotence when adding member to group 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 13 Feb 2024 10:51:57 +0100

linuxmuster-tools7 (7.2.17) lmn72; urgency=medium

  * Add ldap writer
  * [ldapreader] Move to administrator account for extern import
  * [ldapreader] Add getval wrapper
  * [ldapreader] Get passwords list
  * [ldapreader] Get user quota
  * [ldapreader] Global ldap search 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 12 Feb 2024 10:58:45 +0100

linuxmuster-tools7 (7.2.16) lmn72; urgency=medium

  * [samba] Add group manager 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 08 Feb 2024 13:13:23 +0100

linuxmuster-tools7 (7.2.15) lmn72; urgency=medium

  * [ldapreader] Search with first and last names.
  * [quota] List user files and directories sizes
  * [samba] Add samba constants like SAMBA_WORKGROUP.
  * [samba] Fix library conflict.

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Mon, 01 Jan 2024 21:57:48 +0100

linuxmuster-tools7 (7.2.14) lmn72; urgency=medium

  * [samba] Fix undefined gpos var. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 19 Dec 2023 16:09:34 +0100

linuxmuster-tools7 (7.2.13) lmn72; urgency=medium

  * [linbo] Read qdiff date properly. 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Fri, 08 Dec 2023 10:00:28 +0100

linuxmuster-tools7 (7.2.12) lmn72; urgency=medium

  * [devices] Llist rooms and groups
  * [ldapreader] Add exam informations
  * [ldapreader] Speed up requests with attributes
  * [linbo] Add last sync informations
 
 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 26 Nov 2023 16:13:22 +0100

linuxmuster-tools7 (7.2.11) lmn72; urgency=medium

  * [dns] Add DNS manager
  * [ldapreader] Create empty object on empty response 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 21 Nov 2023 18:37:04 +0100

linuxmuster-tools7 (7.2.10) lmn72; urgency=medium

  * Allow uppercases in projects names 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 19 Nov 2023 18:36:27 +0100

linuxmuster-tools7 (7.2.9) lmn72; urgency=medium

  * Better error message

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sun, 19 Nov 2023 15:11:29 +0100

linuxmuster-tools7 (7.2.8) lmn72; urgency=medium

  * Add devices manager
  * Add Upchecker to check if clients are online
  * [ldapreader] Allow hyphen and underscore in schoolclasses names 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 16 Nov 2023 16:50:04 +0100

linuxmuster-tools7 (7.2.7) lmn72; urgency=medium

  * [samba] Move to simply samba
  * [samba] Prefix for multischool
  * [samba] Parser for smbstatus   

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 26 Oct 2023 10:25:41 +0200

linuxmuster-tools7 (7.2.6) lmn72; urgency=medium

  * [ldapreader] Possibly fix ldap interrupted calls 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Fri, 20 Oct 2023 09:08:16 +0200

linuxmuster-tools7 (7.2.5) lmn72; urgency=medium

  * [ldapreader] Add GSSAPI support 
  * [ldapreader] Requests for exam users
  * [samba-tool] Better files organisation 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 14 Oct 2023 10:45:50 +0200

linuxmuster-tools7 (7.2.4) lmn72; urgency=medium

  * [ldapreader] Asdict method for projects
  * [ldapreader] Add admins and members count in projects
  * [ldapreader] Add printers to user model
  * [ldapreader] Add members to group model
  * [ldapreader] Add isAdmin bool to user model
  * [samba-tool] Use drive dataclass model and drivemanager 
  * [samba-tool] Export drives as list
  * [samba-tool] Parse filters in policy
  * [samba-tool] Catch path errors

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 28 Sep 2023 15:57:21 +0200

linuxmuster-tools7 (7.2.3) lmn72; urgency=medium

  * [ldapreader] Add LMNGroup and groups requests
  * [ldapreader] Add printers requests
  * [ldapreader] Add multischool support for subdn search
  * [ldapreader] Sort schoolclasses
  * [linbo] Fix backup timestamp
  * [linbo] Catch backup existing directory error

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Tue, 19 Sep 2023 22:06:36 +0200

linuxmuster-tools7 (7.2.2) lmn72; urgency=medium

  * [ldapreader] Add aliases for dn
  * [ldapreader] Get all members and admins of a project 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Thu, 14 Sep 2023 13:49:19 +0200

linuxmuster-tools7 (7.2.1) lmn72; urgency=medium

  * Integration von ldapreader, samba-tools, lmnfile and linbo manager.   

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Sat, 02 Sep 2023 16:50:24 +0200

linuxmuster-tools7 (0.0.1) lmn72; urgency=medium

  * First test package 

 -- Arnaud Kientz <arnaud@linuxmuster.net>  Wed, 02 Aug 2023 12:31:31 +0200
