App store and web update are now disabled. Apps need to be installed with as Debian packages as well.
55 lines
2.5 KiB
YAML
55 lines
2.5 KiB
YAML
- name: manage group folders
|
|
block:
|
|
# Get list of existing group folders and set them as fact
|
|
- name: get list of group folders
|
|
check_mode: no
|
|
command: 'nextcloud-occ groupfolders:list --output json'
|
|
register: existing_group_folders
|
|
|
|
- name: store existing group folders
|
|
set_fact:
|
|
group_folders: "{{ existing_group_folders.stdout | from_json }}"
|
|
|
|
# Create group folders that did not exist yet
|
|
- name: create non-existing folders
|
|
command: "nextcloud-occ groupfolders:create {{ item.name }}"
|
|
with_items: "{{ nextcloud.groupfolders }}"
|
|
when: group_folders | selectattr(search_key, 'equalto', search_val) | list | count == 0
|
|
vars:
|
|
search_key: "mount_point"
|
|
search_val: "{{ item.name }}"
|
|
|
|
# Get list of existing group folders AGAIN and set them as fact
|
|
- name: get list of group folders again
|
|
check_mode: no
|
|
command: 'nextcloud-occ groupfolders:list --output json'
|
|
register: existing_group_folders
|
|
|
|
- name: store existing group folders
|
|
set_fact:
|
|
group_folders: "{{ existing_group_folders.stdout | from_json }}"
|
|
|
|
# Set quota for folders where it does not match
|
|
- name: set group folder quota
|
|
command: "nextcloud-occ groupfolders:quota {{ (group_folders | selectattr(search_key, 'equalto', search_val) | list | first).id }} {{ item.quota }}"
|
|
with_items: "{{ nextcloud.groupfolders }}"
|
|
when: (group_folders | selectattr(search_key, 'equalto', search_val) | list | first).quota != item.quota
|
|
vars:
|
|
search_key: "mount_point"
|
|
search_val: "{{ item.name }}"
|
|
|
|
# We search for some random name so that the LDAP data cache gets updated
|
|
- name: update LDAP cache
|
|
command: "nextcloud-occ ldap:search random_string_to_update_cache"
|
|
changed_when: False
|
|
|
|
# Set folder permissions if they are not correct yet
|
|
- name: Set folder permissions
|
|
command: "nextcloud-occ groupfolders:group {{ (group_folders | selectattr(search_key, 'equalto', search_val) | list | first).id }} {{ item.1 }} write share delete"
|
|
# Only execute when the permissions of the group for that folder are not "31" (31 is write, share, delete)
|
|
when: ((group_folders | selectattr(search_key, 'equalto', search_val) | list | first).groups[item.1] is undefined) or
|
|
((group_folders | selectattr(search_key, 'equalto', search_val) | list | first).groups[item.1] != 31)
|
|
loop: "{{ nextcloud.groupfolders | subelements('groups') }}"
|
|
vars:
|
|
search_key: "mount_point"
|
|
search_val: "{{ item.0.name }}"
|