0002-Feature-764-Add-enable-disable-support-for-Users.patch
| src/sunstone/models/OpenNebulaJSON/UserJSON.rb | ||
|---|---|---|
| 37 | 37 |
end |
| 38 | 38 | |
| 39 | 39 |
rc = case action_hash['perform'] |
| 40 |
when "passwd" then self.passwd(action_hash['params']) |
|
| 40 |
when "enable" then self.enable |
|
| 41 |
when "disable" then self.disable |
|
| 42 |
when "passwd" then self.passwd(action_hash['params']) |
|
| 41 | 43 |
when "chgrp" then self.chgrp(action_hash['params']) |
| 42 |
when "addgroup" then self.addgroup(action_hash['params']) |
|
| 43 |
when "delgroup" then self.delgroup(action_hash['params']) |
|
| 44 |
when "addgroup" then self.addgroup(action_hash['params'])
|
|
| 45 |
when "delgroup" then self.delgroup(action_hash['params'])
|
|
| 44 | 46 |
else |
| 45 | 47 |
error_msg = "#{action_hash['perform']} action not " <<
|
| 46 | 48 |
" available for this resource" |
| src/sunstone/public/js/opennebula.js | ||
|---|---|---|
| 1722 | 1722 |
}); |
| 1723 | 1723 |
}, |
| 1724 | 1724 | |
| 1725 |
"enable" : function(params) |
|
| 1726 |
{
|
|
| 1727 |
var callback = params.success; |
|
| 1728 |
var callback_error = params.error; |
|
| 1729 |
var id = params.data.id; |
|
| 1730 | ||
| 1731 |
var method = "enable"; |
|
| 1732 |
var action = OpenNebula.Helper.action(method); |
|
| 1733 |
var resource = OpenNebula.User.resource; |
|
| 1734 |
var request = OpenNebula.Helper.request(resource,method, id); |
|
| 1735 | ||
| 1736 |
$.ajax({
|
|
| 1737 |
url: "user/" + id + "/action", |
|
| 1738 |
type: "POST", |
|
| 1739 |
data: JSON.stringify(action), |
|
| 1740 |
success: function() |
|
| 1741 |
{
|
|
| 1742 |
if (callback) |
|
| 1743 |
{
|
|
| 1744 |
callback(request); |
|
| 1745 |
} |
|
| 1746 |
}, |
|
| 1747 |
error: function(response) |
|
| 1748 |
{
|
|
| 1749 |
if(callback_error) |
|
| 1750 |
{
|
|
| 1751 |
callback_error(request, OpenNebula.Error(response)); |
|
| 1752 |
} |
|
| 1753 |
} |
|
| 1754 |
}); |
|
| 1755 |
}, |
|
| 1756 | ||
| 1757 |
"disable": function(params) |
|
| 1758 |
{
|
|
| 1759 |
var callback = params.success; |
|
| 1760 |
var callback_error = params.error; |
|
| 1761 |
var id = params.data.id; |
|
| 1762 | ||
| 1763 |
var method = "disable"; |
|
| 1764 |
var action = OpenNebula.Helper.action(method); |
|
| 1765 |
var resource = OpenNebula.User.resource; |
|
| 1766 |
var request = OpenNebula.Helper.request(resource,method, id); |
|
| 1767 | ||
| 1768 |
$.ajax({
|
|
| 1769 |
url: "user/" + id + "/action", |
|
| 1770 |
type: "POST", |
|
| 1771 |
data: JSON.stringify(action), |
|
| 1772 |
success: function() |
|
| 1773 |
{
|
|
| 1774 |
if (callback) |
|
| 1775 |
{
|
|
| 1776 |
callback(request); |
|
| 1777 |
} |
|
| 1778 |
}, |
|
| 1779 |
error: function(response) |
|
| 1780 |
{
|
|
| 1781 |
if(callback_error) |
|
| 1782 |
{
|
|
| 1783 |
callback_error(request, OpenNebula.Error(response)); |
|
| 1784 |
} |
|
| 1785 |
} |
|
| 1786 |
}); |
|
| 1787 |
}, |
|
| 1788 | ||
| 1725 | 1789 |
"delete": function(params) |
| 1726 | 1790 |
{
|
| 1727 | 1791 |
var callback = params.success; |
| src/sunstone/public/js/plugins/users-tab.js | ||
|---|---|---|
| 30 | 30 |
<th>ID</th>\ |
| 31 | 31 |
<th>Name</th>\ |
| 32 | 32 |
<th>Group</th>\ |
| 33 |
<th>Enabled</th>\ |
|
| 33 | 34 |
</tr>\ |
| 34 | 35 |
</thead>\ |
| 35 | 36 |
<tbody id="tbodyusers">\ |
| ... | ... | |
| 135 | 136 |
error: onError |
| 136 | 137 |
}, |
| 137 | 138 | |
| 139 |
"User.enable" : {
|
|
| 140 |
type: "multiple", |
|
| 141 |
call: OpenNebula.User.enable, |
|
| 142 |
callback: userShow, |
|
| 143 |
elements: userElements, |
|
| 144 |
error: onError, |
|
| 145 |
notify: true |
|
| 146 |
}, |
|
| 147 | ||
| 148 |
"User.disable" : {
|
|
| 149 |
type: "multiple", |
|
| 150 |
call: OpenNebula.User.disable, |
|
| 151 |
callback: userShow, |
|
| 152 |
elements: userElements, |
|
| 153 |
error: onError, |
|
| 154 |
notify: true |
|
| 155 |
}, |
|
| 156 | ||
| 138 | 157 |
"User.delete" : {
|
| 139 | 158 |
type: "multiple", |
| 140 | 159 |
call: OpenNebula.User.delete, |
| ... | ... | |
| 175 | 194 |
// tip: "Select the group from which to delete users:", |
| 176 | 195 |
// condition: True |
| 177 | 196 |
// }, |
| 197 |
"User.enable" : {
|
|
| 198 |
type: "action", |
|
| 199 |
text: "Enable" |
|
| 200 |
}, |
|
| 201 |
"User.disable" : {
|
|
| 202 |
type: "action", |
|
| 203 |
text: "Disable" |
|
| 204 |
}, |
|
| 178 | 205 |
"User.delete" : {
|
| 179 | 206 |
type: "action", |
| 180 | 207 |
text: "Delete" |
| ... | ... | |
| 194 | 221 |
return getSelectedNodes(dataTable_users); |
| 195 | 222 |
} |
| 196 | 223 | |
| 224 |
function userShow(req){
|
|
| 225 |
Sunstone.runAction("User.show",req.request.data[0]);
|
|
| 226 |
} |
|
| 227 | ||
| 197 | 228 |
// Returns an array with the values from the user_json ready to be |
| 198 | 229 |
// added to the dataTable |
| 199 | 230 |
function userElementArray(user_json){
|
| ... | ... | |
| 203 | 234 |
'<input type="checkbox" id="user_'+user.ID+'" name="selected_items" value="'+user.ID+'"/>', |
| 204 | 235 |
user.ID, |
| 205 | 236 |
user.NAME, |
| 206 |
user.GNAME |
|
| 237 |
user.GNAME, |
|
| 238 |
parseInt(user.ENABLED,10) ? "yes" : "no" |
|
| 207 | 239 |
] |
| 208 | 240 |
} |
| 209 | 241 | |
| ... | ... | |
| 308 | 340 |
"bAutoWidth":false, |
| 309 | 341 |
"aoColumnDefs": [ |
| 310 | 342 |
{ "bSortable": false, "aTargets": ["check"] },
|
| 343 |
{ "sWidth": "100px", "aTargets": [4] },
|
|
| 311 | 344 |
{ "sWidth": "60px", "aTargets": [0] },
|
| 312 | 345 |
{ "sWidth": "35px", "aTargets": [1] }
|
| 313 | 346 |
] |
| ... | ... | |
| 315 | 348 |
dataTable_users.fnClearTable(); |
| 316 | 349 |
addElement([ |
| 317 | 350 |
spinner, |
| 318 |
'','',''],dataTable_users); |
|
| 351 |
'','','',''],dataTable_users);
|
|
| 319 | 352 | |
| 320 | 353 |
Sunstone.runAction("User.list");
|
| 321 | 354 | |
| 322 |
- |
|