Exemple #1
0
/*
 * Public interface for adding groups
 */
int groupadd(TALLOC_CTX *mem_ctx,
            struct sysdb_ctx *sysdb,
            struct ops_ctx *data)
{
    int ret;

    ret = sysdb_add_group(sysdb, data->name, data->gid, NULL, 0);
    if (ret == EOK) {
        flush_nscd_cache(mem_ctx, NSCD_DB_GROUP);
    }
    return ret;
}
/*
 * Public interface for adding groups
 */
int groupadd(struct sysdb_ctx *sysdb,
             struct ops_ctx *data)
{
    int ret;

    ret = sysdb_add_group(sysdb, data->domain,
                          data->name, data->gid, NULL, 0, 0);
    if (ret == EOK) {
        flush_nscd_cache(NSCD_DB_GROUP);
    }
    return ret;
}
Exemple #3
0
void setup_simple_group(void)
{
    errno_t ret;

    setup_simple();

    /* Add test users u1 and u2 that would be members of test groups
     * g1 and g2 respectively */
    ret = sysdb_add_group(test_ctx->ctx->domain, "pvt", 999, NULL, 0, 0);
    fail_if(ret != EOK, "Could not add private group %s", strerror(ret));

    ret = sysdb_store_user(test_ctx->ctx->domain,
                           "u1", NULL, 123, 999, "u1", "/home/u1",
                           "/bin/bash", NULL, NULL, NULL, -1, 0);
    fail_if(ret != EOK, "Could not add u1");

    ret = sysdb_store_user(test_ctx->ctx->domain,
                           "u2", NULL, 456, 999, "u1", "/home/u1",
                           "/bin/bash", NULL, NULL, NULL, -1, 0);
    fail_if(ret != EOK, "Could not add u2");

    ret = sysdb_store_user(test_ctx->ctx->domain,
                           "u3", NULL, 789, 999, "u1", "/home/u1",
                           "/bin/bash", NULL, NULL, NULL, -1, 0);
    fail_if(ret != EOK, "Could not add u3");

    ret = sysdb_add_group(test_ctx->ctx->domain, "g1", 321, NULL, 0, 0);
    fail_if(ret != EOK, "Could not add g1");

    ret = sysdb_add_group(test_ctx->ctx->domain, "g2", 654, NULL, 0, 0);
    fail_if(ret != EOK, "Could not add g2");

    ret = sysdb_add_group_member(test_ctx->ctx->domain,
                                 "g1", "u1", SYSDB_MEMBER_USER, false);
    fail_if(ret != EOK, "Could not add u1 to g1");

    ret = sysdb_add_group_member(test_ctx->ctx->domain,
                                 "g2", "u2", SYSDB_MEMBER_USER, false);
    fail_if(ret != EOK, "Could not add u2 to g2");
}
Exemple #4
0
/*
 * Public interface for adding groups
 */
int groupadd(struct ops_ctx *data)
{
    int ret;

    data->sysdb_fqname = sss_create_internal_fqname(data,
                                                    data->name,
                                                    data->domain->name);
    if (data->sysdb_fqname == NULL) {
        return ENOMEM;
    }

    ret = sysdb_add_group(data->domain, data->sysdb_fqname, data->gid, NULL, 0, 0);
    if (ret == EOK) {
        flush_nscd_cache(NSCD_DB_GROUP);
    }
    return ret;
}
Exemple #5
0
static void create_groups(TALLOC_CTX *mem_ctx,
                          struct sss_domain_info *domain)
{
    errno_t ret;
    char *fqname;

    for (int i = 0; i < 2; i++) {
        fqname = sss_create_internal_fqname(mem_ctx,
                                            groups[i].name,
                                            domain->name);
        assert_non_null(fqname);

        ret = sysdb_add_group(domain, fqname, groups[i].gid,
                              NULL, 30, time(NULL));
        talloc_free(fqname);
        assert_int_equal(ret, EOK);
    }
}