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.init = function() {
|
||||||
|
|
||||||
|
that.entity = IPA.get_entity(that.entity_name);
|
||||||
|
|
||||||
for (var i=0; i<that.fields.length; i++) {
|
for (var i=0; i<that.fields.length; i++) {
|
||||||
var field = that.fields[i];
|
var field = that.fields[i];
|
||||||
field.entity_name = that.entity_name;
|
field.entity_name = that.entity_name;
|
||||||
|
@ -25,12 +25,18 @@
|
|||||||
|
|
||||||
IPA.entitle = {};
|
IPA.entitle = {};
|
||||||
|
|
||||||
|
IPA.entitle.unregistered = 'unregistered';
|
||||||
|
IPA.entitle.registered = 'registered';
|
||||||
|
|
||||||
IPA.entity_factories.entitle = function() {
|
IPA.entity_factories.entitle = function() {
|
||||||
|
|
||||||
var builder = IPA.entity_builder();
|
var builder = IPA.entity_builder();
|
||||||
|
|
||||||
builder.
|
builder.
|
||||||
entity('entitle').
|
entity({
|
||||||
|
factory: IPA.entitle.entity,
|
||||||
|
name: 'entitle'
|
||||||
|
}).
|
||||||
facet({
|
facet({
|
||||||
factory: IPA.entitle.search_facet,
|
factory: IPA.entitle.search_facet,
|
||||||
columns: [
|
columns: [
|
||||||
@ -50,21 +56,8 @@ IPA.entity_factories.entitle = function() {
|
|||||||
name: 'end',
|
name: 'end',
|
||||||
label: '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({
|
details_facet({
|
||||||
sections: [
|
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();
|
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) {
|
IPA.entitle.search_facet = function(spec) {
|
||||||
|
|
||||||
spec = spec || {};
|
spec = spec || {};
|
||||||
@ -95,6 +178,12 @@ IPA.entitle.search_facet = function(spec) {
|
|||||||
'class': 'search-buttons'
|
'class': 'search-buttons'
|
||||||
}).appendTo(li);
|
}).appendTo(li);
|
||||||
|
|
||||||
|
$('<input/>', {
|
||||||
|
type: 'button',
|
||||||
|
name: 'register',
|
||||||
|
value: 'Register'
|
||||||
|
}).appendTo(buttons);
|
||||||
|
|
||||||
$('<input/>', {
|
$('<input/>', {
|
||||||
type: 'button',
|
type: 'button',
|
||||||
name: 'consume',
|
name: 'consume',
|
||||||
@ -108,15 +197,29 @@ IPA.entitle.search_facet = function(spec) {
|
|||||||
|
|
||||||
var action_panel = that.get_action_panel();
|
var action_panel = that.get_action_panel();
|
||||||
|
|
||||||
var button = $('input[name=consume]', action_panel);
|
var button = $('input[name=register]', action_panel);
|
||||||
that.consume_button = IPA.action_button({
|
that.register_button = IPA.action_button({
|
||||||
label: 'Consume',
|
label: 'Register',
|
||||||
icon: 'ui-icon-plus',
|
icon: 'ui-icon-plus',
|
||||||
click: function() {
|
click: function() {
|
||||||
var dialog = that.get_dialog('consume');
|
var dialog = that.entity.get_dialog('register');
|
||||||
dialog.open(that.container);
|
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);
|
button.replaceWith(that.consume_button);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -124,6 +227,9 @@ IPA.entitle.search_facet = function(spec) {
|
|||||||
|
|
||||||
function on_success(data, text_status, xhr) {
|
function on_success(data, text_status, xhr) {
|
||||||
|
|
||||||
|
that.register_button.css('display', 'none');
|
||||||
|
that.consume_button.css('display', 'inline');
|
||||||
|
|
||||||
that.table.empty();
|
that.table.empty();
|
||||||
|
|
||||||
var result = data.result.result;
|
var result = data.result.result;
|
||||||
@ -132,7 +238,7 @@ IPA.entitle.search_facet = function(spec) {
|
|||||||
that.table.add_record(record);
|
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) {
|
if (data.result.truncated) {
|
||||||
var message = IPA.messages.search.truncated;
|
var message = IPA.messages.search.truncated;
|
||||||
message = message.replace('${counter}', data.result.count);
|
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) {
|
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();
|
var summary = $('span[name=summary]', that.table.tfoot).empty();
|
||||||
summary.append('<p>Error: '+error_thrown.name+'</p>');
|
summary.append(error_thrown.message);
|
||||||
summary.append('<p>'+error_thrown.title+'</p>');
|
|
||||||
summary.append('<p>'+error_thrown.message+'</p>');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var command = IPA.command({
|
that.entity.get_certificates(
|
||||||
entity: 'entitle',
|
on_success,
|
||||||
method: 'get',
|
on_error);
|
||||||
options: {
|
|
||||||
all: that.search_all
|
|
||||||
},
|
|
||||||
on_success: on_success,
|
|
||||||
on_error: on_error
|
|
||||||
});
|
|
||||||
|
|
||||||
command.execute();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return that;
|
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) {
|
IPA.entitle.consume_dialog = function(spec) {
|
||||||
|
|
||||||
spec = spec || {};
|
spec = spec || {};
|
||||||
@ -175,19 +303,14 @@ IPA.entitle.consume_dialog = function(spec) {
|
|||||||
var record = {};
|
var record = {};
|
||||||
that.save(record);
|
that.save(record);
|
||||||
|
|
||||||
var command = IPA.command({
|
that.entity.consume(
|
||||||
entity: 'entitle',
|
record.quantity,
|
||||||
method: 'consume',
|
function() {
|
||||||
args: [ record.quantity ],
|
var facet = that.entity.get_facet('search');
|
||||||
on_success: function() {
|
facet.refresh();
|
||||||
var entity = IPA.get_entity(that.entity_name);
|
|
||||||
var facet = entity.get_facet('search');
|
|
||||||
facet.table.refresh();
|
|
||||||
that.close();
|
that.close();
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
command.execute();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
that.add_button('Cancel', function() {
|
that.add_button('Cancel', function() {
|
||||||
|
@ -64,6 +64,9 @@ IPA.facet = function (spec) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
|
|
||||||
|
that.entity = IPA.get_entity(that.entity_name);
|
||||||
|
|
||||||
for (var i=0; i<that.dialogs.length; i++){
|
for (var i=0; i<that.dialogs.length; i++){
|
||||||
var dialog = that.dialogs[i];
|
var dialog = that.dialogs[i];
|
||||||
dialog.entity_name = that._entity_name;
|
dialog.entity_name = that._entity_name;
|
||||||
@ -220,7 +223,6 @@ IPA.entity = function (spec) {
|
|||||||
|
|
||||||
that.standard_associations = that.create_association_facets;
|
that.standard_associations = that.create_association_facets;
|
||||||
|
|
||||||
|
|
||||||
that.init = function() {
|
that.init = function() {
|
||||||
|
|
||||||
if (!that.label) {
|
if (!that.label) {
|
||||||
@ -576,8 +578,14 @@ IPA.entity_builder = function(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
that.entity = function(name){
|
that.entity = function(spec) {
|
||||||
entity = IPA.entity({name: name});
|
if (spec instanceof Object){
|
||||||
|
var factory = spec.factory || IPA.entity;
|
||||||
|
entity = factory(spec);
|
||||||
|
} else {
|
||||||
|
var name = spec;
|
||||||
|
entity = IPA.entity({name: name});
|
||||||
|
}
|
||||||
return that;
|
return that;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -588,7 +596,7 @@ IPA.entity_builder = function(){
|
|||||||
} else {
|
} else {
|
||||||
dialog = IPA.dialog(spec);
|
dialog = IPA.dialog(spec);
|
||||||
}
|
}
|
||||||
facet.dialog(dialog);
|
entity.dialog(dialog);
|
||||||
return that;
|
return that;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -471,6 +471,10 @@ span.ui-icon-search {
|
|||||||
margin-left: 1em !important;
|
margin-left: 1em !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[title="Register"] {
|
||||||
|
margin-left: 1em !important;
|
||||||
|
}
|
||||||
|
|
||||||
[title="Consume"] {
|
[title="Consume"] {
|
||||||
margin-left: 1em !important;
|
margin-left: 1em !important;
|
||||||
}
|
}
|
||||||
|
@ -252,6 +252,8 @@ IPA.command = function(spec) {
|
|||||||
that.on_success = spec.on_success;
|
that.on_success = spec.on_success;
|
||||||
that.on_error = spec.on_error;
|
that.on_error = spec.on_error;
|
||||||
|
|
||||||
|
that.retry = typeof spec.retry == 'undefined' ? true : spec.retry;
|
||||||
|
|
||||||
that.get_command = function() {
|
that.get_command = function() {
|
||||||
return (that.entity ? that.entity+'_' : '') + that.method;
|
return (that.entity ? that.entity+'_' : '') + that.method;
|
||||||
};
|
};
|
||||||
@ -352,14 +354,19 @@ IPA.command = function(spec) {
|
|||||||
if (!error_thrown.title) {
|
if (!error_thrown.title) {
|
||||||
error_thrown.title = 'AJAX Error: '+error_thrown.name;
|
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) {
|
function success_handler(data, text_status, xhr) {
|
||||||
|
|
||||||
IPA.hide_activity_icon();
|
|
||||||
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
|
IPA.hide_activity_icon();
|
||||||
var error_thrown = {
|
var error_thrown = {
|
||||||
title: 'HTTP Error '+xhr.status,
|
title: 'HTTP Error '+xhr.status,
|
||||||
url: this.url,
|
url: this.url,
|
||||||
@ -368,12 +375,14 @@ IPA.command = function(spec) {
|
|||||||
dialog_open.call(this, xhr, text_status, error_thrown);
|
dialog_open.call(this, xhr, text_status, error_thrown);
|
||||||
|
|
||||||
} else if (data.error) {
|
} else if (data.error) {
|
||||||
|
// error_handler() calls IPA.hide_activity_icon()
|
||||||
error_handler.call(this, xhr, text_status, /* error_thrown */ {
|
error_handler.call(this, xhr, text_status, /* error_thrown */ {
|
||||||
title: 'IPA Error '+data.error.code,
|
title: 'IPA Error '+data.error.code,
|
||||||
message: data.error.message
|
message: data.error.message
|
||||||
});
|
});
|
||||||
|
|
||||||
} else if (that.on_success) {
|
} else if (that.on_success) {
|
||||||
|
IPA.hide_activity_icon();
|
||||||
that.on_success.call(this, data, text_status, xhr);
|
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__": "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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"summary": "Registered to entitlement server.",
|
||||||
|
"value": ""
|
||||||
|
}
|
||||||
|
}
|
@ -693,6 +693,407 @@
|
|||||||
"dnszone_show": {
|
"dnszone_show": {
|
||||||
"__base64__": ""
|
"__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": {
|
"group_add": {
|
||||||
"takes_options": [
|
"takes_options": [
|
||||||
{
|
{
|
||||||
|
@ -282,6 +282,7 @@ IPA.text_widget = function(spec) {
|
|||||||
var that = IPA.widget(spec);
|
var that = IPA.widget(spec);
|
||||||
|
|
||||||
that.size = spec.size || 30;
|
that.size = spec.size || 30;
|
||||||
|
that.type = spec.type || 'text';
|
||||||
|
|
||||||
that.create = function(container) {
|
that.create = function(container) {
|
||||||
|
|
||||||
@ -291,7 +292,7 @@ IPA.text_widget = function(spec) {
|
|||||||
}).appendTo(container);
|
}).appendTo(container);
|
||||||
|
|
||||||
$('<input/>', {
|
$('<input/>', {
|
||||||
type: 'text',
|
type: that.type,
|
||||||
name: that.name,
|
name: that.name,
|
||||||
disabled: that.disabled,
|
disabled: that.disabled,
|
||||||
size: that.size,
|
size: that.size,
|
||||||
|
@ -633,7 +633,7 @@ class LDAPCreate(CallbackInterface, crud.Create):
|
|||||||
|
|
||||||
# list of attributes we want exported to JSON
|
# list of attributes we want exported to JSON
|
||||||
json_friendly_attributes = (
|
json_friendly_attributes = (
|
||||||
'takes_options',
|
'takes_args', 'takes_options',
|
||||||
)
|
)
|
||||||
|
|
||||||
def __json__(self):
|
def __json__(self):
|
||||||
@ -655,6 +655,16 @@ class LDAPQuery(CallbackInterface, crud.PKQuery):
|
|||||||
for arg in super(crud.PKQuery, self).get_args():
|
for arg in super(crud.PKQuery, self).get_args():
|
||||||
yield arg
|
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):
|
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):
|
def exc_callback(self, args, options, exc, call_func, *call_args, **call_kwargs):
|
||||||
raise exc
|
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):
|
class LDAPModReverseMember(LDAPQuery):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user