62 lines
2.2 KiB
C++
62 lines
2.2 KiB
C++
/* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License, version 2.0,
|
|
as published by the Free Software Foundation.
|
|
|
|
This program is also distributed with certain software (including
|
|
but not limited to OpenSSL) that is licensed under separate terms,
|
|
as designated in a particular file or component or in included license
|
|
documentation. The authors of MySQL hereby grant you an additional
|
|
permission to link the program and your derivative works with the
|
|
separately licensed software that they have included with MySQL.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License, version 2.0, for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef ACL_CHANGE_NOTIFICATION_INCLUDED
|
|
#define ACL_CHANGE_NOTIFICATION_INCLUDED
|
|
|
|
#include "my_sqlcommand.h" // enum_sql_command
|
|
#include "sql/table.h" // LEX_USER, LEX_CSTRING, List
|
|
|
|
class Acl_change_notification {
|
|
public:
|
|
struct User {
|
|
std::string name;
|
|
std::string host;
|
|
User(const LEX_USER &lex_user)
|
|
: name(lex_user.user.str, lex_user.user.length),
|
|
host(lex_user.host.str, lex_user.host.length) {}
|
|
};
|
|
|
|
Acl_change_notification(class THD *thd, enum_sql_command op,
|
|
const List<LEX_USER> *users,
|
|
const List<LEX_CSTRING> *dynamic_privs);
|
|
|
|
private:
|
|
enum_sql_command operation;
|
|
std::string db;
|
|
std::string query;
|
|
std::vector<User> user_list;
|
|
std::vector<std::string> dynamic_privilege_list;
|
|
|
|
public:
|
|
enum_sql_command get_operation() const { return operation; }
|
|
const std::string &get_db() const { return db; }
|
|
const std::string &get_query() const { return query; }
|
|
const std::vector<User> &get_user_list() const { return user_list; }
|
|
const std::vector<std::string> &get_dynamic_privilege_list() const {
|
|
return dynamic_privilege_list;
|
|
}
|
|
};
|
|
|
|
#endif
|