bcb4e51a409d94ae670de96afb8483a4f7855294Stephan Bosch/* Copyright (c) 2003-2018 Dovecot authors, see the included COPYING file */
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainenuserdb_template_build(pool_t pool, const char *userdb_name, const char *args)
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen const char *const *tmp, *key, *value, *nonull_value;
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen tmpl = p_new(pool, struct userdb_template, 1);
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen p_array_init(&tmpl->args, pool, str_array_length(tmp));
2bd58dc6e7c991c86713a4b91f9db468abe734a4Aki Tuomi i_fatal("Invalid userdb template %s - key must not be empty",
0f5dc4da3982053036be65190e44bf28a67b1ca2Timo Sirainenint userdb_template_export(struct userdb_template *tmpl,
0f5dc4da3982053036be65190e44bf28a67b1ca2Timo Sirainen const char **error_r)
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen table = auth_request_get_var_expand_table(auth_request, NULL);
0f5dc4da3982053036be65190e44bf28a67b1ca2Timo Sirainen if (auth_request_var_expand_with_table(str, args[i+1],
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen auth_request_set_userdb_field(auth_request, args[i], value);
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainenbool userdb_template_remove(struct userdb_template *tmpl,
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainenbool userdb_template_is_empty(struct userdb_template *tmpl)
38f53f9d3eda5002b3478f7679d352ee4da60d2fAki Tuomiconst char *const *userdb_template_get_args(struct userdb_template *tmpl, unsigned int *count_r)