. . .

Access Control Module

images/download/attachments/78782655/AccessControl-Module-Icon-200x200.png


The Access Control Module lets app developers to log visitors in or out. In the future, these visitors (or employees) will also be synced with LDAP.

Configuration

No special configuration is required.

Usage

The Access Control Module provides the class userAction. This class is used to log a visitor in or out. During this process, a time stamp is created automatically.

First, add a visitor named "John Doe".


Android

Android
Visitor visitor = new Visitor();
visitor.setFirstName("John");
visitor.setLastName("Doe");
visitor.setAomFirstName("John");
visitor.setAomLastName("Doe");
visitor.setIsGuest(0L);
visitor.setCompany("Wayne Enterprise");
visitor.saveAsync(...);

Objective-C

Objective-C
Visitor *visitor= [Visitor new];
[visitor setFirstName:@"John"];
[visitor setLastName:@"Doe"];
[visitor setAomFirstName:@"John"];
[visitor setAomLastName:@"Doe"];
[visitor setIsGuest:1];
[visitor setCompany:@"Wayne Enterprise"];
[visitor saveObjCWithLoadAfterwards:true completion:^(NSError * error) {
if(error == FALSE)
{
//do nothing
}
}];

Swift

Swift
var visitor= Visitor()
visitor.firstName = "John"
visitor.lastName = "Doe"
visitor.aomFirstName = "John"
visitor.aomLastName = "Doe"
visitor.isGuest = 1
visitor.company = "Wayne Enterprise"
visitor.save { (error) in
if error == nil {
//do nothing
}
}

JavaScript

JavaScript
var visitor=new Apiomat.Visitor();
visitor.setFirstName("John");
visitor.setLastName("Doe");
visitor.setAomFirstName("John");
visitor.setAomLastName("Doe");
visitor.setIsGuest("1");
visitor.setCompany("Wayne Enterprise");
var saveCB= {
onOk:function () {
console.log("Visitor saved");
},
onError:function(error) {
console.log(error);
}
};
visitor.save(saveCB);

TypeScript

TypeScript
const visitor = new Visitor();
visitor.firstName = "John";
visitor.lastName = "Doe";
visitor.aomFirstName = "John";
visitor.aomLastName = "Doe";
visitor.isGuest = "1";
visitor.company = "XYZ Enterprise";
await visitor.save();


Now we will log the visitor in.

Android

Android
UserAction userAction = new UserAction();
userAction.setFirstName("John");
userAction.setLastName("Doe");
userAction.setAction("login");
userAction.saveAsync(...);

Objective-C

Objective-C
UserAction *userAction = [UserAction new];
[userAction setFirstName:@"John"];
[userAction setLastName:@"Doe"];
[userAction setAction:@"login"];
[userAction saveObjCWithLoadAfterwards:true completion:^(NSError * error) {
if(error == FALSE)
{
}
}];

Swift

Swift
var userAction = UserAction()
userAction.firstName = "John"
userAction.lastName:@"Doe"
userAction.action = "login"
userAction.save { (error) in
if error == nil {
}
}

JavaScript

JavaScript
var userAction=new Apiomat.UserAction();
userAction.setFirstName("John");
userAction.setLastName("Doe");
userAction.setAction("login");
var saveCB= {
onOk:function () {
console.log("Visitor logged in");
},
onError:function(error) {
console.log(error);
}
};
userAction.save(saveCB);

TypeScript

TypeScript
const userAction = new UserAction();
userAction.firstName = "John";
userAction.lastName = "Doe";
userAction.action = "login";
await userAction.save();

When the visitor (John Doe) leaves the office, we will log him out.

Android

Android
UserAction userAction = new UserAction();
userAction.setFirstName("John");
userAction.setLastName("Doe");
userAction.setAction("logout");
userAction.saveAsync(...);

Objective-C

Objective-C
UserAction *userAction = [UserAction new];
[userAction setFirstName:@"John"];
[userAction setLastName:@"Doe"];
[userAction setAction:@"logout"];
[userAction saveObjCWithLoadAfterwards:true completion:^(NSError * error) {
if(error == FALSE)
{
}
}];

Swift

Swift
var userAction = UserAction()
userAction.firstName = "John"
userAction.lastName = "Doe
userAction.action = "logout"
userAction.save { (error) in
if error == nil {
}
}

JavaScript

JavaScript
var userAction=new Apiomat.UserAction();
userAction.setFirstName("John");
userAction.setLastName("Doe");
userAction.setAction("logout");
var saveCB= {
onOk:function () {
console.log("Visitor logged out");
},
onError:function(error) {
console.log(error);
}
};
userAction.save(saveCB);

TypeScript

TypeScript
const userAction = new UserAction();
userAction.firstName = "John";
userAction.lastName = "Doe";
userAction.action = "logout";
await userAction.save();

The visitor's timestamp object is updated after logging in and logging out.

{
"@type": "AccessControl$Timestamp",
"createdAt": 1497967202285,
"lastModifiedAt": 1497970912116,
"id": "59492a62dc5ecc33c19dacd5",
"applicationName": "AccessControl",
"moduleName": "AccessControl",
"allowedRolesRead": [],
"allowedRolesWrite": [],
"allowedRolesGrant": [],
"restrictResourceAccess": false,
"referencedHrefs": {
"visitor": [
"http://localhost/yambas/rest/apps/AccessControl/models/AccessControl/Visitor/594927dedc5ecc33c19dacd1"
]
},
"allowedRolesReadFromClass": [],
"allowedRolesWriteFromClass": [],
"allowedRolesCreateFromClass": [],
"allowedRolesGrantFromClass": [],
"restrictResourceAccessFromClass": false,
"href": "http://localhost/yambas/rest/apps/AccessControl/models/AccessControl/Timestamp/59492a62dc5ecc33c19dacd5",
"allowedRolesReadFromObject": [],
"allowedRolesWriteFromObject": [],
"allowedRolesGrantFromObject": [],
"restrictResourceAccessFromObject": false,
"checkIn": 1497967202286,
"checkOut": 1497970912105,
"diffTimestamp": "1h 1m 49s ",
"diffTimestampHour": 1,
"diffTimestampMinute": 1,
"diffTimestampSecond": 49,
"visitorPlain": "John Doe",
"visitorHref": "http://localhost/yambas/rest/apps/AccessControl/models/AccessControl/Timestamp/59492a62dc5ecc33c19dacd5/visitor"
}

This JSON object is the timestamp, which the checkIn and CheckOut times.