|
- {% from "users/map.jinja" import users with context -%}
-
- include:
- - users
-
- {% set userfile_dirs = salt['cp.list_master_dirs'](prefix='users/files/user/') -%}
- {%- for username, user in salt['pillar.get']('users', {}).items() if (user.absent is not defined or not user.absent) -%}
- {%- set current = salt.user.info(username) -%}
- {%- set user_files = salt['pillar.get'](('users:' ~ username ~ ':user_files'), {'enabled': False}) -%}
- {%- set user_group = salt['pillar.get'](('users:' ~ username ~ ':prime_group:name'), username) -%}
- {%- set user_home = salt['pillar.get'](('users:' ~ username ~ ':home'), current.get('home', '/home/' ~ username )) -%}
- {%- set user_files_template = salt['pillar.get'](('users:' ~ username ~ ':user_files:template'), None) -%}
- {%- set user_files_file_mode = salt['pillar.get'](('users:' ~ username ~ ':user_files:file_mode'), False) -%}
- {%- set user_files_dir_mode = salt['pillar.get'](('users:' ~ username ~ ':user_files:dir_mode'), False) -%}
- {%- set user_files_sym_mode = salt['pillar.get'](('users:' ~ username ~ ':user_files:sym_mode'), False) -%}
- {%- set user_files_exclude_pat = salt['pillar.get'](('users:' ~ username ~ ':user_files:exclude_pat'), False) -%}
- {%- if user_files.enabled -%}
-
- {%- if user_files.source is defined -%}
- {%- if user_files.source.startswith('salt://') -%}
- {%- set file_source = user_files.source -%}
- {%- else -%}
- {%- set file_source = ('salt://' ~ user.user_files.source) -%}
- {%- endif -%}
- {%- set skip_user = False -%}
- {%- else -%}
- {%- if ('users/files/user/' ~ username) in userfile_dirs -%}
- {%- set file_source = ('salt://users/files/user/' ~ username) -%}
- {%- set skip_user = False -%}
- {%- else -%}
- {%- set skip_user = True -%}
- {%- endif -%}
- {%- endif -%}
-
- {%- if not skip_user %}
- users_userfiles_{{ username }}_recursive:
- file.recurse:
- - name: {{ user_home }}
- - source: {{ file_source }}
- - user: {{ username }}
- - group: {{ user_group }}
- {% if user_files_template -%}
- - template: {{ user_files_template }}
- {% endif -%}
- - clean: False
- {% if user_files_file_mode -%}
- - file_mode: {{ user_files_file_mode }}
- {% endif -%}
- {% if user_files_dir_mode -%}
- - dir_mode: {{ user_files_dir_mode }}
- {% endif -%}
- {% if user_files_sym_mode -%}
- - sym_mode: {{ user_files_sym_mode }}
- {% endif -%}
- {% if user_files_exclude_pat -%}
- - exclude_pat: "{{ user_files_exclude_pat }}"
- {% endif -%}
- - include_empty: True
- - keep_symlinks: True
- - require:
- - user: users_{{ username }}_user
- - file: users_{{ username }}_user
- {% endif -%}
-
- {%- endif -%}
- {%- endfor -%}
|