File: //usr/local/plugin/user_set/synology_foto_user_set.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright (c) 2000 - present Synology Inc. All rights reserved.
from os import environ
from importlib.util import spec_from_file_location, module_from_spec
module_name = "common"
module_path = "/var/packages/SynologyPhotos/target/sdk-plugin/common.py"
spec = spec_from_file_location(module_name, module_path)
common = module_from_spec(spec)
spec.loader.exec_module(common)
class UserSet(common.PluginRunner):
# @override
def post(self):
if "0" != environ.get("RESULT"):
return None
send_reload_priv = False
rename_user = []
new_user = []
exprie_change_user = []
n_items = int(environ.get("NITEMS"))
for i in range(1, n_items + 1):
uid = environ.get("UID_{}".format(i))
user_name = environ.get("USER_NAME_{}".format(i))
origin_user_name = environ.get("ORIGIN_USER_NAME_{}".format(i))
expire_state = environ.get("EXPIRE_STATE_{}".format(i))
result = environ.get("USER_OP_RESULT_{}".format(i))
if user_name != origin_user_name and origin_user_name is not None:
rename_user.append(
{
"uid": uid,
"user_name": user_name,
"origin_user_name": origin_user_name,
}
)
if origin_user_name is None:
new_user.append(uid)
send_reload_priv = True
if expire_state != "unchanged":
exprie_change_user.append(
{"uid": uid, "enable": expire_state == "enabled"}
)
send_reload_priv = True
if len(rename_user) > 0:
self.send_command("user-rename", rename_user)
if len(exprie_change_user) > 0:
self.send_command("user-enable-change", exprie_change_user)
if len(new_user) > 0:
self.send_command("user-add", {"uid": new_user,})
if send_reload_priv:
self.send_command("reload-app-priv")
common.MainBody(UserSet())