/*
SSSD
IPA Identity Backend Module for views and overrides
Authors:
Sumit Bose <sbose@redhat.com>
Copyright (C) 2014 Red Hat
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "util/strtonum.h"
#include "providers/ldap/sdap_async.h"
struct ipa_options *ipa_opts,
struct dp_id_data *ar,
char **override_filter)
{
char *filter;
char *endptr;
char *cert_filter;
int ret;
char *shortname;
char *sanitized_name;
switch (ar->filter_type) {
case BE_FILTER_NAME:
return ret;
}
return ret;
}
case BE_REQ_USER:
case BE_REQ_INITGROUPS:
break;
case BE_REQ_GROUP:
break;
case BE_REQ_USER_AND_GROUP:
break;
default:
ar->entry_type);
return EINVAL;
}
break;
case BE_FILTER_IDNUM:
errno = 0;
ar->filter_value);
return EINVAL;
}
case BE_REQ_USER:
case BE_REQ_INITGROUPS:
id);
break;
case BE_REQ_GROUP:
id);
break;
case BE_REQ_USER_AND_GROUP:
id,
id);
break;
default:
"Unexpected entry type [%d] for id filter.\n",
ar->entry_type);
return EINVAL;
}
break;
case BE_FILTER_SECID:
ar->filter_value);
} else {
"Unexpected entry type [%d] for SID filter.\n",
ar->entry_type);
return EINVAL;
}
break;
case BE_FILTER_UUID:
ar->filter_value);
} else {
"Unexpected entry type [%d] for UUID filter.\n",
ar->entry_type);
return EINVAL;
}
break;
case BE_FILTER_CERT:
"sss_cert_derb64_to_ldap_filter failed.\n");
return ret;
}
} else {
"Unexpected entry type [%d] for certificate filter.\n",
ar->entry_type);
return EINVAL;
}
break;
default:
return EINVAL;
}
return ENOMEM;
}
return EOK;
}
const char *domain_name,
int type,
struct dp_id_data **_ar)
{
return ENOMEM;
}
switch (type) {
case BE_REQ_BY_SECID:
break;
case BE_REQ_BY_UUID:
break;
case BE_REQ_USER:
break;
default:
return EINVAL;
}
return ENOMEM;
}
return EOK;
}
const char *domain_name,
struct dp_id_data **_ar)
{
_ar);
}
const char *domain_name,
struct dp_id_data **_ar)
{
_ar);
}
const char *user_name,
const char *domain_name,
struct dp_id_data **_ar)
{
_ar);
}
struct ipa_get_ad_override_state {
const char *ipa_realm;
const char *ipa_view_name;
int dp_error;
char *filter;
};
struct ipa_get_ad_override_state *state);
struct tevent_context *ev,
struct sdap_id_ctx *sdap_id_ctx,
struct ipa_options *ipa_options,
const char *ipa_realm,
const char *view_name,
struct dp_id_data *ar)
{
int ret;
return NULL;
}
goto done;
}
if (is_default_view(view_name)) {
} else {
}
goto done;
}
goto done;
}
return req;
done:
} else {
}
return req;
}
{
struct tevent_req);
struct ipa_get_ad_override_state);
int ret;
char *basedn;
char *search_base;
"No IPA server is available, going offline\n");
} else {
"Failed to connect to IPA server: [%d](%s)\n",
}
goto fail;
}
goto fail;
}
if (search_base == NULL) {
goto fail;
}
goto fail;
}
"Searching for overrides in view [%s] with filter [%s].\n",
false);
goto fail;
}
return;
fail:
return;
}
{
struct tevent_req);
struct ipa_get_ad_override_state);
int ret;
goto fail;
}
if (reply_count == 0) {
return;
} else if (reply_count > 1) {
"Found [%zu] overrides with filter [%s], expected only 1.\n",
goto fail;
}
goto fail;
}
return;
fail:
return;
}
struct ipa_get_ad_override_state *state)
{
int ret;
char *fqdn;
false, &name);
return EOK; /* Does not override name */
return ret;
}
return ENOMEM;
}
return EOK;
}
struct sysdb_attrs **override_attrs)
{
struct ipa_get_ad_override_state);
if (dp_error_out != NULL) {
}
if (override_attrs != NULL) {
}
return EOK;
}