Skip to content
Snippets Groups Projects
Commit 63f45896 authored by Sebastian Listl's avatar Sebastian Listl :speech_balloon:
Browse files

MS Teams fixes

parent 8468fb19
No related branches found
No related tags found
No related merge requests found
Showing
with 73 additions and 20 deletions
......@@ -2,6 +2,7 @@
<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
<name>MSTTeamLink_entity</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<documentation>%aditoprj%/entity/MSTTeamLink_entity/documentation.adoc</documentation>
<siblings>
<element>Salesproject_entity</element>
<element>Member_entity</element>
......
= MSTTeamLink_entity
This entity represents a relation between a MST team and an object (e. g. a Sales Project).
\ No newline at end of file
......@@ -59,6 +59,7 @@
</entityConsumer>
<entityField>
<name>ISEXTERN</name>
<state>INVISIBLE</state>
<valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/isextern/valueProcess.js</valueProcess>
</entityField>
<entityField>
......@@ -109,12 +110,18 @@
</entityProvider>
<entityField>
<name>AZUREID</name>
<state>INVISIBLE</state>
<valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/azureid/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>AZUREUPN</name>
<state>INVISIBLE</state>
<valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/azureupn/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>AZURE_DATA</name>
<valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/azure_data/valueProcess.js</valueProcess>
</entityField>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
......
import("system.result");
import("system.neon");
import("system.tools");
import("system.vars");
import("Employee_lib");
var contactId = vars.get("$field.CONTACT_ID");
var user = EmployeeUtils.getUserByContactId(contactId);
var azureId = user ? user[tools.PARAMS][tools.TEAMS_AZUREID] : "";
var azureUpn = user ? user[tools.PARAMS][tools.TEAMS_AZUREUPN] : "";
var azureData = {
azureId: azureId,
azureUpn: azureUpn
};
result.string(JSON.stringify(azureData));
\ No newline at end of file
//The value is set by ISEXTERN.valueProcess
\ No newline at end of file
import("system.result");
import("Util_lib");
import("system.vars");
var azureData = Utils.parseJSON(vars.get("$field.AZURE_DATA"));
result.string(azureData ? azureData.azureId : "");
\ No newline at end of file
//The value is set by ISEXTERN.valueProcess
\ No newline at end of file
import("system.result");
import("Util_lib");
import("system.vars");
var azureData = Utils.parseJSON(vars.get("$field.AZURE_DATA"));
result.string(azureData ? azureData.azureUpn : "");
\ No newline at end of file
import("system.result");
import("system.neon");
import("system.tools");
import("Util_lib");
import("system.vars");
import("Employee_lib");
var contactId = vars.get("$field.CONTACT_ID");
var user = EmployeeUtils.getUserByContactId(contactId);
var azureId = user ? user[tools.PARAMS][tools.TEAMS_AZUREID] : "";
var azureUpn = user ? user[tools.PARAMS][tools.TEAMS_AZUREUPN] : "";
neon.setFieldValue("$field.AZUREUPN", azureUpn);
neon.setFieldValue("$field.AZUREID", azureId);
result.string(!azureId && !azureUpn);
\ No newline at end of file
var azureData = Utils.parseJSON(vars.get("$field.AZURE_DATA"));
result.string(!azureData || !(azureData.azureId || azureData.azureUpn));
\ No newline at end of file
......@@ -20,9 +20,6 @@ teamMembers.forEach(function (teamMember)
var contactId = teamMember["CONTACT_ID"];
var isExtern = Utils.toBoolean(teamMember["ISEXTERN"]);
var isInvite = Utils.toBoolean(teamMember["INVITE"]);
var isOwner = teamMember["ROLE"] == "owner";
var memberAzureId = teamMember["AZUREID"];
var memberUpn = teamMember["AZUREUPN"];
if (isExtern)
{
var memberEmail = CommUtil.getStandardMail(contactId);
......@@ -35,6 +32,9 @@ teamMembers.forEach(function (teamMember)
}
return;
}
var memberAzureId = teamMember["AZUREID"];
var memberUpn = teamMember["AZUREUPN"];
var isOwner = teamMember["ROLE"] == "owner";
if (!memberAzureId && memberUpn)
memberAzureId = teams.getInternalAzureId(memberUpn);
if (memberAzureId)
......
......@@ -4,6 +4,7 @@
<majorModelMode>DISTRIBUTED</majorModelMode>
<documentation>%aditoprj%/entity/MSTeamsDocument_entity/documentation.adoc</documentation>
<siblings />
<recordContainer>dataless</recordContainer>
<entityFields>
<entityProvider>
<name>#PROVIDER</name>
......
......@@ -28,8 +28,6 @@
<dependencies>
<entityDependency>
<name>89048e4d-32bc-4531-9b45-b0c0d9de82b1</name>
<entityName>MSTTeamChat_entity</entityName>
<fieldName>Consumer</fieldName>
<isConsumer v="false" />
</entityDependency>
<entityDependency>
......
......@@ -24,6 +24,18 @@
<name>b85c25c8-09dd-4f9a-b0b4-31c0b8a8f12c</name>
<entityField>INVITE</entityField>
</neonGenericMultipleTableColumn>
<neonGenericMultipleTableColumn>
<name>82cdb323-6c1a-428f-a01e-e29da9f338ec</name>
<entityField>AZUREID</entityField>
</neonGenericMultipleTableColumn>
<neonGenericMultipleTableColumn>
<name>3f766fe4-119d-40df-b071-b7a578af2a71</name>
<entityField>AZUREUPN</entityField>
</neonGenericMultipleTableColumn>
<neonGenericMultipleTableColumn>
<name>0b3ac2a1-91ad-4761-9a1d-7231d5b55169</name>
<entityField>ISEXTERN</entityField>
</neonGenericMultipleTableColumn>
</columns>
</genericMultipleViewTemplate>
</children>
......
......@@ -133,6 +133,10 @@ MSTeamsUtils.insertTeamIfMissing = function (pTeam)
/**
* Creates a new teamLink.
*
* @param {String} pTeamId id of the team
* @param {String} pRowId uid of the linked object
* @param {String} pObjectType context of the linked object
*/
MSTeamsUtils.createTeamLink = function (pTeamId, pRowId, pObjectType)
{
......@@ -163,7 +167,11 @@ MSTeamsUtils.createTeamLink = function (pTeamId, pRowId, pObjectType)
}
/**
* Gets all linked teams of an object
*
* @param {String} pRowId uid of the linked object
* @param {String} pObjectType context of the linked object
* @return {Object[]} array of {teamLinkId, teamId}
*/
MSTeamsUtils.getLinkedTeams = function (pRowId, pObjectType)
{
......@@ -184,7 +192,11 @@ MSTeamsUtils.getLinkedTeams = function (pRowId, pObjectType)
}
/**
* Gets the linked team of an object
*
* @param {String} pRowId uid of the linked object
* @param {String} pObjectType context of the linked object
* @return {String} id of the linked team, or null if ther is none
*/
MSTeamsUtils.getLinkedTeam = function (pRowId, pObjectType)
{
......@@ -274,9 +286,10 @@ MSTeamsUtils.isUserTeamOwner = function (pTeamId, pUserId)
else
user = tools.getUserByAttribute(tools.NAME, pUserId);
if (!user)
var azureId = user ? user[tools.PARAMS][tools.TEAMS_AZUREID] : null;
if (!azureId)
return false;
return user[tools.PARAMS][tools.TEAMS_AZUREID] in teams.getAllOwners(pTeamId);
return azureId in teams.getAllOwners(pTeamId);
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment