mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Entitlement registration.
The entitlement facet will show buttons according to the entitlement status. If it's unregistered, the facet will show a Register button. If it's registered, the facet will show a Consume button.
This commit is contained in:
parent
805b94f22d
commit
e3ec1fb7ef
@ -105,6 +105,9 @@ IPA.dialog = function(spec) {
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
|
||||
that.entity = IPA.get_entity(that.entity_name);
|
||||
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
field.entity_name = that.entity_name;
|
||||
|
@ -25,12 +25,18 @@
|
||||
|
||||
IPA.entitle = {};
|
||||
|
||||
IPA.entitle.unregistered = 'unregistered';
|
||||
IPA.entitle.registered = 'registered';
|
||||
|
||||
IPA.entity_factories.entitle = function() {
|
||||
|
||||
var builder = IPA.entity_builder();
|
||||
|
||||
builder.
|
||||
entity('entitle').
|
||||
entity({
|
||||
factory: IPA.entitle.entity,
|
||||
name: 'entitle'
|
||||
}).
|
||||
facet({
|
||||
factory: IPA.entitle.search_facet,
|
||||
columns: [
|
||||
@ -50,21 +56,8 @@ IPA.entity_factories.entitle = function() {
|
||||
name: 'end',
|
||||
label: 'End'
|
||||
}
|
||||
],
|
||||
search_all: true
|
||||
]
|
||||
}).
|
||||
dialog({
|
||||
factory: IPA.entitle.consume_dialog,
|
||||
name: 'consume',
|
||||
title: 'Consume Entitlements',
|
||||
fields: [
|
||||
{
|
||||
name: 'quantity',
|
||||
label: 'Quantity',
|
||||
undo: false
|
||||
}
|
||||
]
|
||||
}).
|
||||
details_facet({
|
||||
sections: [
|
||||
{
|
||||
@ -74,11 +67,101 @@ IPA.entity_factories.entitle = function() {
|
||||
}
|
||||
]
|
||||
}).
|
||||
standard_association_facets();
|
||||
standard_association_facets().
|
||||
dialog({
|
||||
factory: IPA.entitle.register_dialog,
|
||||
name: 'register',
|
||||
title: 'Register Entitlements',
|
||||
fields: [
|
||||
{
|
||||
name: 'username',
|
||||
label: 'Username',
|
||||
undo: false
|
||||
},
|
||||
{
|
||||
name: 'password',
|
||||
label: IPA.get_method_param('entitle_register', 'password').label,
|
||||
type: 'password',
|
||||
undo: false
|
||||
}
|
||||
]
|
||||
}).
|
||||
dialog({
|
||||
factory: IPA.entitle.consume_dialog,
|
||||
name: 'consume',
|
||||
title: 'Consume Entitlements',
|
||||
fields: [
|
||||
{
|
||||
name: 'quantity',
|
||||
label: 'Quantity',
|
||||
undo: false
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
return builder.build();
|
||||
};
|
||||
|
||||
IPA.entitle.entity = function(spec) {
|
||||
|
||||
spec = spec || {};
|
||||
|
||||
var that = IPA.entity(spec);
|
||||
|
||||
that.get_certificates = function(on_success, on_error) {
|
||||
|
||||
var command = IPA.command({
|
||||
name: 'entitle_get' + (that.status == IPA.entitle.registered ? '' : '_unregistered'),
|
||||
entity: 'entitle',
|
||||
method: 'get',
|
||||
on_success: function(data, text_status, xhr) {
|
||||
that.status = IPA.entitle.registered;
|
||||
if (on_success) {
|
||||
on_success.call(this, data, text_status, xhr);
|
||||
}
|
||||
},
|
||||
on_error: on_error,
|
||||
retry: false
|
||||
});
|
||||
|
||||
command.execute();
|
||||
};
|
||||
|
||||
that.register = function(username, password, on_success, on_error) {
|
||||
|
||||
var command = IPA.command({
|
||||
entity: 'entitle',
|
||||
method: 'register',
|
||||
args: [ username ],
|
||||
options: { password: password },
|
||||
on_success: function(data, text_status, xhr) {
|
||||
that.status = IPA.entitle.registered;
|
||||
if (on_success) {
|
||||
on_success.call(this, data, text_status, xhr);
|
||||
}
|
||||
},
|
||||
on_error: on_error
|
||||
});
|
||||
|
||||
command.execute();
|
||||
};
|
||||
|
||||
that.consume = function(quantity, on_success, on_error) {
|
||||
|
||||
var command = IPA.command({
|
||||
entity: 'entitle',
|
||||
method: 'consume',
|
||||
args: [ quantity ],
|
||||
on_success: on_success,
|
||||
on_error: on_error
|
||||
});
|
||||
|
||||
command.execute();
|
||||
};
|
||||
|
||||
return that;
|
||||
};
|
||||
|
||||
IPA.entitle.search_facet = function(spec) {
|
||||
|
||||
spec = spec || {};
|
||||
@ -95,6 +178,12 @@ IPA.entitle.search_facet = function(spec) {
|
||||
'class': 'search-buttons'
|
||||
}).appendTo(li);
|
||||
|
||||
$('<input/>', {
|
||||
type: 'button',
|
||||
name: 'register',
|
||||
value: 'Register'
|
||||
}).appendTo(buttons);
|
||||
|
||||
$('<input/>', {
|
||||
type: 'button',
|
||||
name: 'consume',
|
||||
@ -108,15 +197,29 @@ IPA.entitle.search_facet = function(spec) {
|
||||
|
||||
var action_panel = that.get_action_panel();
|
||||
|
||||
var button = $('input[name=consume]', action_panel);
|
||||
that.consume_button = IPA.action_button({
|
||||
label: 'Consume',
|
||||
var button = $('input[name=register]', action_panel);
|
||||
that.register_button = IPA.action_button({
|
||||
label: 'Register',
|
||||
icon: 'ui-icon-plus',
|
||||
click: function() {
|
||||
var dialog = that.get_dialog('consume');
|
||||
var dialog = that.entity.get_dialog('register');
|
||||
dialog.open(that.container);
|
||||
}
|
||||
});
|
||||
that.register_button.css('display', 'none');
|
||||
button.replaceWith(that.register_button);
|
||||
|
||||
button = $('input[name=consume]', action_panel);
|
||||
that.consume_button = IPA.action_button({
|
||||
label: 'Consume',
|
||||
icon: 'ui-icon-plus',
|
||||
style: 'display: none;',
|
||||
click: function() {
|
||||
var dialog = that.entity.get_dialog('consume');
|
||||
dialog.open(that.container);
|
||||
}
|
||||
});
|
||||
that.consume_button.css('display', 'none');
|
||||
button.replaceWith(that.consume_button);
|
||||
};
|
||||
|
||||
@ -124,6 +227,9 @@ IPA.entitle.search_facet = function(spec) {
|
||||
|
||||
function on_success(data, text_status, xhr) {
|
||||
|
||||
that.register_button.css('display', 'none');
|
||||
that.consume_button.css('display', 'inline');
|
||||
|
||||
that.table.empty();
|
||||
|
||||
var result = data.result.result;
|
||||
@ -132,7 +238,7 @@ IPA.entitle.search_facet = function(spec) {
|
||||
that.table.add_record(record);
|
||||
}
|
||||
|
||||
var summary = $('span[name=summary]', that.table.tfoot);
|
||||
var summary = $('span[name=summary]', that.table.tfoot).empty();
|
||||
if (data.result.truncated) {
|
||||
var message = IPA.messages.search.truncated;
|
||||
message = message.replace('${counter}', data.result.count);
|
||||
@ -143,28 +249,50 @@ IPA.entitle.search_facet = function(spec) {
|
||||
}
|
||||
|
||||
function on_error(xhr, text_status, error_thrown) {
|
||||
|
||||
that.register_button.css('display', 'inline');
|
||||
that.consume_button.css('display', 'none');
|
||||
|
||||
var summary = $('span[name=summary]', that.table.tfoot).empty();
|
||||
summary.append('<p>Error: '+error_thrown.name+'</p>');
|
||||
summary.append('<p>'+error_thrown.title+'</p>');
|
||||
summary.append('<p>'+error_thrown.message+'</p>');
|
||||
summary.append(error_thrown.message);
|
||||
}
|
||||
|
||||
var command = IPA.command({
|
||||
entity: 'entitle',
|
||||
method: 'get',
|
||||
options: {
|
||||
all: that.search_all
|
||||
},
|
||||
on_success: on_success,
|
||||
on_error: on_error
|
||||
});
|
||||
|
||||
command.execute();
|
||||
that.entity.get_certificates(
|
||||
on_success,
|
||||
on_error);
|
||||
};
|
||||
|
||||
return that;
|
||||
};
|
||||
|
||||
IPA.entitle.register_dialog = function(spec) {
|
||||
|
||||
spec = spec || {};
|
||||
|
||||
var that = IPA.dialog(spec);
|
||||
|
||||
that.add_button('Register', function() {
|
||||
var record = {};
|
||||
that.save(record);
|
||||
|
||||
that.entity.register(
|
||||
record.username,
|
||||
record.password,
|
||||
function() {
|
||||
var facet = that.entity.get_facet('search');
|
||||
facet.refresh();
|
||||
that.close();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
that.add_button('Cancel', function() {
|
||||
that.close();
|
||||
});
|
||||
|
||||
return that;
|
||||
};
|
||||
|
||||
IPA.entitle.consume_dialog = function(spec) {
|
||||
|
||||
spec = spec || {};
|
||||
@ -175,19 +303,14 @@ IPA.entitle.consume_dialog = function(spec) {
|
||||
var record = {};
|
||||
that.save(record);
|
||||
|
||||
var command = IPA.command({
|
||||
entity: 'entitle',
|
||||
method: 'consume',
|
||||
args: [ record.quantity ],
|
||||
on_success: function() {
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
var facet = entity.get_facet('search');
|
||||
facet.table.refresh();
|
||||
that.entity.consume(
|
||||
record.quantity,
|
||||
function() {
|
||||
var facet = that.entity.get_facet('search');
|
||||
facet.refresh();
|
||||
that.close();
|
||||
}
|
||||
});
|
||||
|
||||
command.execute();
|
||||
);
|
||||
});
|
||||
|
||||
that.add_button('Cancel', function() {
|
||||
|
@ -64,6 +64,9 @@ IPA.facet = function (spec) {
|
||||
};
|
||||
|
||||
function init() {
|
||||
|
||||
that.entity = IPA.get_entity(that.entity_name);
|
||||
|
||||
for (var i=0; i<that.dialogs.length; i++){
|
||||
var dialog = that.dialogs[i];
|
||||
dialog.entity_name = that._entity_name;
|
||||
@ -220,7 +223,6 @@ IPA.entity = function (spec) {
|
||||
|
||||
that.standard_associations = that.create_association_facets;
|
||||
|
||||
|
||||
that.init = function() {
|
||||
|
||||
if (!that.label) {
|
||||
@ -576,8 +578,14 @@ IPA.entity_builder = function(){
|
||||
}
|
||||
}
|
||||
|
||||
that.entity = function(name){
|
||||
entity = IPA.entity({name: name});
|
||||
that.entity = function(spec) {
|
||||
if (spec instanceof Object){
|
||||
var factory = spec.factory || IPA.entity;
|
||||
entity = factory(spec);
|
||||
} else {
|
||||
var name = spec;
|
||||
entity = IPA.entity({name: name});
|
||||
}
|
||||
return that;
|
||||
};
|
||||
|
||||
@ -588,7 +596,7 @@ IPA.entity_builder = function(){
|
||||
} else {
|
||||
dialog = IPA.dialog(spec);
|
||||
}
|
||||
facet.dialog(dialog);
|
||||
entity.dialog(dialog);
|
||||
return that;
|
||||
};
|
||||
|
||||
|
@ -471,6 +471,10 @@ span.ui-icon-search {
|
||||
margin-left: 1em !important;
|
||||
}
|
||||
|
||||
[title="Register"] {
|
||||
margin-left: 1em !important;
|
||||
}
|
||||
|
||||
[title="Consume"] {
|
||||
margin-left: 1em !important;
|
||||
}
|
||||
|
@ -252,6 +252,8 @@ IPA.command = function(spec) {
|
||||
that.on_success = spec.on_success;
|
||||
that.on_error = spec.on_error;
|
||||
|
||||
that.retry = typeof spec.retry == 'undefined' ? true : spec.retry;
|
||||
|
||||
that.get_command = function() {
|
||||
return (that.entity ? that.entity+'_' : '') + that.method;
|
||||
};
|
||||
@ -352,14 +354,19 @@ IPA.command = function(spec) {
|
||||
if (!error_thrown.title) {
|
||||
error_thrown.title = 'AJAX Error: '+error_thrown.name;
|
||||
}
|
||||
dialog_open.call(this, xhr, text_status, error_thrown);
|
||||
|
||||
if (that.retry) {
|
||||
dialog_open.call(this, xhr, text_status, error_thrown);
|
||||
|
||||
} else if (that.on_error) {
|
||||
that.on_error.call(this, xhr, text_status, error_thrown);
|
||||
}
|
||||
}
|
||||
|
||||
function success_handler(data, text_status, xhr) {
|
||||
|
||||
IPA.hide_activity_icon();
|
||||
|
||||
if (!data) {
|
||||
IPA.hide_activity_icon();
|
||||
var error_thrown = {
|
||||
title: 'HTTP Error '+xhr.status,
|
||||
url: this.url,
|
||||
@ -368,12 +375,14 @@ IPA.command = function(spec) {
|
||||
dialog_open.call(this, xhr, text_status, error_thrown);
|
||||
|
||||
} else if (data.error) {
|
||||
// error_handler() calls IPA.hide_activity_icon()
|
||||
error_handler.call(this, xhr, text_status, /* error_thrown */ {
|
||||
title: 'IPA Error '+data.error.code,
|
||||
message: data.error.message
|
||||
});
|
||||
|
||||
} else if (that.on_success) {
|
||||
IPA.hide_activity_icon();
|
||||
that.on_success.call(this, data, text_status, xhr);
|
||||
}
|
||||
}
|
||||
|
11
install/ui/test/data/entitle_get_unregistered.json
Normal file
11
install/ui/test/data/entitle_get_unregistered.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"error": {
|
||||
"code": 4306,
|
||||
"message": "Not registered yet",
|
||||
"name": {
|
||||
"__base64__": "Tm90UmVnaXN0ZXJlZEVycm9y"
|
||||
}
|
||||
},
|
||||
"id": 0,
|
||||
"result": null
|
||||
}
|
26
install/ui/test/data/entitle_register.json
Normal file
26
install/ui/test/data/entitle_register.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"error": null,
|
||||
"id": 0,
|
||||
"result": {
|
||||
"result": {
|
||||
"dn": "ipaentitlementid=cf9d9755-7445-438c-a40c-23b1c60e1f9b,cn=entitlements,cn=etc,dc=idm,dc=lab,dc=bos,dc=redhat,dc=com",
|
||||
"ipaentitlementid": [
|
||||
"cf9d9755-7445-438c-a40c-23b1c60e1f9b"
|
||||
],
|
||||
"ipauniqueid": [
|
||||
"50afc3cc-649c-11e0-ab97-00163e2fe6de"
|
||||
],
|
||||
"objectclass": [
|
||||
"ipaobject",
|
||||
"ipaentitlement"
|
||||
],
|
||||
"userpkcs12": [
|
||||
{
|
||||
"__base64__": "MIIKBAIBAzCCCcoGCSqGSIb3DQEHAaCCCbsEggm3MIIJszCCBEcGCSqGSIb3DQEHBqCCBDgwggQ0AgEAMIIELQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIxnjz6Zlw3KwCAggAgIIEABj2ncaXXZKd82QKa6p1SAKmIoSY3/Nw8y7RPCtOJdTbcSimEjWXEvcL7V9Y5pa7dn9P8T6bnKzTreA39d4gBpsQtPDknwuTyrcZc1XaMdwtOh2nLMvMLye/fhD5XP0jgospdzg9vf/drq7IHG2e8hK735PesmFj4Jx01oGyS7SzuEQ8Mf44l35pOdGhjBvnZTTaLdtQFR1Atu1EyX7+KHz6ZRkuv8+aVXTuV/EkFm18FW5LgoetYnHb4YvgukFQE1ZDxBebyUvB5MIVuJnBn4kPkHfNg32+sQpFwQoB6RAro9Kwkb25I+x8XTv7BTMwfGEr7e2LRlhsWmm5oQz24XCUpeSJb4LNmBuiqb+gBCpAiG++uZczrWHvdolBQY4igX2/1fd/PMK6NUFJbzL8dikyIHxZyo8gSb01wMk1Bq9uVM+R7fzyBUtqitz7+rXp8hc/BbamVvyfVeG31KR59WJDxbVtgLQmuDxJWBsG86YWoujV/1iheMiknLfI4prKcbtaGuJCvD9ZdiBooUBWi6l9zt2paoH+8zQPu/BPmOYt5onv+LeXBy//awEw78VXmA27kc9TTsQpIZu9busMWBaL0735fCjIoQIQhumwcuRwiWi/9QRgE/+uYbnBu+PtBV2nC+6AjPDbpebZqPQ2hDZeQ5YleSd5wSkSWtbLkAyouFi9uhnKAXyIpH+lJzVqOPrntOTljCFVNrvdxH6AjVUVfP+VIZALM+7H2TBoUtylauWe39GHShWxXlithLDE/Ssv8uwHdoRoOHjcFMlSjuWzgFDGM7MFWv/W9uQkGUax7wtZVzOpAWoaFEEFXnvFKqgESxA7ij/FVkFvWyx2uW3ERTkW0UZZ4l247x99RolhxLKD287gyjFxmOiIYIe380dERQQF3P18LFmJaLCTEdrx3ZHmYDtj8UzT8B3SkBLFz4ERnE19snixqxGoxHBN3ZvWVm+f2IxSALcl+dUANG/1PCWmWYXeEallMnQyITi4r2amx1Du4kFVzltTgB1kd5r7iFNO163XJ45dIdmJAeg23AnX6N1ldavTnGuOZ98hpj93mHadXDZFNUkBAN4sSSZx57qvev/Cn5k6YLq1u0X+jHfx+ADRyQwB8dWPYzmwdCsZp2Qmpd7KBAXcUY6BIQpMLK3uaDfH6PcBsphX/ECRtFqwrZ1gnAXsf/iv2mykH4mSWiEkMnO1RmAHxkfqquU7ZqSxVeEYSQT81OU/RlKD/hHOW7QMKkbtRVVhHSL/aEjfjiKzugk+ce3si4DvhOyWmAwOysb43baI8m0aWMLTFv7HRnjdnkFOWRoZ2KI7JBNNp10Py5xkOF5UKhYLavGxCk0bDjXID5wWrgtUboswggVkBgkqhkiG9w0BBwGgggVVBIIFUTCCBU0wggVJBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIXn9I2KvCFUICAggABIIEyOr5+72qJs/f+xsFXBpOSYJU6JWdrvHMFdln7gW+haXjTA3a3KH9u3WeBddeYV+c9KCQIqbRh+pTGH0Zj6jKLr3uYR5nbQxOarysiTRfPuZVbJMrloHjAsCvIatXH8Ghvuscasv922TCaZy7EqZZKttX/XhUYSp5cY26tUnb3M+v2HYcMh2Y0MaOKwAZGaWRswRSogjWO4PijLL3ZHN9RKiLFsM8uPFEMM1T5j0v1gzu/pIAjmuCUJqW3/4pxQdWqxRHvbpsrYenObrvAbLG6jb61kpl3NqtG3wprnS090wihmVatqFfbx5EiECi9SmUN0IkygluqTAnQ69ZJOatEFm7vwXGcv/dkJtj/YzGjg+MLtbDQ7sNwKqekhOaaaDyjrgiBftAHvtPuLNKgEQlC/9FC9OxFRotFdHp1hpd0vVJqixCCYuieWDQNplG10uTl5xcoI1XxO1tDH8ar8qp0lUQFsjnuHPwW4Keo/9xVE4WOESxmxRTX4tHQn2NUYZCNv9mnXNfYENV2xVIEd6r6QuSrSo2tfYsaz5L1pH2TV4QMMpm4DyN0tuLFCE7EDEZJK4j3l3Ezlzuj31uTTIFZ9KVy/2e9GvxeTkUMASzWskwgQxbRejrtKjye/DJhiTbmrV/WIGLjzs0srPBZm5QD0pCLxRbLmC1KK5S7zn/2c4XW1d+Hu+vnOJhcvXv84kpobCefZNOvhcMsgMn3QmXDxRT0NhSajsxihtm8+r+MVL3KsmTwEN8OxFzDGDW4kHfM94a7+zpvAPWfSxLygpZa6jqjIRAGJKzWGtTmzsZYCtM+setghjTTrOoT7jcJSI8Tha35R16sIuG7+QQszdrj+VUzjG8qKjby+YhWP7syDWMsoV8J4K5kNsjs4B9cGg+pP/lajNGDB1ZGSW0JCqgq5dLUBFURXPXDTkdOqmOm2/kK3XZnmspt5mm/ofCvlmsncXEBr8DBgEC+G3UU6D1woCGt7oQ5xkyprIZIiztSN3HDLLyyeH1XgQxYBR5rZa+sWJR/DEReFvbwkf5qICRUloFNDA1+XVhKLnb9hQwvlbVkwE6dW2zOmExc7Pj63YQZsAsbDJSMn5S4nJ9od30VDiBYgs0F+nUejMe8YpOHnMgIMa2CN3U9zqSDGukVnS15zUH9f7HVFtsGgJFijsUmeUneiSRc/Toocgfzmedwog7vCdZSJt1LifA2FJkHQqxbXCcQqRyihgPrJ4cNxMdD/M23HXekRZaQ6pByu00AalWZgAyNyMRFKCmbfgNAG7011ezQGf8ubwines7u/4+1aH7FvkXam6Mq421klH5MMz07eH7vvDk9kt7ydjbtGiNUOHy9BFQyX845kwzfuS7lHgcIhXtEV4Rz16TaGwpXDqaxkESh1SlsTE5K7vl6RZlRv3b4Ero77Qc8+cEOteRGGq601leLP8nFAE42e36jXRGA0rNtDeE0mzhWsfPa2oZXbhUsa/UwSO4y3E/v/wTnWujzjIx56DHa+PeL0n/3iIb2W3YM1UcISKeHR/W1pAl7P7bEXwU840QrVuuPRDXoO5WRV4YGesWkk1Y0s8CwveyPKkPk5EMGOYenT5Hl2iobwPQ0nB2grB2Xf7Mz+PxN80IrZ7EpKkkJDFIMCEGCSqGSIb3DQEJFDEUHhIAYwBhAG4AZABsAGUAcABpAG4wIwYJKoZIhvcNAQkVMRYEFCSRjVYZWlcYO2q3RujbLY3xz3w9MDEwITAJBgUrDgMCGgUABBRTgMXTmP9+Z+fIVhw4Etyj7dd6zgQI8DqMKrvKUjcCAggA"
|
||||
}
|
||||
]
|
||||
},
|
||||
"summary": "Registered to entitlement server.",
|
||||
"value": ""
|
||||
}
|
||||
}
|
@ -693,6 +693,407 @@
|
||||
"dnszone_show": {
|
||||
"__base64__": ""
|
||||
},
|
||||
"entitle_consume": {
|
||||
"takes_args": [
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Int",
|
||||
"cli_name": "quantity",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Quantity",
|
||||
"exclude": null,
|
||||
"flags": [],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "Quantity",
|
||||
"maxvalue": 2147483647,
|
||||
"minvalue": 1,
|
||||
"multivalue": false,
|
||||
"name": "quantity",
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": true,
|
||||
"type": "int"
|
||||
}
|
||||
],
|
||||
"takes_options": [
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": true,
|
||||
"class": "Int",
|
||||
"cli_name": "hidden",
|
||||
"cli_short_name": null,
|
||||
"default": 1,
|
||||
"doc": "Quantity",
|
||||
"exclude": null,
|
||||
"flags": [
|
||||
"no_option",
|
||||
"no_output"
|
||||
],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "Quantity",
|
||||
"maxvalue": 2147483647,
|
||||
"minvalue": 1,
|
||||
"multivalue": false,
|
||||
"name": "hidden",
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": true,
|
||||
"type": "int"
|
||||
}
|
||||
]
|
||||
},
|
||||
"entitle_find": {
|
||||
"takes_options": [
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Int",
|
||||
"cli_name": "timelimit",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Time limit of search in seconds",
|
||||
"exclude": null,
|
||||
"flags": [
|
||||
"no_display"
|
||||
],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "Time Limit",
|
||||
"maxvalue": 2147483647,
|
||||
"minvalue": 0,
|
||||
"multivalue": false,
|
||||
"name": "timelimit",
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": false,
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Int",
|
||||
"cli_name": "sizelimit",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Maximum number of entries returned",
|
||||
"exclude": null,
|
||||
"flags": [
|
||||
"no_display"
|
||||
],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "Size Limit",
|
||||
"maxvalue": 2147483647,
|
||||
"minvalue": 0,
|
||||
"multivalue": false,
|
||||
"name": "sizelimit",
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": false,
|
||||
"type": "int"
|
||||
}
|
||||
]
|
||||
},
|
||||
"entitle_import": {
|
||||
"takes_args": [
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "File",
|
||||
"cli_name": "certificate_file",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "<usercertificate>",
|
||||
"exclude": null,
|
||||
"flags": [],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "<usercertificate>",
|
||||
"length": null,
|
||||
"maxlength": null,
|
||||
"minlength": null,
|
||||
"multivalue": true,
|
||||
"name": "usercertificate",
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": false,
|
||||
"stdin_if_missing": false,
|
||||
"type": "unicode"
|
||||
}
|
||||
],
|
||||
"takes_options": [
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Str",
|
||||
"cli_name": "addattr",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Add an attribute/value pair. Format is attr=value. The attribute must be part of the schema.",
|
||||
"exclude": [
|
||||
"webui"
|
||||
],
|
||||
"flags": [],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "<addattr>",
|
||||
"length": null,
|
||||
"maxlength": null,
|
||||
"minlength": null,
|
||||
"multivalue": true,
|
||||
"name": "addattr",
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": false,
|
||||
"type": "unicode"
|
||||
},
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Str",
|
||||
"cli_name": "setattr",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Set an attribute to a name/value pair. Format is attr=value.\nFor multi-valued attributes, the command replaces the values already present.",
|
||||
"exclude": [
|
||||
"webui"
|
||||
],
|
||||
"flags": [],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "<setattr>",
|
||||
"length": null,
|
||||
"maxlength": null,
|
||||
"minlength": null,
|
||||
"multivalue": true,
|
||||
"name": "setattr",
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": false,
|
||||
"type": "unicode"
|
||||
},
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": true,
|
||||
"class": "Str",
|
||||
"cli_name": "uuid",
|
||||
"cli_short_name": null,
|
||||
"default": "IMPORTED",
|
||||
"doc": "Enrollment UUID",
|
||||
"exclude": null,
|
||||
"flags": [
|
||||
"no_update",
|
||||
"no_create"
|
||||
],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "UUID",
|
||||
"length": null,
|
||||
"maxlength": null,
|
||||
"minlength": null,
|
||||
"multivalue": false,
|
||||
"name": "uuid",
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": false,
|
||||
"type": "unicode"
|
||||
}
|
||||
]
|
||||
},
|
||||
"entitle_register": {
|
||||
"takes_args": [
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Str",
|
||||
"cli_name": "username",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Username",
|
||||
"exclude": null,
|
||||
"flags": [],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "Username",
|
||||
"length": null,
|
||||
"maxlength": null,
|
||||
"minlength": null,
|
||||
"multivalue": false,
|
||||
"name": "username",
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": true,
|
||||
"type": "unicode"
|
||||
}
|
||||
],
|
||||
"takes_options": [
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Str",
|
||||
"cli_name": "addattr",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Add an attribute/value pair. Format is attr=value. The attribute must be part of the schema.",
|
||||
"exclude": [
|
||||
"webui"
|
||||
],
|
||||
"flags": [],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "<addattr>",
|
||||
"length": null,
|
||||
"maxlength": null,
|
||||
"minlength": null,
|
||||
"multivalue": true,
|
||||
"name": "addattr",
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": false,
|
||||
"type": "unicode"
|
||||
},
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Str",
|
||||
"cli_name": "setattr",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Set an attribute to a name/value pair. Format is attr=value.\nFor multi-valued attributes, the command replaces the values already present.",
|
||||
"exclude": [
|
||||
"webui"
|
||||
],
|
||||
"flags": [],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "<setattr>",
|
||||
"length": null,
|
||||
"maxlength": null,
|
||||
"minlength": null,
|
||||
"multivalue": true,
|
||||
"name": "setattr",
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": false,
|
||||
"type": "unicode"
|
||||
},
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Str",
|
||||
"cli_name": "ipaentitlementid",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Enrollment UUID",
|
||||
"exclude": null,
|
||||
"flags": [
|
||||
"no_update",
|
||||
"no_create"
|
||||
],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "UUID",
|
||||
"length": null,
|
||||
"maxlength": null,
|
||||
"minlength": null,
|
||||
"multivalue": false,
|
||||
"name": "ipaentitlementid",
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": false,
|
||||
"type": "unicode"
|
||||
},
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": false,
|
||||
"class": "Password",
|
||||
"cli_name": "password",
|
||||
"cli_short_name": null,
|
||||
"default": null,
|
||||
"doc": "Registration password",
|
||||
"exclude": null,
|
||||
"flags": [],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "Password",
|
||||
"length": null,
|
||||
"maxlength": null,
|
||||
"minlength": null,
|
||||
"multivalue": false,
|
||||
"name": "password",
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": true,
|
||||
"type": "unicode"
|
||||
}
|
||||
]
|
||||
},
|
||||
"entitle_sync": {
|
||||
"takes_args": [],
|
||||
"takes_options": [
|
||||
{
|
||||
"alwaysask": false,
|
||||
"attribute": false,
|
||||
"autofill": true,
|
||||
"class": "Int",
|
||||
"cli_name": "hidden",
|
||||
"cli_short_name": null,
|
||||
"default": 1,
|
||||
"doc": "Quantity",
|
||||
"exclude": null,
|
||||
"flags": [
|
||||
"no_option",
|
||||
"no_output"
|
||||
],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "Quantity",
|
||||
"maxvalue": 2147483647,
|
||||
"minvalue": 1,
|
||||
"multivalue": false,
|
||||
"name": "hidden",
|
||||
"primary_key": false,
|
||||
"query": false,
|
||||
"required": true,
|
||||
"type": "int"
|
||||
}
|
||||
]
|
||||
},
|
||||
"group_add": {
|
||||
"takes_options": [
|
||||
{
|
||||
|
@ -282,6 +282,7 @@ IPA.text_widget = function(spec) {
|
||||
var that = IPA.widget(spec);
|
||||
|
||||
that.size = spec.size || 30;
|
||||
that.type = spec.type || 'text';
|
||||
|
||||
that.create = function(container) {
|
||||
|
||||
@ -291,7 +292,7 @@ IPA.text_widget = function(spec) {
|
||||
}).appendTo(container);
|
||||
|
||||
$('<input/>', {
|
||||
type: 'text',
|
||||
type: that.type,
|
||||
name: that.name,
|
||||
disabled: that.disabled,
|
||||
size: that.size,
|
||||
|
@ -633,7 +633,7 @@ class LDAPCreate(CallbackInterface, crud.Create):
|
||||
|
||||
# list of attributes we want exported to JSON
|
||||
json_friendly_attributes = (
|
||||
'takes_options',
|
||||
'takes_args', 'takes_options',
|
||||
)
|
||||
|
||||
def __json__(self):
|
||||
@ -655,6 +655,16 @@ class LDAPQuery(CallbackInterface, crud.PKQuery):
|
||||
for arg in super(crud.PKQuery, self).get_args():
|
||||
yield arg
|
||||
|
||||
# list of attributes we want exported to JSON
|
||||
json_friendly_attributes = (
|
||||
'takes_args', 'takes_options',
|
||||
)
|
||||
|
||||
def __json__(self):
|
||||
json_dict = dict(
|
||||
(a, getattr(self, a)) for a in self.json_friendly_attributes
|
||||
)
|
||||
return json_dict
|
||||
|
||||
class LDAPMultiQuery(LDAPQuery):
|
||||
"""
|
||||
@ -1445,6 +1455,16 @@ class LDAPSearch(CallbackInterface, crud.Search):
|
||||
def exc_callback(self, args, options, exc, call_func, *call_args, **call_kwargs):
|
||||
raise exc
|
||||
|
||||
# list of attributes we want exported to JSON
|
||||
json_friendly_attributes = (
|
||||
'takes_options',
|
||||
)
|
||||
|
||||
def __json__(self):
|
||||
json_dict = dict(
|
||||
(a, getattr(self, a)) for a in self.json_friendly_attributes
|
||||
)
|
||||
return json_dict
|
||||
|
||||
class LDAPModReverseMember(LDAPQuery):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user