mirror of https://github.com/citusdata/citus.git
refactor ownership changed afbfc02983f86c4d71825efa6befd547fe81a926
parent
eca67443de
commit
93f487d6d9
|
@ -1969,7 +1969,7 @@ columnar_relation_storageid(PG_FUNCTION_ARGS)
|
|||
Oid relationId = PG_GETARG_OID(0);
|
||||
Relation relation = relation_open(relationId, AccessShareLock);
|
||||
|
||||
if (!pg_class_ownercheck(relationId, GetUserId()))
|
||||
if (!object_ownercheck(RelationRelationId, relationId, GetUserId()))
|
||||
{
|
||||
aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_TABLE,
|
||||
get_rel_name(relationId));
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "catalog/catalog.h"
|
||||
#include "catalog/index.h"
|
||||
#include "catalog/namespace.h"
|
||||
#include "catalog/pg_namespace.h"
|
||||
#include "catalog/pg_class.h"
|
||||
#include "commands/defrem.h"
|
||||
#include "commands/tablecmds.h"
|
||||
|
@ -1055,8 +1056,8 @@ RangeVarCallbackForDropIndex(const RangeVar *rel, Oid relOid, Oid oldRelOid, voi
|
|||
errmsg("\"%s\" is not an index", rel->relname)));
|
||||
|
||||
/* Allow DROP to either table owner or schema owner */
|
||||
if (!pg_class_ownercheck(relOid, GetUserId()) &&
|
||||
!pg_namespace_ownercheck(classform->relnamespace, GetUserId()))
|
||||
if (!object_ownercheck(RelationRelationId, relOid, GetUserId()) &&
|
||||
!object_ownercheck(NamespaceRelationId, classform->relnamespace, GetUserId()))
|
||||
{
|
||||
aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_INDEX, rel->relname);
|
||||
}
|
||||
|
@ -1140,7 +1141,7 @@ RangeVarCallbackForReindexIndex(const RangeVar *relation, Oid relId, Oid oldRelI
|
|||
errmsg("\"%s\" is not an index", relation->relname)));
|
||||
|
||||
/* Check permissions */
|
||||
if (!pg_class_ownercheck(relId, GetUserId()))
|
||||
if (!object_ownercheck(RelationRelationId, relId, GetUserId()))
|
||||
aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_INDEX, relation->relname);
|
||||
|
||||
/* Lock heap before index to avoid deadlock. */
|
||||
|
|
|
@ -2248,13 +2248,13 @@ EnsureTablePermissions(Oid relationId, AclMode mode)
|
|||
void
|
||||
EnsureTableOwner(Oid relationId)
|
||||
{
|
||||
if (!pg_class_ownercheck(relationId, GetUserId()))
|
||||
if (!object_ownercheck(RelationRelationId, relationId, GetUserId()))
|
||||
{
|
||||
aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_TABLE,
|
||||
get_rel_name(relationId));
|
||||
}
|
||||
}
|
||||
|
||||
#include "catalog/pg_proc_d.h"
|
||||
|
||||
/*
|
||||
* Check that the current user has owner rights to functionId, error out if
|
||||
|
@ -2264,7 +2264,7 @@ EnsureTableOwner(Oid relationId)
|
|||
void
|
||||
EnsureFunctionOwner(Oid functionId)
|
||||
{
|
||||
if (!pg_proc_ownercheck(functionId, GetUserId()))
|
||||
if (!object_ownercheck(ProcedureRelationId, functionId, GetUserId()))
|
||||
{
|
||||
aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_FUNCTION,
|
||||
get_func_name(functionId));
|
||||
|
|
|
@ -168,7 +168,7 @@ aclcheckAggregate(ObjectType objectType, Oid userOid, Oid funcOid)
|
|||
AclResult aclresult;
|
||||
if (funcOid != InvalidOid)
|
||||
{
|
||||
aclresult = pg_proc_aclcheck(funcOid, userOid, ACL_EXECUTE);
|
||||
aclresult = object_aclcheck(ProcedureRelationId, funcOid, userOid, ACL_EXECUTE);
|
||||
if (aclresult != ACLCHECK_OK)
|
||||
{
|
||||
aclcheck_error(aclresult, objectType, get_func_name(funcOid));
|
||||
|
|
Loading…
Reference in New Issue