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:
parent
ee052ed0d6
commit
25fa9186aa
@ -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;
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -56,7 +56,8 @@ module OpenNebula
|
||||
"GROUP" => 0x40000000000,
|
||||
"DATASTORE" => 0x100000000000,
|
||||
"CLUSTER" => 0x200000000000,
|
||||
"DOCUMENT" => 0x400000000000
|
||||
"DOCUMENT" => 0x400000000000,
|
||||
"ZONE" => 0x800000000000
|
||||
}
|
||||
|
||||
RIGHTS =
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user