1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-25 02:50:08 +03:00

Feature #2613: Allow to manage ZONE with acl rules

This commit is contained in:
Carlos Martín 2014-01-23 13:02:25 +01:00
parent ee052ed0d6
commit 25fa9186aa
6 changed files with 19 additions and 10 deletions

View File

@ -28,7 +28,7 @@ const long long AclRule::CLUSTER_ID = 0x0000000800000000LL;
const long long AclRule::NONE_ID = 0x1000000000000000LL;
const int AclRule::num_pool_objects = 10;
const int AclRule::num_pool_objects = 11;
const PoolObjectSQL::ObjectType AclRule::pool_objects[] = {
PoolObjectSQL::VM,
PoolObjectSQL::HOST,
@ -39,7 +39,8 @@ const PoolObjectSQL::ObjectType AclRule::pool_objects[] = {
PoolObjectSQL::GROUP,
PoolObjectSQL::DATASTORE,
PoolObjectSQL::CLUSTER,
PoolObjectSQL::DOCUMENT
PoolObjectSQL::DOCUMENT,
PoolObjectSQL::ZONE
};
const int AclRule::num_auth_operations = 4;
@ -53,7 +54,7 @@ const AuthRequest::Operation AclRule::auth_operations[] = {
const long long AclRule::INVALID_CLUSTER_OBJECTS =
PoolObjectSQL::VM | PoolObjectSQL::IMAGE | PoolObjectSQL::USER |
PoolObjectSQL::TEMPLATE | PoolObjectSQL::GROUP | PoolObjectSQL::ACL |
PoolObjectSQL::CLUSTER | PoolObjectSQL::DOCUMENT;
PoolObjectSQL::CLUSTER | PoolObjectSQL::DOCUMENT | PoolObjectSQL::ZONE;
/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */

View File

@ -9,9 +9,9 @@
:size: 8
:right: true
:RES_VHNIUTGDCO:
:RES_VHNIUTGDCOZ:
:desc: Which resource the rule applies to
:size: 14
:size: 15
:RID:
:desc: Resource ID
@ -31,7 +31,7 @@
:default:
- :ID
- :USER
- :RES_VHNIUTGDCO
- :RES_VHNIUTGDCOZ
- :RID
- :ZONE
- :OPE_UMAC

View File

@ -44,7 +44,7 @@ private
def self.resource_mask(str)
resource_type=str.split("/")[0]
mask = "----------"
mask = "-----------"
resource_type.split("+").each{|type|
case type
@ -68,6 +68,8 @@ private
mask[8] = "C"
when "DOCUMENT"
mask[9] = "O"
when "ZONE"
mask[10] = "Z"
end
}
mask
@ -107,8 +109,8 @@ private
d['STRING'].split(" ")[0]
end
column :RES_VHNIUTGDCO, "Resource to which the rule applies",
:size => 14 do |d|
column :RES_VHNIUTGDCOZ, "Resource to which the rule applies",
:size => 15 do |d|
OneAclHelper::resource_mask d['STRING'].split(" ")[1]
end

View File

@ -68,6 +68,7 @@ public class Acl extends PoolElement{
tmpResources.put("DATASTORE", 0x0000100000000000L);
tmpResources.put("CLUSTER" , 0x0000200000000000L);
tmpResources.put("DOCUMENT" , 0x0000400000000000L);
tmpResources.put("ZONE" , 0x0000800000000000L);
RESOURCES = Collections.unmodifiableMap(tmpResources);

View File

@ -56,7 +56,8 @@ module OpenNebula
"GROUP" => 0x40000000000,
"DATASTORE" => 0x100000000000,
"CLUSTER" => 0x200000000000,
"DOCUMENT" => 0x400000000000
"DOCUMENT" => 0x400000000000,
"ZONE" => 0x800000000000
}
RIGHTS =

View File

@ -102,6 +102,7 @@ var create_acl_tmpl =
<input type="checkbox" name="res_user" class="resource_cb" value="USER">'+tr("Users")+'</input><br />\
<input type="checkbox" name="res_group" class="resource_cb" value="GROUP">'+tr("Groups")+'</input><br />\
<input type="checkbox" name="res_document" class="resource_cb" value="DOCUMENT">'+tr("Documents")+'</input><br />\
<input type="checkbox" name="res_zone" class="resource_cb" value="ZONE">'+tr("Zones")+'</input><br />\
</div>\
</fieldset>\
</div>\
@ -379,6 +380,9 @@ function parseAclString(string) {
case "DOCUMENT":
resources_str+=tr("Documents")+", ";
break;
case "ZONE":
resources_str+=tr("Zones")+", ";
break;
};
};
//remove ", " from end