// Copyright 2015 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef LIBBRILLO_BRILLO_USERDB_UTILS_H_
#define LIBBRILLO_BRILLO_USERDB_UTILS_H_

#include <sys/types.h>

#include <string>

#include <base/compiler_specific.h>
#include <base/macros.h>
#include <brillo/brillo_export.h>

namespace brillo {
namespace userdb {

// Looks up the UID and GID corresponding to |user|. Returns true on success.
// Passing nullptr for |uid| or |gid| causes them to be ignored.
BRILLO_EXPORT bool GetUserInfo(
    const std::string& user, uid_t* uid, gid_t* gid) WARN_UNUSED_RESULT;

// Looks up the GID corresponding to |group|. Returns true on success.
// Passing nullptr for |gid| causes it to be ignored.
BRILLO_EXPORT bool GetGroupInfo(
    const std::string& group, gid_t* gid) WARN_UNUSED_RESULT;

}  // namespace userdb
}  // namespace brillo

#endif  // LIBBRILLO_BRILLO_USERDB_UTILS_H_