Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef SERVICES_AUTHENTICATION_ACCOUNTS_DB_MANAGER_H_ | |
| 6 #define SERVICES_AUTHENTICATION_ACCOUNTS_DB_MANAGER_H_ | |
| 7 | |
| 8 #include <type_traits> | |
| 9 | |
| 10 #include "base/macros.h" | |
| 11 #include "mojo/services/files/interfaces/files.mojom.h" | |
| 12 #include "services/authentication/authentication_impl_db.mojom.h" | |
| 13 | |
| 14 namespace authentication { | |
| 15 | |
| 16 // Implementation of user account management service on systems like FNL. This | |
| 17 // uses native mojo files service as the underlying mechanism to store user | |
| 18 // credentials and supports operations such as to add a new user account, update | |
| 19 // existing user credentials and fetching current credentials for a given user. | |
| 20 class AccountsDbManager { | |
| 21 public: | |
| 22 AccountsDbManager(); | |
| 23 explicit AccountsDbManager(const mojo::files::DirectoryPtr directory); | |
|
qsr
2016/02/16 14:17:06
Can you add some comment about those 2 constructor
ukode
2016/02/26 21:35:50
Got rid of one constructor.
| |
| 24 ~AccountsDbManager(); | |
| 25 // Updates or adds new auth credentials for a given user account. | |
| 26 void UpdateAccount(const mojo::String& username, | |
| 27 const mojo::String& account_data); | |
| 28 // Fetches auth credentials for a given user account. | |
| 29 mojo::String GetAccountDataForUser(const mojo::String& username); | |
| 30 // Fetches auth credentials for all user accounts. | |
| 31 mojo::String GetAllUserAccounts(); | |
|
qsr
2016/02/16 14:17:06
What is the return value?
ukode
2016/02/26 21:35:50
Made this to return an array of usernames instead.
| |
| 32 // Returns previously used account name for the given application or null if | |
| 33 // not found. | |
| 34 mojo::String GetAuthorizedUserForApp(mojo::String app_url); | |
| 35 // Updates the grants database for the given application and username. | |
| 36 void UpdateAuthorization(mojo::String app_url, mojo::String username); | |
| 37 | |
| 38 private: | |
| 39 // Generates new contents of the accounts database during an update operation. | |
| 40 // Performs one of the two operations: | |
| 41 // 1. If the user already exists, updates the existing record in database. | |
| 42 // 2. If its a new user, adds a new record to the existing database content. | |
| 43 mojo::String GetUpdatedDbContents(const mojo::String& username, | |
| 44 const mojo::String& new_account_data, | |
| 45 bool user_exists); | |
| 46 // Populates contents with existing user credentials. | |
| 47 void Initialize(); | |
| 48 // Reads from credentials file and populates in-memory contents cache. | |
| 49 void OnReadResponse(const mojo::files::Error error, | |
| 50 const mojo::Array<uint8_t> bytes_read); | |
| 51 // Parses response from credentials file write operation | |
| 52 void OnWriteResponse(const mojo::files::Error error, | |
| 53 const uint32_t num_bytes_written); | |
| 54 // Reads from auth file and populates in-memory grants cache. | |
| 55 void OnAuthFileReadResponse(const mojo::files::Error error, | |
| 56 const mojo::Array<uint8_t> bytes_read); | |
| 57 // Parses response from auth file write operation | |
| 58 void OnAuthFileWriteResponse(const mojo::files::Error error, | |
| 59 const uint32_t num_bytes_written); | |
| 60 | |
| 61 // File pointer to the stored account credentials db file. | |
| 62 mojo::files::FilePtr creds_db_file_; | |
| 63 // File pointer to the list of authorized modules. | |
| 64 mojo::files::FilePtr auth_db_file_; | |
| 65 // Stores the cached account data for all users. | |
|
qsr
2016/02/16 14:17:06
What is the format of this string?
ukode
2016/02/26 21:35:50
removed this completely. Made it a credentials db
| |
| 66 std::string contents_; | |
| 67 // In-memory store for list of authorized apps. | |
| 68 authentication::Db auth_grants; | |
|
qsr
2016/02/16 14:17:06
auth_grants_
ukode
2016/02/26 21:35:49
Done.
| |
| 69 | |
| 70 DISALLOW_COPY_AND_ASSIGN(AccountsDbManager); | |
| 71 }; | |
| 72 | |
| 73 } // namespace authentication | |
| 74 | |
| 75 #endif // SERVICES_AUTHENTICATION_ACCOUNTS_DB_MANAGER_H_ | |
| OLD | NEW |