*/
commands : {
init : {
+ "reload" : {
+ label : "Reload Data",
+ icon : "org.argeo.security.ria/view-refresh.png",
+ shortcut : "Control+h",
+ enabled : true,
+ menu : "Roles",
+ toolbar : "roles",
+ callback : function(e){
+ this.loadRolesList();
+ },
+ command : null
+ },
"new_role" : {
label : "Create Role",
icon : "org.argeo.security.ria/list-add.png",
viewSel.removeListener("changeSelection", this.monitorChooserSelectionChanges, this);
}
selectionModel.addListener("changeSelection", this.selectionToFilter, this);
+ if(selectionModel.getSelectedCount()){
+ var orig = selectionModel.getSelectedRanges()[0].minIndex;
+ }
selectionModel.setSelectionMode(qx.ui.table.selection.Model.MULTIPLE_INTERVAL_SELECTION_TOGGLE);
+ if(orig){
+ selectionModel.addSelectionInterval(orig, orig);
+ }
this.selectionToFilter();
}else if(guiMode == "edit"){
if(!this.usersAppletReference) return;
}
this.table.setEnabled(true);
selectionModel.removeListener("changeSelection", this.selectionToFilter, this);
+ if(selectionModel.getSelectedCount()){
+ var orig = selectionModel.getSelectedRanges()[0].minIndex;
+ }
selectionModel.setSelectionMode(qx.ui.table.selection.Model.SINGLE_SELECTION);
+ if(orig){
+ selectionModel.addSelectionInterval(orig, orig);
+ }
}
},
rolesList : {
},
- instanceId : {init:""},
- instanceLabel : {init:"Editor"},
+ instanceId : {
+ init:"",
+ event : "changeInstanceId"
+ },
+ instanceLabel : {
+ init:"Editor",
+ event : "changeInstanceLabel"
+ },
loaded : {
init : false
},
}else{
user.setRoles([]);
}
- user.setPassword(this.passPane.getData());
// GO TO AND RETURN FROM SERVER
if(user.isCreate()){
+ if(!this.passPane.validate()){
+ this.error("Warning, passwords differ!");
+ return;
+ }
+ user.setPassword(this.passPane.getData());
+ var create = true;
var userExists = false;
var req = org.argeo.security.ria.SecurityAPI.getUserExistsService(user.getName());
req.addListener("completed", function(response){
this.error("User already exists, choose another name!");
return;
}
+ }else{
+ var pass = this.passPane.getData();
+ if(pass != null && !this.passPane.validate()){
+ this.error("Warning, passwords differ!");
+ return;
+ }
}
- var userService = user.getSaveService();
- userService.send();
- userService.addListener("completed", function(response){
- if(response.getContent().status && response.getContent().status == "ERROR"){
- return;
+ this.passPane.clear();
+ var saveCompletedCallback = qx.lang.Function.bind(function(){
+ if(create){
+ this.setInstanceLabel("User " + user.getName());
+ this.setInstanceId(user.getName());
}
this._setGuiInCreateMode(false);
- user.load(response.getContent(), "json");
this.partialRefreshUser(user, ["details","natures"]);
this.setModified(false);
this.getViewSelection().triggerEvent();
- this.fireDataEvent("savedUser", user);
+ this.fireDataEvent("savedUser", user);
}, this);
+ var userService = user.getSaveService();
+ userService.addListener("completed", function(response){
+ if(response.getContent().status && response.getContent().status == "ERROR"){
+ return;
+ }
+ user.load(response.getContent(), "json");
+ if(pass!=null){
+ var passService = org.argeo.security.ria.SecurityAPI.getUpdateUserPassService(user.getName(), pass);
+ passService.addListener("completed", function(response){
+ if(response.getContent().status){
+ this.info(response.getContent().message);
+ }
+ saveCompletedCallback();
+ }, this);
+ passService.send();
+ }else{
+ saveCompletedCallback();
+ }
+ }, this);
+ userService.send();
},
_addNatureTab : function(natureClass, natureData, select){
*/
commands : {
init : {
- "load_users" : {
- label : "Reload Users",
- icon : "org.argeo.security.ria/view-refresh.png",
- shortcut : "Control+h",
- enabled : true,
- menu : "Users",
- toolbar : "users",
- callback : function(e){
- this.loadUsersList();
- },
- command : null
- },
"new_user" : {
label : "New User",
icon : "org.argeo.security.ria/list-add.png",
properties : {\r
valid : {\r
init : false\r
+ },\r
+ encoderCallback : {\r
+ init : function(string){\r
+ var encoderShort = org.argeo.ria.util.Encoder;\r
+ return "{SHA}"+encoderShort.base64Encode(encoderShort.hexDecode(encoderShort.hash(string, "sha1")));\r
+ },\r
+ check : "Function"\r
}\r
},\r
\r
getContainer : function(){\r
return this;\r
},\r
- getData : function(format){return true;},\r
+ getData : function(format){\r
+ var encoded = null;\r
+ if(this.pass1.getValue() != ""){\r
+ var encoder = this.getEncoderCallback();\r
+ encoded = encoder(this.pass1.getValue()); \r
+ }\r
+ return encoded;\r
+ },\r
+ clear : function(){\r
+ this.pass1.setValue("");\r
+ this.pass2.setValue(""); \r
+ },\r
validate : function(){\r
- if(this.pass1.getValue() == this.pass2.getValue()){\r
- this.setValid(true);\r
- }else{\r
+ if(this.pass1.getValue() != this.pass2.getValue() || this.pass1.getValue() == ""){\r
// TODO WHEN TESTING 0.8.3\r
//this.pass1.setValid(false);\r
//this.pass2.setValid(false); \r
this.setValid(false);\r
+ }else{\r
+ this.setValid(true);\r
}\r
return this.getValid();\r
},\r
init : "",\r
check : "String"\r
},\r
+ password : {\r
+ nullable : true,\r
+ check : "String"\r
+ },\r
roles : {\r
check : "Array"\r
},\r
this.base(arguments);\r
this.setRoles([]);\r
this.setNatures([]);\r
- this.setRawData({"password":"{SHA}ieSV55Qc+eQOaYDRSha/AjzNTJE="});\r
+ this.setRawData({password:null});\r
},\r
members : {\r
load : function(data, format){\r
},\r
getSaveService : function(){\r
if(this.isCreate()){\r
- var userService = org.argeo.security.ria.SecurityAPI.getCreateUserService(this.toJSON()); \r
+ var userService = org.argeo.security.ria.SecurityAPI.getCreateUserService(this.toJSON(true)); \r
}else{\r
var userService = org.argeo.security.ria.SecurityAPI.getUpdateUserService(this.toJSON()); \r
}\r
}, this);\r
return userService; \r
},\r
- toJSON : function(){\r
+ toJSON : function(create){\r
var rawData = this.getRawData();\r
rawData.username = this.getName();\r
rawData.roles = this.getRoles();\r
rawData.userNatures = this.getNatures();\r
+ if(create) rawData.password = this.getPassword();\r
return rawData;\r
},\r
_getNatureByType : function(natureType){\r