mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-25 08:21:05 -06:00
containing entity pkeys
Instead of looking for a match on the entity name, use the nesting structure of containing entites to grab their pkeys. Code review fixes https://fedorahosted.org/freeipa/ticket/674
This commit is contained in:
parent
66eeaceb8c
commit
b8b2ac5357
@ -597,7 +597,12 @@ IPA.entity = function (spec) {
|
||||
pkey.unshift(IPA.nav.get_state(current_entity.name+'-pkey'));
|
||||
return pkey;
|
||||
};
|
||||
|
||||
/* most entites only require -pkey for their primary keys, but some
|
||||
are more specific. This call allows those entites a place
|
||||
to override the other parameters. */
|
||||
that.get_key_names = function() {
|
||||
return [that.name + '-pkey'];
|
||||
};
|
||||
|
||||
that.entity_init = that.init;
|
||||
|
||||
|
@ -115,14 +115,32 @@ IPA.navigation = function(spec) {
|
||||
while(state[key]){
|
||||
var value = state[key];
|
||||
url_state[key] = value;
|
||||
var entity = value;
|
||||
for (var key2 in state){
|
||||
if ((key2 === entity) || (key2.search('^'+entity) > -1)){
|
||||
url_state[key2] = state[key2];
|
||||
}
|
||||
}
|
||||
key = value;
|
||||
}
|
||||
|
||||
/*We are at the leaf node, which is the sleected entity.*/
|
||||
var entity = value;
|
||||
for (var key2 in state){
|
||||
if ((key2 === entity) || (key2.search('^'+entity +'-') > -1)){
|
||||
url_state[key2] = state[key2];
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Trace back up the nested entities for their pkeys as well
|
||||
*/
|
||||
var current_entity = IPA.get_entity(entity);
|
||||
while(current_entity !== null){
|
||||
var key_names = current_entity.get_key_names();
|
||||
for (var j = 0; j < key_names.length; j+= 1){
|
||||
var key_name = key_names[j];
|
||||
if (state[key_name]){
|
||||
url_state[key_name] = state[key_name];
|
||||
}
|
||||
}
|
||||
current_entity = current_entity.containing_entity;
|
||||
}
|
||||
|
||||
$.bbq.pushState(url_state,2);
|
||||
return true;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user