Exemplo n.º 1
0
static gfarm_error_t
usage_user_all()
{
	struct gfarm_user_info *users;
	gfarm_error_t e, e_save = GFARM_ERR_NO_ERROR;
	int nusers, i, success = 0;

	e = gfm_client_user_info_get_all(gfm_server, &nusers, &users);
	if (e != GFARM_ERR_NO_ERROR) {
		fprintf(stderr, "%s: gfm_client_user_info_get_all: %s\n",
			program_name, gfarm_error_string(e));
		return (e);
	}

	print_header_user();
	for (i = 0; i < nusers; i++) {
		e = print_usage_user(users[i].username);
		if (e == GFARM_ERR_NO_ERROR)
			success++;
		else {
			/* GFARM_ERR_NO_SUCH_OBJECT is preferred */
			if (e == GFARM_ERR_NO_SUCH_OBJECT)
				e_save = e;
			if (e_save == GFARM_ERR_NO_ERROR)
				e_save = e;
		}
		gfarm_user_info_free(&users[i]);
	}
	free(users);

	if (success > 0)
		return (GFARM_ERR_NO_ERROR);
	else
		return (e_save);
}
Exemplo n.º 2
0
static gfarm_error_t
gfarm_set_global_user_by_gsi(void)
{
	gfarm_error_t e = GFARM_ERR_NO_ERROR;
#ifdef HAVE_GSI
	struct gfarm_user_info user;
	char *gsi_dn;

	/* Global user name determined by the distinguished name. */
	gsi_dn = gfarm_gsi_client_cred_name();
	if (gsi_dn != NULL) {
		e = gfm_client_user_info_get_by_gsi_dn(gfarm_metadb_server,
			gsi_dn, &user);
		if (e == GFARM_ERR_NO_ERROR) {
			e = gfarm_set_global_username(user.username);
			gfarm_user_info_free(&user);
		}
	}
#endif
	return (e);
}