mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
user imports: more attempts to improve semantics
This commit is contained in:
parent
b9e231241b
commit
5c9fd158d9
1 changed files with 18 additions and 20 deletions
|
@ -749,34 +749,34 @@ def user_import(operation_logger, csvfile, update=False, delete=False):
|
||||||
result['errors'] += 1
|
result['errors'] += 1
|
||||||
logger.error(user + ': ' + str(exception))
|
logger.error(user + ': ' + str(exception))
|
||||||
|
|
||||||
def update(user, info=False):
|
def update(new_infos, old_infos=False):
|
||||||
remove_alias = None
|
remove_alias = None
|
||||||
remove_forward = None
|
remove_forward = None
|
||||||
if info:
|
if info:
|
||||||
user['mail'] = None if info['mail'] == user['mail'] else user['mail']
|
new_infos['mail'] = None if old_infos['mail'] == new_infos['mail'] else new_infos['mail']
|
||||||
remove_alias = list(set(info['mail-alias']) - set(user['mail-alias']))
|
remove_alias = list(set(old_infos['mail-alias']) - set(new_infos['mail-alias']))
|
||||||
remove_forward = list(set(info['mail-forward']) - set(user['mail-forward']))
|
remove_forward = list(set(old_infos['mail-forward']) - set(new_infos['mail-forward']))
|
||||||
user['mail-alias'] = list(set(user['mail-alias']) - set(info['mail-alias']))
|
new_infos['mail-alias'] = list(set(new_infos['mail-alias']) - set(old_infos['mail-alias']))
|
||||||
user['mail-forward'] = list(set(user['mail-forward']) - set(info['mail-forward']))
|
new_infos['mail-forward'] = list(set(new_infos['mail-forward']) - set(old_infos['mail-forward']))
|
||||||
for group, infos in user_group_list()["groups"].items():
|
for group, infos in user_group_list()["groups"].items():
|
||||||
if group == "all_users":
|
if group == "all_users":
|
||||||
continue
|
continue
|
||||||
# If the user is in this group (and it's not the primary group),
|
# If the user is in this group (and it's not the primary group),
|
||||||
# remove the member from the group
|
# remove the member from the group
|
||||||
if user['username'] != group and user['username'] in infos["members"]:
|
if new_infos['username'] != group and new_infos['username'] in infos["members"]:
|
||||||
user_group_update(group, remove=user['username'], sync_perm=False, from_import=True)
|
user_group_update(group, remove=new_infos['username'], sync_perm=False, from_import=True)
|
||||||
|
|
||||||
user_update(user['username'],
|
user_update(new_infos['username'],
|
||||||
user['firstname'], user['lastname'],
|
new_infos['firstname'], new_infos['lastname'],
|
||||||
user['mail'], user['password'],
|
new_infos['mail'], new_infos['password'],
|
||||||
mailbox_quota=user['mailbox-quota'],
|
mailbox_quota=new_infos['mailbox-quota'],
|
||||||
mail=user['mail'], add_mailalias=user['mail-alias'],
|
mail=new_infos['mail'], add_mailalias=new_infos['mail-alias'],
|
||||||
remove_mailalias=remove_alias,
|
remove_mailalias=remove_alias,
|
||||||
remove_mailforward=remove_forward,
|
remove_mailforward=remove_forward,
|
||||||
add_mailforward=user['mail-forward'], from_import=True)
|
add_mailforward=new_infos['mail-forward'], from_import=True)
|
||||||
|
|
||||||
for group in user['groups']:
|
for group in new_infos['groups']:
|
||||||
user_group_update(group, add=user['username'], sync_perm=False, from_import=True)
|
user_group_update(group, add=new_infos['username'], sync_perm=False, from_import=True)
|
||||||
|
|
||||||
users = user_list(CSV_FIELDNAMES)['users']
|
users = user_list(CSV_FIELDNAMES)['users']
|
||||||
operation_logger.start()
|
operation_logger.start()
|
||||||
|
@ -809,8 +809,6 @@ def user_import(operation_logger, csvfile, update=False, delete=False):
|
||||||
on_failure(user['username'], e)
|
on_failure(user['username'], e)
|
||||||
progress("Creation")
|
progress("Creation")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
permission_sync_to_user()
|
permission_sync_to_user()
|
||||||
app_ssowatconf()
|
app_ssowatconf()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue