2012-01-03 00:17:20 +04:00
/* -------------------------------------------------------------------------- */
2014-01-09 14:51:20 +04:00
/* Copyright 2002-2014, OpenNebula Project (OpenNebula.org), C12G Labs */
2012-01-03 00:17:20 +04:00
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); you may */
/* not use this file except in compliance with the License. You may obtain */
/* a copy of the License at */
/* */
/* http://www.apache.org/licenses/LICENSE-2.0 */
/* */
/* Unless required by applicable law or agreed to in writing, software */
/* distributed under the License is distributed on an "AS IS" BASIS, */
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
/* See the License for the specific language governing permissions and */
/* limitations under the License. */
/* -------------------------------------------------------------------------- */
# ifndef POOL_OBJECT_AUTH_H_
# define POOL_OBJECT_AUTH_H_
# include "PoolObjectSQL.h"
2012-01-03 05:58:23 +04:00
class AclRule ;
/**
* This class abstracts the authorization attributes of a PoolObject . It is
* used to check permissions and access rights of requests
*/
2012-01-03 00:17:20 +04:00
class PoolObjectAuth
{
public :
2012-01-03 05:58:23 +04:00
/* ------------------- Constructor and Methods -------------------------- */
2012-01-03 00:17:20 +04:00
PoolObjectAuth ( ) :
oid ( - 1 ) ,
uid ( - 1 ) ,
gid ( - 1 ) ,
2013-01-16 21:27:36 +04:00
cid ( - 1 ) ,
2012-01-03 00:17:20 +04:00
owner_u ( 1 ) ,
owner_m ( 1 ) ,
owner_a ( 0 ) ,
group_u ( 0 ) ,
group_m ( 0 ) ,
group_a ( 0 ) ,
other_u ( 0 ) ,
other_m ( 0 ) ,
2012-01-03 05:58:23 +04:00
other_a ( 0 ) { } ;
2012-01-03 00:17:20 +04:00
2012-01-03 05:58:23 +04:00
void get_acl_rules ( AclRule & owner_rule ,
AclRule & group_rule ,
2014-01-25 23:41:13 +04:00
AclRule & other_rule ,
int zone_id ) const ;
2012-01-03 00:17:20 +04:00
2012-01-03 05:58:23 +04:00
string type_to_str ( ) const
{
2014-01-25 23:41:13 +04:00
return PoolObjectSQL : : type_to_str ( obj_type ) ;
2012-01-03 00:17:20 +04:00
} ;
2012-01-03 05:58:23 +04:00
/* --------------------------- Attributes ------------------------------- */
PoolObjectSQL : : ObjectType obj_type ;
2012-01-03 00:17:20 +04:00
int oid ;
int uid ;
int gid ;
2013-01-16 21:27:36 +04:00
int cid ;
2012-01-03 00:17:20 +04:00
int owner_u ;
int owner_m ;
int owner_a ;
int group_u ;
int group_m ;
int group_a ;
int other_u ;
int other_m ;
int other_a ;
} ;
# endif /*POOL_OBJECT_AUTH_H_*/