2 * Copyright (c) 2000 - 2020 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License
17 * @file ckm-logic-ext.cpp
18 * @author Krzysztof Jackiewicz (k.jackiewicz@samsung.com)
22 #include "ckm-logic-ext.h"
24 #include <dpl/db/sql_connection.h>
28 const char *DB_CMD_OBJECT_SELECT = "SELECT * FROM [join_name_object_tables];";
30 const char *DB_CMD_NAME_SELECT_BY_IDX = "SELECT name, label FROM NAMES WHERE idx = ?001;";
32 } // anonymous namespace
36 DB::SqlConnection::Output CKMLogicExt::Execute(uid_t user, const std::string &cmd)
38 DB::SqlConnection::Output out;
39 m_userDataMap[user].database.m_connection->ExecCommand(&out, "%s", cmd.c_str());
43 DB::RowVector CKMLogicExt::getRows(uid_t user)
45 DB::Crypto& database = m_userDataMap[user].database;
46 DB::SqlConnection::DataCommandUniquePtr selectCommand =
47 database.m_connection->PrepareDataCommand(DB_CMD_OBJECT_SELECT);
50 while (selectCommand->Step())
51 rows.push_back(database.getRow(selectCommand));
55 void CKMLogicExt::saveRow(uid_t user, const DB::Row &row)
57 m_userDataMap[user].database.saveRow(row);
60 NameEntry CKMLogicExt::getNameByIdx(uid_t user, int idx)
62 DB::SqlConnection::DataCommandUniquePtr selectCommand =
63 m_userDataMap[user].database.m_connection->PrepareDataCommand(DB_CMD_NAME_SELECT_BY_IDX);
64 selectCommand->BindInteger(1, idx);
66 if (!selectCommand->Step())
67 ThrowErr(Exc::DatabaseFailed, "getting name from database failed");
70 name.name = selectCommand->GetColumnString(0);
71 name.owner = selectCommand->GetColumnString(1);
75 int CKMLogicExt::readDataHelperProtected(
76 const Credentials &cred,
79 const ClientId &explicitOwner,
80 const Password &password,
81 Crypto::GObjUPtr &obj)
83 return readDataHelper(false, cred, dataType, name, explicitOwner, password, obj);