~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/simple_user_policy/policy.h

  • Committer: Stewart Smith
  • Author(s): Vasil Dimov, Stewart Smith
  • Date: 2010-12-20 02:24:00 UTC
  • mto: (2021.1.2 build)
  • mto: This revision was merged to the branch mainline in revision 2022.
  • Revision ID: stewart@flamingspork.com-20101220022400-0p9lvvppwgaowdju
Merge Revision revid:vasil.dimov@oracle.com-20101102165720-164z3666y3tut4c2 from MySQL InnoDB

Original revid:vasil.dimov@oracle.com-20101102165720-164z3666y3tut4c2

Original Authors: Vasil Dimov <vasil.dimov@oracle.com>
Original commit message:
Fix Bug#53046 dict_update_statistics_low can still be run concurrently on same table

Replace the array of mutexes that used to protect
dict_index_t::stat_n_diff_key_vals[] with an array of rw locks that protects
all the stats related members in dict_table_t and all of its indexes.

Approved by:    Jimmy (rb://503)

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
    drizzled::plugin::Authorization("Simple User Policy")
37
37
  { }
38
38
 
39
 
  virtual bool restrictSchema(const drizzled::identifier::User &user_ctx,
40
 
                              drizzled::identifier::Schema::const_reference schema);
 
39
  virtual bool restrictSchema(const drizzled::SecurityContext &user_ctx,
 
40
                              drizzled::SchemaIdentifier &db);
41
41
 
42
 
  virtual bool restrictProcess(const drizzled::identifier::User &user_ctx,
43
 
                               const drizzled::identifier::User &session_ctx);
 
42
  virtual bool restrictProcess(const drizzled::SecurityContext &user_ctx,
 
43
                               const drizzled::SecurityContext &session_ctx);
44
44
};
45
45
 
46
 
inline bool Policy::restrictSchema(const drizzled::identifier::User &user_ctx,
47
 
                                   drizzled::identifier::Schema::const_reference schema)
 
46
inline bool Policy::restrictSchema(const drizzled::SecurityContext &user_ctx,
 
47
                                   drizzled::SchemaIdentifier &schema)
48
48
{
49
 
  if ((user_ctx.username() == "root")
 
49
  if ((user_ctx.getUser() == "root")
50
50
      || schema.compare("data_dictionary")
51
51
      || schema.compare("information_schema"))
52
 
  {
53
52
    return false;
54
 
  }
55
 
 
56
 
  return not schema.compare(user_ctx.username());
 
53
  return not schema.compare(user_ctx.getUser());
57
54
}
58
55
 
59
 
inline bool Policy::restrictProcess(const drizzled::identifier::User &user_ctx,
60
 
                                    const drizzled::identifier::User &session_ctx)
 
56
inline bool Policy::restrictProcess(const drizzled::SecurityContext &user_ctx,
 
57
                                    const drizzled::SecurityContext &session_ctx)
61
58
{
62
 
  if (user_ctx.username() == "root")
 
59
  if (user_ctx.getUser() == "root")
63
60
    return false;
64
 
 
65
 
  return user_ctx.username() != session_ctx.username();
 
61
  return user_ctx.getUser() != session_ctx.getUser();
66
62
}
67
63
 
68
64
} /* namespace simple_user_policy */