DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING.
THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO AUTO UPDATE THE CONTENT THROUGH THE DOC GENERATOR.
Enter additional information related to this 'class' inside the {div} macro with 'id=description'
Return Types
{column:width=80px|padding=0px}{column}{column}{column}
Constants Summary
ACCESSIBLE
Constant representing the accessible flag for form security.
TRACKING_VIEWS
Constant representing the tracking flag for table security (tracks sql select).
{column:width=80px|padding=0px}{column}{column}{column}
Method Summary
addUserToGroup(a_userUID, groupName)
Adds an user to a named group.
authenticate(authenticator_solution, method)
Authenticate to the Servoy Server using one of the installed authenticators or the Servoy default authenticator.
authenticate(authenticator_solution, method, credentials)
Authenticate to the Servoy Server using one of the installed authenticators or the Servoy default authenticator.
changeGroupName(oldGroupName, newGroupName)
Changes the groupname of a group.
changeUserName(a_userUID, username)
Changes the username of the specified userUID.
checkPassword(a_userUID, password)
Returns true if the password for that userUID is correct, else false.
createGroup(groupName)
Creates a group, returns the groupname (or null when group couldn't be created).
createUser(username, password)
Creates a new user, returns new uid (or null when group couldn't be created or user alreay exist).
createUser(username, password, userUID)
Creates a new user, returns new uid (or null when group couldn't be created or user alreay exist).
deleteGroup(groupName)
Deletes a group, returns true if no error was reported.
getElementUUIDs(formname)
Returns the form elements UUID's as dataset, the one with no name is the form itself.
getSystemUserName()
Retrieves the username of the currently logged in user on operating system level.
getUserGroups()
Get all the groups of the current user.
getUserGroups(userUID)
Get all the groups for given user UID.
getUserName()
Get the current user name (null if not logged in), finds the user name for given user UID if passed as parameter.
getUserName(userUID)
Get the current user name (null if not logged in), finds the user name for given user UID if passed as parameter.
getUserUID()
Get the current user UID (null if not logged in); finds the userUID for given user_name if passed as parameter.
getUserUID(username)
Get the current user UID (null if not logged in); finds the userUID for given user_name if passed as parameter.
isUserMemberOfGroup(groupName)
Check whatever the current user is part of the specified group
isUserMemberOfGroup(groupName, userUID)
Check whatever the user specified as parameter is part of the specified group.
void
logout()
Logout the current user and close the solution, if the solution requires authentication and user is logged in.
void
logout(solutionToLoad)
Logout the current user and close the solution, if the solution requires authentication and user is logged in.
void
logout(solutionToLoad, method)
Logout the current user and close the solution, if the solution requires authentication and user is logged in.
void
logout(solutionToLoad, method, argument)
Logout the current user and close the solution, if the solution requires authentication and user is logged in.
removeUserFromGroup(a_userUID, groupName)
Removes an user from a group.
setPassword(a_userUID, password)
Set a new password for the given userUID.
void
setSecuritySettings(dataset)
Sets the security settings; the entries contained in the given dataset will override those contained in the current security settings.
setUserUID(a_userUID, newUserUID)
Set a new userUID for the given userUID.
{column:width=100%|padding=0px}{column}
Constants Details
Sample
var colNames = new Array(); colNames[0] = 'uuid'; colNames[1] = 'flags'; var dataset = databaseManager.createEmptyDataSet(0,colNames); var row = new Array(); row[0] = '413a4d69-becb-4ae4-8fdd-980755d6a7fb';//normally retreived via security.getElementUUIDs(...) row[1] = JSSecurity.VIEWABLE|JSSecurity.ACCESSIBLE; // use bitwise 'or' for both dataset.addRow(row);//setting element security row = new Array(); row[0] = 'example_data.orders'; row[1] = JSSecurity.READ|JSSecurity.INSERT|JSSecurity.UPDATE|JSSecurity.DELETE|JSSecurity.TRACKING; //use bitwise 'or' for multiple flags dataset.addRow(row);//setting table security security.setSecuritySettings(dataset);//to be called in solution startup method
Sample
var colNames = new Array(); colNames[0] = 'uuid'; colNames[1] = 'flags'; var dataset = databaseManager.createEmptyDataSet(0,colNames); var row = new Array(); row[0] = '413a4d69-becb-4ae4-8fdd-980755d6a7fb';//normally retreived via security.getElementUUIDs(...) row[1] = JSSecurity.VIEWABLE|JSSecurity.ACCESSIBLE; // use bitwise 'or' for both dataset.addRow(row);//setting element security row = new Array(); row[0] = 'example_data.orders'; row[1] = JSSecurity.READ|JSSecurity.INSERT|JSSecurity.UPDATE|JSSecurity.DELETE|JSSecurity.TRACKING; //use bitwise 'or' for multiple flags dataset.addRow(row);//setting table security security.setSecuritySettings(dataset);//to be called in solution startup method
Sample
var colNames = new Array(); colNames[0] = 'uuid'; colNames[1] = 'flags'; var dataset = databaseManager.createEmptyDataSet(0,colNames); var row = new Array(); row[0] = '413a4d69-becb-4ae4-8fdd-980755d6a7fb';//normally retreived via security.getElementUUIDs(...) row[1] = JSSecurity.VIEWABLE|JSSecurity.ACCESSIBLE; // use bitwise 'or' for both dataset.addRow(row);//setting element security row = new Array(); row[0] = 'example_data.orders'; row[1] = JSSecurity.READ|JSSecurity.INSERT|JSSecurity.UPDATE|JSSecurity.DELETE|JSSecurity.TRACKING; //use bitwise 'or' for multiple flags dataset.addRow(row);//setting table security security.setSecuritySettings(dataset);//to be called in solution startup method
Sample
var colNames = new Array(); colNames[0] = 'uuid'; colNames[1] = 'flags'; var dataset = databaseManager.createEmptyDataSet(0,colNames); var row = new Array(); row[0] = '413a4d69-becb-4ae4-8fdd-980755d6a7fb';//normally retreived via security.getElementUUIDs(...) row[1] = JSSecurity.VIEWABLE|JSSecurity.ACCESSIBLE; // use bitwise 'or' for both dataset.addRow(row);//setting element security row = new Array(); row[0] = 'example_data.orders'; row[1] = JSSecurity.READ|JSSecurity.INSERT|JSSecurity.UPDATE|JSSecurity.DELETE|JSSecurity.TRACKING; //use bitwise 'or' for multiple flags dataset.addRow(row);//setting table security security.setSecuritySettings(dataset);//to be called in solution startup method
Sample
var colNames = new Array(); colNames[0] = 'uuid'; colNames[1] = 'flags'; var dataset = databaseManager.createEmptyDataSet(0,colNames); var row = new Array(); row[0] = '413a4d69-becb-4ae4-8fdd-980755d6a7fb';//normally retreived via security.getElementUUIDs(...) row[1] = JSSecurity.VIEWABLE|JSSecurity.ACCESSIBLE; // use bitwise 'or' for both dataset.addRow(row);//setting element security row = new Array(); row[0] = 'example_data.orders'; row[1] = JSSecurity.READ|JSSecurity.INSERT|JSSecurity.UPDATE|JSSecurity.DELETE|JSSecurity.TRACKING; //use bitwise 'or' for multiple flags dataset.addRow(row);//setting table security security.setSecuritySettings(dataset);//to be called in solution startup method
Sample
var colNames = new Array(); colNames[0] = 'uuid'; colNames[1] = 'flags'; var dataset = databaseManager.createEmptyDataSet(0,colNames); var row = new Array(); row[0] = '413a4d69-becb-4ae4-8fdd-980755d6a7fb';//normally retreived via security.getElementUUIDs(...) row[1] = JSSecurity.VIEWABLE|JSSecurity.ACCESSIBLE; // use bitwise 'or' for both dataset.addRow(row);//setting element security row = new Array(); row[0] = 'example_data.orders'; row[1] = JSSecurity.READ|JSSecurity.INSERT|JSSecurity.UPDATE|JSSecurity.DELETE|JSSecurity.TRACKING; //use bitwise 'or' for multiple flags dataset.addRow(row);//setting table security security.setSecuritySettings(dataset);//to be called in solution startup method
Sample
var colNames = new Array(); colNames[0] = 'uuid'; colNames[1] = 'flags'; var dataset = databaseManager.createEmptyDataSet(0,colNames); var row = new Array(); row[0] = '413a4d69-becb-4ae4-8fdd-980755d6a7fb';//normally retreived via security.getElementUUIDs(...) row[1] = JSSecurity.VIEWABLE|JSSecurity.ACCESSIBLE; // use bitwise 'or' for both dataset.addRow(row);//setting element security row = new Array(); row[0] = 'example_data.orders'; row[1] = JSSecurity.READ|JSSecurity.INSERT|JSSecurity.UPDATE|JSSecurity.DELETE|JSSecurity.TRACKING; //use bitwise 'or' for multiple flags dataset.addRow(row);//setting table security security.setSecuritySettings(dataset);//to be called in solution startup method
Sample
var colNames = new Array(); colNames[0] = 'uuid'; colNames[1] = 'flags'; var dataset = databaseManager.createEmptyDataSet(0,colNames); var row = new Array(); row[0] = '413a4d69-becb-4ae4-8fdd-980755d6a7fb';//normally retreived via security.getElementUUIDs(...) row[1] = JSSecurity.VIEWABLE|JSSecurity.ACCESSIBLE; // use bitwise 'or' for both dataset.addRow(row);//setting element security row = new Array(); row[0] = 'example_data.orders'; row[1] = JSSecurity.READ|JSSecurity.INSERT|JSSecurity.UPDATE|JSSecurity.DELETE|JSSecurity.TRACKING; //use bitwise 'or' for multiple flags dataset.addRow(row);//setting table security security.setSecuritySettings(dataset);//to be called in solution startup method
{column:width=100%|padding=0px}{column}
Method Details
addUserToGroup
(a_userUID, groupName)
Sample
var userUID = security.getUserUID(); security.addUserToGroup(userUID, 'groupname');
authenticate
(authenticator_solution, method)
Returns
Object – authentication result from authenticator solution or boolean in case of servoy built-in authentication
Sample
// create the credentials object as expected by the authenticator solution var ok = security.authenticate('myldap_authenticator', 'login', [scopes.globals.userName, scopes.globals.passWord]) if (!ok) { plugins.dialogs.showErrorDialog('Login failed', 'OK') } // if no authenticator name is used, the credentials are checked using the Servoy built-in user management ok = security.authenticate(null, null, [scopes.globals.userName, scopes.globals.passWord])
authenticate
(authenticator_solution, method, credentials)
Parameters
{String} authenticator_solution – authenticator solution installed on the Servoy Server, null for servoy built-in authentication
{String} method – authenticator method, null for servoy built-in authentication
{Object[]} credentials – array whose elements are passed as arguments to the authenticator method, in case of servoy built-in authentication this should be [username, password]
Returns
Object – authentication result from authenticator solution or boolean in case of servoy built-in authentication
Sample
// create the credentials object as expected by the authenticator solution var ok = security.authenticate('myldap_authenticator', 'login', [scopes.globals.userName, scopes.globals.passWord]) if (!ok) { plugins.dialogs.showErrorDialog('Login failed', 'OK') } // if no authenticator name is used, the credentials are checked using the Servoy built-in user management ok = security.authenticate(null, null, [scopes.globals.userName, scopes.globals.passWord])
canDelete
(dataSource)
Sample
var dataSource = controller.getDataSource(); var canDelete = security.canDelete(dataSource); var canInsert = security.canInsert(dataSource); var canUpdate = security.canUpdate(dataSource); var canRead = security.canRead(dataSource); application.output("Can delete? " + canDelete); application.output("Can insert? " + canInsert); application.output("Can update? " + canUpdate); application.output("Can read? " + canRead);
canInsert
(dataSource)
Sample
var dataSource = controller.getDataSource(); var canDelete = security.canDelete(dataSource); var canInsert = security.canInsert(dataSource); var canUpdate = security.canUpdate(dataSource); var canRead = security.canRead(dataSource); application.output("Can delete? " + canDelete); application.output("Can insert? " + canInsert); application.output("Can update? " + canUpdate); application.output("Can read? " + canRead);
canRead
(dataSource)
Sample
var dataSource = controller.getDataSource(); var canDelete = security.canDelete(dataSource); var canInsert = security.canInsert(dataSource); var canUpdate = security.canUpdate(dataSource); var canRead = security.canRead(dataSource); application.output("Can delete? " + canDelete); application.output("Can insert? " + canInsert); application.output("Can update? " + canUpdate); application.output("Can read? " + canRead);
canUpdate
(dataSource)
Sample
var dataSource = controller.getDataSource(); var canDelete = security.canDelete(dataSource); var canInsert = security.canInsert(dataSource); var canUpdate = security.canUpdate(dataSource); var canRead = security.canRead(dataSource); application.output("Can delete? " + canDelete); application.output("Can insert? " + canInsert); application.output("Can update? " + canUpdate); application.output("Can read? " + canRead);
changeGroupName
(oldGroupName, newGroupName)
Sample
security.changeGroupName('oldGroup', 'newGroup');
changeUserName
(a_userUID, username)
Sample
if(security.changeUserName(security.getUserUID('name1'), 'name2')) { application.output('Username changed'); }
checkPassword
(a_userUID, password)
Sample
if(security.checkPassword(security.getUserUID(), 'password1')) { security.setPassword(security.getUserUID(), 'password2') } else { application.output('wrong password') }
createGroup
(groupName)
Sample
var deleteGroup = true; //ceate a group var groupName = security.creategroup('myGroup'); if (groupName) { //create a user var uid = security.createUser('myusername', 'mypassword'); if (uid) //test if user was created { //set a newUID for the user var isChanged = security.setUserUID(uid,'myUserUID') // add user to group security.addUserToGroup(uid, groupName); // if not delete group, do delete group if (deleteGroup) { security.deleteGroup(groupName); } } }
createUser
(username, password)
Returns
Object – the userUID the created userUID, will be same if provided
Sample
var removeUser = true; //create a user var uid = security.createUser('myusername', 'mypassword'); if (uid) //test if user was created { // Get all the groups var set = security.getGroups(); for(var p = 1 ; p <= set.getMaxRowIndex() ; p++) { // output name of the group application.output(set.getValue(p, 2)); // add user to group security.addUserToGroup(uid, set.getValue(p,2)); } // if not remove user, remove user from all the groups if(!removeUser) { // get now all the groups that that users has (all if above did go well) var set =security.getUserGroups(uid); for(var p = 1;p<=set.getMaxRowIndex();p++) { // output name of the group application.output(set.getValue(p, 2)); // remove the user from the group security.removeUserFromGroup(uid, set.getValue(p,2)); } } else { // delete the user (the user will be removed from the groups) security.deleteUser(uid); } }
createUser
(username, password, userUID)
Returns
Object – the userUID the created userUID, will be same if provided
Sample
var removeUser = true; //create a user var uid = security.createUser('myusername', 'mypassword'); if (uid) //test if user was created { // Get all the groups var set = security.getGroups(); for(var p = 1 ; p <= set.getMaxRowIndex() ; p++) { // output name of the group application.output(set.getValue(p, 2)); // add user to group security.addUserToGroup(uid, set.getValue(p,2)); } // if not remove user, remove user from all the groups if(!removeUser) { // get now all the groups that that users has (all if above did go well) var set =security.getUserGroups(uid); for(var p = 1;p<=set.getMaxRowIndex();p++) { // output name of the group application.output(set.getValue(p, 2)); // remove the user from the group security.removeUserFromGroup(uid, set.getValue(p,2)); } } else { // delete the user (the user will be removed from the groups) security.deleteUser(uid); } }
deleteGroup
(groupName)
Parameters
{Object} groupName – the name of the group to delete
Sample
var deleteGroup = true; //ceate a group var groupName = security.creategroup('myGroup'); if (groupName) { //create a user var uid = security.createUser('myusername', 'mypassword'); if (uid) //test if user was created { //set a newUID for the user var isChanged = security.setUserUID(uid,'myUserUID') // add user to group security.addUserToGroup(uid, groupName); // if not delete group, do delete group if (deleteGroup) { security.deleteGroup(groupName); } } }
deleteUser
(userUID)
Parameters
{Object} userUID – The UID of the user to be deleted.
Returns
Boolean – true if the user is successfully deleted.
Sample
var removeUser = true; //create a user var uid = security.createUser('myusername', 'mypassword'); if (uid) //test if user was created { // Get all the groups var set = security.getGroups(); for(var p = 1 ; p <= set.getMaxRowIndex() ; p++) { // output name of the group application.output(set.getValue(p, 2)); // add user to group security.addUserToGroup(uid, set.getValue(p,2)); } // if not remove user, remove user from all the groups if(!removeUser) { // get now all the groups that that users has (all if above did go well) var set =security.getUserGroups(uid); for(var p = 1;p<=set.getMaxRowIndex();p++) { // output name of the group application.output(set.getValue(p, 2)); // remove the user from the group security.removeUserFromGroup(uid, set.getValue(p,2)); } } else { // delete the user (the user will be removed from the groups) security.deleteUser(uid); } }
getClientID
()
Returns
String – the clientId as seen on the server admin page
Sample
var clientId = security.getClientID()
getElementUUIDs
(formname)
Parameters
{String} formname – the formname to retieve the dataset for
Sample
var formElementsUUIDDataSet = security.getElementUUIDs('orders_form');
getGroups
()
Sample
var removeUser = true; //create a user var uid = security.createUser('myusername', 'mypassword'); if (uid) //test if user was created { // Get all the groups var set = security.getGroups(); for(var p = 1 ; p <= set.getMaxRowIndex() ; p++) { // output name of the group application.output(set.getValue(p, 2)); // add user to group security.addUserToGroup(uid, set.getValue(p,2)); } // if not remove user, remove user from all the groups if(!removeUser) { // get now all the groups that that users has (all if above did go well) var set =security.getUserGroups(uid); for(var p = 1;p<=set.getMaxRowIndex();p++) { // output name of the group application.output(set.getValue(p, 2)); // remove the user from the group security.removeUserFromGroup(uid, set.getValue(p,2)); } } else { // delete the user (the user will be removed from the groups) security.deleteUser(uid); } }
getSystemUserName
()
Sample
//gets the current os username var osUserName = security.getSystemUserName();
getUserGroups
()
Sample
//get all the users in the security settings (Returns a JSDataset) var dsUsers = security.getUsers() //loop through each user to get their group //The getValue call is (row,column) where column 1 == id and 2 == name for(var i=1 ; i<=dsUsers.getMaxRowIndex() ; i++) { //print to the output debugger tab: "user: " and the username application.output("user:" + dsUsers.getValue(i,2)); //set p to the user group for the current user /** @type {JSDataSet} */ var p = security.getUserGroups(dsUsers.getValue(i,1)); for(k=1;k<=p.getMaxRowIndex();k++) { //print to the output debugger tab: "group" and the group(s) //the user belongs to application.output("group: " + p.getValue(k,2)); } }
getUserGroups
(userUID)
Sample
//get all the users in the security settings (Returns a JSDataset) var dsUsers = security.getUsers() //loop through each user to get their group //The getValue call is (row,column) where column 1 == id and 2 == name for(var i=1 ; i<=dsUsers.getMaxRowIndex() ; i++) { //print to the output debugger tab: "user: " and the username application.output("user:" + dsUsers.getValue(i,2)); //set p to the user group for the current user /** @type {JSDataSet} */ var p = security.getUserGroups(dsUsers.getValue(i,1)); for(k=1;k<=p.getMaxRowIndex();k++) { //print to the output debugger tab: "group" and the group(s) //the user belongs to application.output("group: " + p.getValue(k,2)); } }
getUserName
()
Sample
//gets the current loggedIn username var userName = security.getUserName();
getUserName
(userUID)
Parameters
{Object} userUID – the user UID used to retrieve the name
Sample
//gets the current loggedIn username var userName = security.getUserName();
getUserUID
()
Sample
//gets the current loggedIn username var userName = security.getUserName(); //gets the uid of the given username var userUID = security.getUserUID(userName); //is the same as above //var my_userUID = security.getUserUID();
getUserUID
(username)
Parameters
{String} username – the username to find the userUID for
Sample
//gets the current loggedIn username var userName = security.getUserName(); //gets the uid of the given username var userUID = security.getUserUID(userName); //is the same as above //var my_userUID = security.getUserUID();
getUsers
()
Sample
//get all the users in the security settings (Returns a JSDataset) var dsUsers = security.getUsers() //loop through each user to get their group //The getValue call is (row,column) where column 1 == id and 2 == name for(var i=1 ; i<=dsUsers.getMaxRowIndex() ; i++) { //print to the output debugger tab: "user: " and the username application.output("user:" + dsUsers.getValue(i,2)); //set p to the user group for the current user /** @type {JSDataSet} */ var p = security.getUserGroups(dsUsers.getValue(i,1)); for(k=1;k<=p.getMaxRowIndex();k++) { //print to the output debugger tab: "group" and the group(s) //the user belongs to application.output("group: " + p.getValue(k,2)); } }
getUsers
(groupName)
Sample
//get all the users in the security settings (Returns a JSDataset) var dsUsers = security.getUsers() //loop through each user to get their group //The getValue call is (row,column) where column 1 == id and 2 == name for(var i=1 ; i<=dsUsers.getMaxRowIndex() ; i++) { //print to the output debugger tab: "user: " and the username application.output("user:" + dsUsers.getValue(i,2)); //set p to the user group for the current user /** @type {JSDataSet} */ var p = security.getUserGroups(dsUsers.getValue(i,1)); for(k=1;k<=p.getMaxRowIndex();k++) { //print to the output debugger tab: "group" and the group(s) //the user belongs to application.output("group: " + p.getValue(k,2)); } }
isUserMemberOfGroup
(groupName)
Sample
//check whatever user is part of the Administrators group if(security.isUserMemberOfGroup('Administrators', security.getUserUID('admin'))) { // do administration stuff }
isUserMemberOfGroup
(groupName, userUID)
Sample
//check whatever user is part of the Administrators group if(security.isUserMemberOfGroup('Administrators', security.getUserUID('admin'))) { // do administration stuff }
login
(username, a_userUID, groups)
Sample
var groups = ['Administrators']; //normally these groups are for example received from LDAP var user_uid = scopes.globals.email; //also this uid might be received from external authentication method var ok = security.login(scopes.globals.username, user_uid , groups) if (!ok) { plugins.dialogs.showErrorDialog('Login failure', 'Already logged in? or no user_uid/groups specified?', 'OK') }
void
logout
()
Returns
void
Sample
//Set the url to go to after logout. //application.showURL('http://www.servoy.com', '_self'); //Web Client only security.logout(); //security.logout('solution_name');//log out and close current solution and open solution 'solution_name' //security.logout('solution_name','global_method_name');//log out, close current solution, open solution 'solution_name' and call global method 'global_method_name' of the newly opened solution //security.logout('solution_name','global_method_name','my_string_argument');//log out, close current solution, open solution 'solution_name', call global method 'global_method_name' with argument 'my_argument' //security.logout('solution_name','global_second_method_name',2); //Note: specifying a solution will not work in the Developer due to debugger dependencies //specified solution should be of compatible type with client (normal type or client specific(Smart client only/Web client only) type )
void
logout
(solutionToLoad)
Parameters
{String} solutionToLoad – the solution to load after logout
Returns
void
Sample
//Set the url to go to after logout. //application.showURL('http://www.servoy.com', '_self'); //Web Client only security.logout(); //security.logout('solution_name');//log out and close current solution and open solution 'solution_name' //security.logout('solution_name','global_method_name');//log out, close current solution, open solution 'solution_name' and call global method 'global_method_name' of the newly opened solution //security.logout('solution_name','global_method_name','my_string_argument');//log out, close current solution, open solution 'solution_name', call global method 'global_method_name' with argument 'my_argument' //security.logout('solution_name','global_second_method_name',2); //Note: specifying a solution will not work in the Developer due to debugger dependencies //specified solution should be of compatible type with client (normal type or client specific(Smart client only/Web client only) type )
void
logout
(solutionToLoad, method)
Returns
void
Sample
//Set the url to go to after logout. //application.showURL('http://www.servoy.com', '_self'); //Web Client only security.logout(); //security.logout('solution_name');//log out and close current solution and open solution 'solution_name' //security.logout('solution_name','global_method_name');//log out, close current solution, open solution 'solution_name' and call global method 'global_method_name' of the newly opened solution //security.logout('solution_name','global_method_name','my_string_argument');//log out, close current solution, open solution 'solution_name', call global method 'global_method_name' with argument 'my_argument' //security.logout('solution_name','global_second_method_name',2); //Note: specifying a solution will not work in the Developer due to debugger dependencies //specified solution should be of compatible type with client (normal type or client specific(Smart client only/Web client only) type )
void
logout
(solutionToLoad, method, argument)
Returns
void
Sample
//Set the url to go to after logout. //application.showURL('http://www.servoy.com', '_self'); //Web Client only security.logout(); //security.logout('solution_name');//log out and close current solution and open solution 'solution_name' //security.logout('solution_name','global_method_name');//log out, close current solution, open solution 'solution_name' and call global method 'global_method_name' of the newly opened solution //security.logout('solution_name','global_method_name','my_string_argument');//log out, close current solution, open solution 'solution_name', call global method 'global_method_name' with argument 'my_argument' //security.logout('solution_name','global_second_method_name',2); //Note: specifying a solution will not work in the Developer due to debugger dependencies //specified solution should be of compatible type with client (normal type or client specific(Smart client only/Web client only) type )
removeUserFromGroup
(a_userUID, groupName)
Sample
var removeUser = true; //create a user var uid = security.createUser('myusername', 'mypassword'); if (uid) //test if user was created { // Get all the groups var set = security.getGroups(); for(var p = 1 ; p <= set.getMaxRowIndex() ; p++) { // output name of the group application.output(set.getValue(p, 2)); // add user to group security.addUserToGroup(uid, set.getValue(p,2)); } // if not remove user, remove user from all the groups if(!removeUser) { // get now all the groups that that users has (all if above did go well) var set =security.getUserGroups(uid); for(var p = 1;p<=set.getMaxRowIndex();p++) { // output name of the group application.output(set.getValue(p, 2)); // remove the user from the group security.removeUserFromGroup(uid, set.getValue(p,2)); } } else { // delete the user (the user will be removed from the groups) security.deleteUser(uid); } }
setPassword
(a_userUID, password)
Sample
if(security.checkPassword(security.getUserUID(), 'password1')) { security.setPassword(security.getUserUID(), 'password2') } else { application.output('wrong password') }
void
setSecuritySettings
(dataset)
Parameters
{Object} dataset – the dataset with security settings
Returns
void
Sample
var colNames = new Array(); colNames[0] = 'uuid'; colNames[1] = 'flags'; var dataset = databaseManager.createEmptyDataSet(0,colNames); var row = new Array(); row[0] = '413a4d69-becb-4ae4-8fdd-980755d6a7fb';//normally retreived via security.getElementUUIDs(...) row[1] = JSSecurity.VIEWABLE|JSSecurity.ACCESSIBLE; // use bitwise 'or' for both dataset.addRow(row);//setting element security row = new Array(); row[0] = 'example_data.orders'; row[1] = JSSecurity.READ|JSSecurity.INSERT|JSSecurity.UPDATE|JSSecurity.DELETE|JSSecurity.TRACKING; //use bitwise 'or' for multiple flags dataset.addRow(row);//setting table security security.setSecuritySettings(dataset);//to be called in solution startup method
setUserUID
(a_userUID, newUserUID)
Sample
var deleteGroup = true; //ceate a group var groupName = security.creategroup('myGroup'); if (groupName) { //create a user var uid = security.createUser('myusername', 'mypassword'); if (uid) //test if user was created { //set a newUID for the user var isChanged = security.setUserUID(uid,'myUserUID') // add user to group security.addUserToGroup(uid, groupName); // if not delete group, do delete group if (deleteGroup) { security.deleteGroup(groupName); } } }