~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/auth_schema/auth_schema.h

  • Committer: Daniel
  • Date: 2011-10-10 04:56:21 UTC
  • mto: This revision was merged to the branch mainline in revision 2437.
  • Revision ID: daniel@ubuntu-10-20111010045621-lav426gcxgksx0wb
Enable plugin by default.  Always escape and backtick quote the auth table name.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#pragma once
21
21
#include <drizzled/session.h>
22
22
#include <drizzled/plugin/authentication.h>
 
23
#include PCRE_HEADER
23
24
 
24
25
using namespace std;
25
26
using namespace drizzled;
30
31
class AuthSchema : public drizzled::plugin::Authentication
31
32
{
32
33
public:
33
 
  AuthSchema();
 
34
  AuthSchema(bool enabled);
 
35
  ~AuthSchema();
34
36
 
35
37
  /**
36
38
   * @brief
84
86
 
85
87
  /**
86
88
   * @brief
 
89
   *   Split, escape, and quote the auth table name.
 
90
   *
 
91
   * @details
 
92
   *   This function is called by setTable().
 
93
   *   The auth table name must be schema-qualified, so it should have
 
94
   *   the form schema.table or `schema`.`table`, etc.  This function
 
95
   *   splits the table name on the period, checks each half (the schema
 
96
   *   name and the table name), and escapes and backtick quotes each
 
97
   *   if necessary.  The result is that the auth table name is always
 
98
   *   finally of the form `schema`.`table`.
 
99
   *
 
100
   * @param[in] table Schema-qualified auth table name
 
101
   *
 
102
   * @return Escaped and backtick-quoted auth table name
 
103
   */
 
104
  string escapeQuoteAuthTable(const string &table);
 
105
 
 
106
  /**
 
107
   * @brief
 
108
   *   Escape and quote an identifier.
 
109
   *
 
110
   * @param[in] input Identifer, possibly already quoted
 
111
   *
 
112
   * @return Escaped and backtick-quoted identifier
 
113
   */
 
114
  string escapeQuoteIdentifier(const string &input);
 
115
 
 
116
  /**
 
117
   * @brief
87
118
   *   Escape a string for use as a single-quoted string value.
88
119
   *
89
120
   * @details
97
128
   */
98
129
  string escapeString(const string &input);
99
130
 
 
131
  pcre *_ident_re;
100
132
  Session::shared_ptr _session; ///< Internal session for querying auth table
101
133
};
102
134