/* Authors:
* Endi Sukma Dewata
');
};
return that;
}
function ipa_hbac_details_facet(spec) {
spec = spec || {};
var that = ipa_details_facet(spec);
that.superior_init = that.superior('init');
that.superior_create = that.superior('create');
that.superior_setup = that.superior('setup');
that.init = function() {
var section;
if (IPA.layout) {
section = that.create_section({
'name': 'general',
'label': 'General',
'template': 'hbac-details-general.html #contents'
});
} else {
section = ipa_hbac_details_general_section({
'name': 'general',
'label': 'General'
});
that.add_section(section);
}
section.create_text({ 'name': 'cn', 'label': 'Name', 'read_only': true });
section.create_radio({ 'name': 'accessruletype', 'label': 'Rule Type' });
section.create_textarea({ 'name': 'description', 'label': 'Description' });
section.create_radio({ 'name': 'ipaenabledflag', 'label': 'Enabled' });
if (IPA.layout) {
section = that.create_section({
'name': 'user',
'label': 'Who',
'template': 'hbac-details-user.html #contents'
});
} else {
section = ipa_hbac_details_tables_section({
'name': 'user',
'label': 'Who',
'text': 'Rule applies when access is requested by:',
'field_name': 'usercategory',
'options': [
{ 'value': 'all', 'label': 'Anyone' },
{ 'value': '', 'label': 'Specified Users and Groups' }
],
'tables': [
{ 'field_name': 'memberuser_user' },
{ 'field_name': 'memberuser_group' }
]
});
that.add_section(section);
}
var category = section.create_radio({ name: 'usercategory', label: 'User category' });
section.add_field(ipa_hbac_association_widget({
'id': that.entity_name+'-memberuser_user',
'name': 'memberuser_user', 'label': 'Users', 'category': category,
'other_entity': 'user', 'add_method': 'add_user', 'delete_method': 'remove_user'
}));
section.add_field(ipa_hbac_association_widget({
'id': that.entity_name+'-memberuser_group',
'name': 'memberuser_group', 'label': 'Groups', 'category': category,
'other_entity': 'group', 'add_method': 'add_user', 'delete_method': 'remove_user'
}));
if (IPA.layout) {
section = that.create_section({
'name': 'host',
'label': 'Accessing',
'template': 'hbac-details-host.html #contents'
});
} else {
section = ipa_hbac_details_tables_section({
'name': 'host',
'label': 'Accessing',
'text': 'Rule applies when access is requested to:',
'field_name': 'hostcategory',
'options': [
{ 'value': 'all', 'label': 'Any Host' },
{ 'value': '', 'label': 'Specified Hosts and Groups' }
],
'tables': [
{ 'field_name': 'memberhost_host' },
{ 'field_name': 'memberhost_hostgroup' }
]
});
that.add_section(section);
}
category = section.create_radio({ 'name': 'hostcategory', 'label': 'Host category' });
section.add_field(ipa_hbac_association_widget({
'id': that.entity_name+'-memberhost_host',
'name': 'memberhost_host', 'label': 'Hosts', 'category': category,
'other_entity': 'host', 'add_method': 'add_host', 'delete_method': 'remove_host'
}));
section.add_field(ipa_hbac_association_widget({
'id': that.entity_name+'-memberhost_hostgroup',
'name': 'memberhost_hostgroup', 'label': 'Host Groups', 'category': category,
'other_entity': 'hostgroup', 'add_method': 'add_host', 'delete_method': 'remove_host'
}));
if (IPA.layout) {
section = that.create_section({
'name': 'service',
'label': 'Via Service',
'template': 'hbac-details-service.html #contents'
});
} else {
section = ipa_hbac_details_tables_section({
'name': 'service',
'label': 'Via Service',
'text': 'Rule applies when access is requested via:',
'field_name': 'servicecategory',
'options': [
{ 'value': 'all', 'label': 'Any Service' },
{ 'value': '', 'label': 'Specified Services and Groups' }
],
'tables': [
{ 'field_name': 'memberservice_hbacsvc' },
{ 'field_name': 'memberservice_hbacsvcgroup' }
]
});
that.add_section(section);
}
category = section.create_radio({ 'name': 'servicecategory', 'label': 'Service category' });
section.add_field(ipa_hbac_association_widget({
'id': that.entity_name+'-memberservice_hbacsvc',
'name': 'memberservice_hbacsvc', 'label': 'Services', 'category': category,
'other_entity': 'hbacsvc', 'add_method': 'add_service', 'delete_method': 'remove_service'
}));
section.add_field(ipa_hbac_association_widget({
'id': that.entity_name+'-memberservice_hbacsvcgroup',
'name': 'memberservice_hbacsvcgroup', 'label': 'Service Groups', 'category': category,
'other_entity': 'hbacsvcgroup', 'add_method': 'add_service', 'delete_method': 'remove_service'
}));
if (IPA.layout) {
section = that.create_section({
'name': 'sourcehost',
'label': 'From',
'template': 'hbac-details-sourcehost.html #contents'
});
} else {
section = ipa_hbac_details_tables_section({
'name': 'sourcehost',
'label': 'From',
'text': 'Rule applies when access is being initiated from:',
'field_name': 'sourcehostcategory',
'options': [
{ 'value': 'all', 'label': 'Any Host' },
{ 'value': '', 'label': 'Specified Hosts and Groups' }
],
'tables': [
{ 'field_name': 'sourcehost_host' },
{ 'field_name': 'sourcehost_hostgroup' }
]
});
that.add_section(section);
}
category = section.create_radio({ 'name': 'sourcehostcategory', 'label': 'Source host category' });
section.add_field(ipa_hbac_association_widget({
'id': that.entity_name+'-sourcehost_host',
'name': 'sourcehost_host', 'label': 'Host', 'category': category,
'other_entity': 'host', 'add_method': 'add_sourcehost', 'delete_method': 'remove_sourcehost'
}));
section.add_field(ipa_hbac_association_widget({
'id': that.entity_name+'-sourcehost_hostgroup',
'name': 'sourcehost_hostgroup', 'label': 'Host Groups', 'category': category,
'other_entity': 'hostgroup', 'add_method': 'add_sourcehost', 'delete_method': 'remove_sourcehost'
}));
if (IPA.layout) {
section = that.create_section({
'name': 'accesstime',
'label': 'When',
'template': 'hbac-details-accesstime.html #contents'
});
} else {
section = that.create_section({
'name': 'accesstime',
'label': 'When'
});
/*
section = ipa_hbac_details_tables_section({
'name': 'accesstime',
'label': 'When',
'text': 'Rule applies when access is being requested at:',
'field_name': 'accesstimecategory',
'tables': [
{ 'field_name': 'accesstime' }
]
});
that.add_section(section);
*/
}
section.add_field(ipa_hbac_accesstime_widget({
'id': 'accesstime',
'name': 'accesstime', 'label': 'Access Time',
'text': 'Rule applies when access is being requested at:',
'options': [
{ 'value': 'all', 'label': 'Any Time' },
{ 'value': '', 'label': 'Specified Times' }
]
}));
that.superior_init();
};
that.update = function(container) {
var pkey = $.bbq.getState(that.entity_name + '-pkey', true) || '';
var modify_operation = {
'execute': false,
'command': ipa_command({
'method': that.entity_name+'_mod',
'args': [pkey],
'options': {'all': true, 'rights': true}
})
};
var remove_accesstime = {
'template': ipa_command({
'method': that.entity_name+'_remove_accesstime',
'args': [pkey],
'options': {'all': true, 'rights': true}
}),
'commands': []
};
var member_category = {
'usercategory': 'memberuser',
'hostcategory': 'memberhost',
'servicecategory': 'memberservice',
'sourcehostcategory': 'sourcehost'
};
var remove_members = {
'memberuser': {
'category_changed': false,
'has_values': false,
'command': ipa_command({
'method': that.entity_name+'_remove_user',
'args': [pkey],
'options': {'all': true, 'rights': true}
})
},
'memberhost': {
'category_changed': false,
'has_values': false,
'command': ipa_command({
'method': that.entity_name+'_remove_host',
'args': [pkey],
'options': {'all': true, 'rights': true}
})
},
'memberservice': {
'category_changed': false,
'has_values': false,
'command': ipa_command({
'method': that.entity_name+'_remove_service',
'args': [pkey],
'options': {'all': true, 'rights': true}
})
},
'sourcehost': {
'category_changed': false,
'has_values': false,
'command': ipa_command({
'method': that.entity_name+'_remove_sourcehost',
'args': [pkey],
'options': {'all': true, 'rights': true}
})
}
};
var enable_operation = {
'execute': false,
'command': ipa_command({
'method': that.entity_name+'_enable',
'args': [pkey],
'options': {'all': true, 'rights': true}
})
};
for (var i=0; i', {
}).appendTo(table);
var td = $(' ', {
'style': 'width: 100px; text-align: right;',
'html': 'Name:'
}).appendTo(tr);
td = $(' ').appendTo(tr);
var span = $('', { 'name': 'cn' }).appendTo(td);
$('', {
'type': 'text',
'name': 'cn',
'size': 30
}).appendTo(span);
span.append(' ');
$('', {
'name': 'undo',
'class': 'ui-state-highlight ui-corner-all',
'style': 'display: none;',
'html': 'undo'
}).appendTo(span);
td = $(' ', {
'style': 'text-align: right;'
}).appendTo(tr);
td.append('Rule type:');
span = $('', { 'name': 'accessruletype' }).appendTo(td);
$('', {
'type': 'radio',
'name': 'accessruletype',
'value': 'allow'
}).appendTo(span);
span.append('Allow');
$('', {
'type': 'radio',
'name': 'accessruletype',
'value': 'deny'
}).appendTo(span);
span.append('Deny');
span.append(' ');
$('', {
'name': 'undo',
'class': 'ui-state-highlight ui-corner-all',
'style': 'display: none;',
'html': 'undo'
}).appendTo(span);
tr = $(' ', {
}).appendTo(table);
td = $(' ', {
'style': 'text-align: right; vertical-align: top;',
'html': 'Description:'
}).appendTo(tr);
td = $(' ', {
'colspan': 2
}).appendTo(tr);
span = $('', { 'name': 'description' }).appendTo(td);
$('', {
'name': 'description',
'rows': 5,
'style': 'width: 100%'
}).appendTo(span);
span.append(' ');
$('', {
'name': 'undo',
'class': 'ui-state-highlight ui-corner-all',
'style': 'display: none;',
'html': 'undo'
}).appendTo(span);
tr = $(' ', {
}).appendTo(table);
td = $(' ', {
'style': 'text-align: right; vertical-align: top;',
'html': 'Rule status:'
}).appendTo(tr);
td = $(' ', {
'colspan': 2
}).appendTo(tr);
span = $('', { 'name': 'ipaenabledflag' }).appendTo(td);
$('', {
'type': 'radio',
'name': 'ipaenabledflag',
'value': 'TRUE'
}).appendTo(span);
span.append('Active');
$('', {
'type': 'radio',
'name': 'ipaenabledflag',
'value': 'FALSE'
}).appendTo(span);
span.append('Inactive');
span.append(' ');
$('', {
'name': 'undo',
'class': 'ui-state-highlight ui-corner-all',
'style': 'display: none;',
'html': 'undo'
}).appendTo(span);
};
return that;
}
function ipa_hbac_details_tables_section(spec){
spec = spec || {};
var that = ipa_details_section(spec);
that.text = spec.text;
that.field_name = spec.field_name;
that.options = spec.options || [];
that.tables = spec.tables || [];
that.columns = spec.columns;
that.superior_setup = that.superior('setup');
that.create = function(container) {
if (that.template) return;
container.append(that.text);
var span = $('', { 'name': that.field_name }).appendTo(container);
for (var i=0; i
');
for (var i=0; i
'+error_thrown.title+'
'); summary.append(''+error_thrown.message+'
'); } var pkey = $.bbq.getState(that.entity_name + '-pkey', true) || ''; ipa_cmd('show', [pkey], {'rights': true}, on_success, on_error, that.entity_name); }; return that; } function ipa_hbac_accesstime_widget(spec) { spec = spec || {}; var that = ipa_widget(spec); that.text = spec.text; that.options = spec.options || []; that.superior_init = that.superior('init'); that.superior_create = that.superior('create'); that.superior_setup = that.superior('setup'); that.init = function() { that.table = ipa_table_widget({ 'id': 'accesstime-table', 'name': 'table', 'label': that.label }); that.table.create_column({ 'name': that.name, 'label': that.label, 'primary_key': true }); that.superior_init(); }; that.create = function(container) { that.superior_create(container); var span = $('', { 'name': 'text' }).appendTo(container); span.append(that.text); for (var i=0; i'+error_thrown.title+'
'); summary.append(''+error_thrown.message+'
'); } var pkey = $.bbq.getState(that.entity_name + '-pkey', true) || ''; ipa_cmd('show', [pkey], {'rights': true}, on_success, on_error, that.entity_name); }; return that; }