diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index d53245bc0..e13755a53 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
Example response of autentication for user that is not linked with any staff.
{
- "username": "mifos",
- "userId": 1,
- "base64EncodedAuthenticationKey": "bWlmb3M6cGFzc3dvcmQ=",
- "authenticated": true,
- "roles": [
- {
- "id": 1,
- "name": "Super user",
- "description": "This role provides all application permissions."
- }
- ],
- "permissions": [
- "ALL_FUNCTIONS"
- ]
+ "username": "mifos",
+ "userId": 1,
+ "base64EncodedAuthenticationKey": "bWlmb3M6cGFzc3dvcmQ=",
+ "authenticated": true,
+ "officeId": 1,
+ "officeName": "Head Office",
+ "roles": [
+ {
+ "id": 1,
+ "name": "Super user",
+ "description": "This role provides all application permissions."
+ }
+ ],
+ "permissions": [
+ "ALL_FUNCTIONS"
+ ]
}
+ Example response of autentication for user that is linked with a staff member and role.
+
+{
+ "username": "mifos",
+ "userId": 1,
+ "base64EncodedAuthenticationKey": "bWlmb3M6cGFzc3dvcmQ=",
+ "authenticated": true,
+ "officeId": 1,
+ "officeName": "Head Office",
+ "staffId": 1,
+ "staffDisplayName": "Director, Program",
+ "organisationalRole": {
+ "id": 100,
+ "code": "staffOrganisationalRoleType.programDirector",
+ "value": "Program Director"
+ },
+ "roles": [
+ {
+ "id": 1,
+ "name": "Super user",
+ "description": "This role provides all application permissions."
+ }
+ ],
+ "permissions": [
+ "ALL_FUNCTIONS"
+ ]
+}
+
+
+
+
+
+
POST authentication?username=mifos&password=fail
Content-Type: application/json
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/api/AuthenticationApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/api/AuthenticationApiResource.java
index 6d985da05..a679364c4 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/api/AuthenticationApiResource.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/api/AuthenticationApiResource.java
@@ -76,9 +76,14 @@ public class AuthenticationApiResource {
final Long officeId = principal.getOffice().getId();
final String officeName = principal.getOffice().getName();
+
+ final Long staffId = principal.getStaffId();
+ final String staffDisplayName = principal.getStaffDisplayName();
+
final EnumOptionData organisationalRole = principal.organisationalRoleData();
- authenticatedUserData = new AuthenticatedUserData(username, officeId, officeName, organisationalRole, roles, permissions,
+ authenticatedUserData = new AuthenticatedUserData(username, officeId, officeName, staffId, staffDisplayName,
+ organisationalRole, roles, permissions,
principal.getId(), new String(base64EncodedAuthenticationKey));
}
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/data/AuthenticatedUserData.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/data/AuthenticatedUserData.java
index a87920111..b787217c6 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/data/AuthenticatedUserData.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/data/AuthenticatedUserData.java
@@ -28,6 +28,10 @@ public class AuthenticatedUserData {
@SuppressWarnings("unused")
private final String officeName;
@SuppressWarnings("unused")
+ private final Long staffId;
+ @SuppressWarnings("unused")
+ private final String staffDisplayName;
+ @SuppressWarnings("unused")
private final EnumOptionData organisationalRole;
@SuppressWarnings("unused")
private final Collection roles;
@@ -41,17 +45,21 @@ public class AuthenticatedUserData {
this.authenticated = false;
this.officeId = null;
this.officeName = null;
+ this.staffId = null;
+ this.staffDisplayName = null;
this.organisationalRole = null;
this.roles = null;
this.permissions = permissions;
}
- public AuthenticatedUserData(final String username, final Long officeId, final String officeName,
- final EnumOptionData organisationalRole, final Collection roles, final Collection permissions,
- final Long userId, final String base64EncodedAuthenticationKey) {
+ public AuthenticatedUserData(final String username, final Long officeId, final String officeName, final Long staffId,
+ final String staffDisplayName, final EnumOptionData organisationalRole, final Collection roles,
+ final Collection permissions, final Long userId, final String base64EncodedAuthenticationKey) {
this.username = username;
this.officeId = officeId;
this.officeName = officeName;
+ this.staffId = staffId;
+ this.staffDisplayName = staffDisplayName;
this.organisationalRole = organisationalRole;
this.userId = userId;
this.base64EncodedAuthenticationKey = base64EncodedAuthenticationKey;
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/organisation/staff/domain/Staff.java b/mifosng-provider/src/main/java/org/mifosplatform/organisation/staff/domain/Staff.java
index 79a3d8ddb..69d4c2df4 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/organisation/staff/domain/Staff.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/organisation/staff/domain/Staff.java
@@ -31,7 +31,6 @@ public class Staff extends AbstractPersistable {
@Column(name = "lastname", length = 50)
private String lastname;
- @SuppressWarnings("unused")
@Column(name = "display_name", length = 100)
private String displayName;
@@ -47,6 +46,7 @@ public class Staff extends AbstractPersistable {
@Column(name = "organisational_role_enum", nullable = true)
private Integer organisationalRoleType;
+ @SuppressWarnings("unused")
@ManyToOne
@JoinColumn(name = "organisational_role_parent_staff_id", nullable = true)
private Staff organisationalRoleParentStaff;
@@ -158,4 +158,8 @@ public class Staff extends AbstractPersistable {
public Long officeId() {
return this.office.getId();
}
+
+ public String displayName() {
+ return this.displayName;
+ }
}
\ No newline at end of file
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/domain/AppUser.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/domain/AppUser.java
index e5b88b0aa..befd04791 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/domain/AppUser.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/domain/AppUser.java
@@ -465,4 +465,20 @@ public class AppUser extends AbstractPersistable implements PlatformUser {
if (hasNotPermissionForDatatable(datatable, "READ")) { throw new NoAuthorizationException("Not authorised to read datatable: "
+ datatable); }
}
+
+ public Long getStaffId() {
+ Long staffId = null;
+ if (this.staff != null) {
+ staffId = this.staff.getId();
+ }
+ return staffId;
+ }
+
+ public String getStaffDisplayName() {
+ String staffDisplayName = null;
+ if (this.staff != null) {
+ staffDisplayName = this.staff.displayName();
+ }
+ return staffDisplayName;
+ }
}
\ No newline at end of file