131ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone// Copyright 2015 The Chromium OS Authors. All rights reserved. 231ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone// Use of this source code is governed by a BSD-style license that can be 331ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone// found in the LICENSE file. 431ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone 5fed60b0c640828b320f56293c8bebc43fd2b1da8Alex Vakulenko#ifndef LIBBRILLO_BRILLO_USERDB_UTILS_H_ 6fed60b0c640828b320f56293c8bebc43fd2b1da8Alex Vakulenko#define LIBBRILLO_BRILLO_USERDB_UTILS_H_ 731ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone 831ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone#include <sys/types.h> 931ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone 1031ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone#include <string> 1131ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone 1231ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone#include <base/compiler_specific.h> 1331ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone#include <base/macros.h> 149ed0cab99f18acb3570a35e9408f24355f6b8324Alex Vakulenko#include <brillo/brillo_export.h> 1531ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone 169ed0cab99f18acb3570a35e9408f24355f6b8324Alex Vakulenkonamespace brillo { 1731ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masonenamespace userdb { 1831ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone 1931ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone// Looks up the UID and GID corresponding to |user|. Returns true on success. 2031ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone// Passing nullptr for |uid| or |gid| causes them to be ignored. 219ed0cab99f18acb3570a35e9408f24355f6b8324Alex VakulenkoBRILLO_EXPORT bool GetUserInfo( 2231ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone const std::string& user, uid_t* uid, gid_t* gid) WARN_UNUSED_RESULT; 2331ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone 2431ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone// Looks up the GID corresponding to |group|. Returns true on success. 2531ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone// Passing nullptr for |gid| causes it to be ignored. 269ed0cab99f18acb3570a35e9408f24355f6b8324Alex VakulenkoBRILLO_EXPORT bool GetGroupInfo( 2731ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone const std::string& group, gid_t* gid) WARN_UNUSED_RESULT; 2831ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone 2931ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone} // namespace userdb 309ed0cab99f18acb3570a35e9408f24355f6b8324Alex Vakulenko} // namespace brillo 3131ca5a376ac6d04817a7caf4d8a6e8b5994289a8Chris Masone 32fed60b0c640828b320f56293c8bebc43fd2b1da8Alex Vakulenko#endif // LIBBRILLO_BRILLO_USERDB_UTILS_H_ 33