<?php declare(strict_types=1); namespace JKingWeb\NewsSync\User; Interface Driver { const FUNC_NOT_IMPLEMENTED = 0; const FUNC_INTERNAL = 1; const FUNC_EXTERNAL = 2; const RIGHTS_NONE = 0; const RIGHTS_DOMAIN_MANAGER = 25; const RIGHTS_DOMAIN_ADMIN = 50; const RIGHTS_GLOBAL_MANAGER = 75; const RIGHTS_GLOBAL_ADMIN = 100; static function create(\JKingWeb\NewsSync\RuntimeData $data): Driver; static function driverName(): string; function driverFunctions(string $function = null); function auth(string $user, string $password): bool; function authorize(string $affectedUser, string $action); function userExists(string $user): bool; function userAdd(string $user, string $password = null): bool; function userRemove(string $user): bool; function userList(string $domain = null): array; function userPasswordSet(string $user, string $newPassword, string $oldPassword): bool; function userPropertiesGet(string $user): array; function userPropertiesSet(string $user, array $properties): array; function userRightsGet(string $user): int; function userRightsSet(string $user, int $level): bool; }