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 |
- |