Identify Teams sites at provisioning state - microsoft-graph-api

Every time a SharePoint or Teams site is created we would like to apply it as a property so we can differentiate. It will always only be a Teams site so it will have a connected Office 365 group. Is there any way to identify on a group if there is a Team connected to the group? On the properties on the group, or the propertybag on the site?

I'm not sure I understand your question completely, but it sounds like you want to identify, for Office 365 Groups, if they have a Team associated or not. If so, have a look at Get a list of groups inside this page, and you'll see that one of them has "resourceProvisioningOptions" set to Team.
{
"#odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups",
"value": [
{
"id": "00e897b1-70ba-4cb9-9126-fd5f95c4bb78",
"resourceProvisioningOptions": []
},
{
"id": "00f6e045-f884-4359-a617-d459ee626862",
"resourceProvisioningOptions": [
"Team"
]
}
]
}
As per that link: 'To get a list of all groups in the organization that have teams, get a list of all groups and then in code find the ones that have a resourceProvisioningOptions property that contains "Team"'

Related

SAP Successfactors Non-Standard OCN Provider Integration

I'm working on an integration project connecting SAP Successfactors with a Non-Standard OCN Provider. I'm using OData API to push course listings into Successfactors LMS. After APM Sync, the OCN items are visible on SF, but the open content sessions for each item is showing as
"There are no content network sessions for this item"
Course schedule information is also pushed along with the payload parameters of the OData API
"schedule": [
{
"startDate": 1572393600,
"endDate": 1572480000,
"active": true,
"duration": "2 days"
}
]
Open Content Network (OCN) is a group of Massive Online Open Course (MOOC) partners who can provide content to SAP SuccessFactors LMS. MOOC courses will not have specific start time and end time as they are online courses and are different than the Instructor-led standard offerings. In order to convert OCN items into standard offerings, the item type (classification) of these items must to be converted into "Instructor-led". After that these courses can be added into scheduled offerings and then the date/time segments will start appearning.

microsoft graph API /calendars id is not unique

When requesting calendars, the ID returned from the calendar sometimes changes.
We saw that the name of calendar differs sometimes (agenda or Calendar) - this is also reflected in the changeKey field, but would that mean that the calendar ID also changes?
It does not happen to all of our clients, just a few. What can cause this? What are we missing?
We already use the Immutable Id headers, but these don't apply to the calendars according to the docs.
{
"id": "AAMkADgyMzdkNzAyLTVhZGEtNDg1Yi***AAAAEGAAAqQIxwV34sQLN18DH-lwsGAAAAAYeRAAA=",
"name": "Agenda",
"color": "auto",
"changeKey": "qr2mXiE5k0+ASL9waSq4XAADFAI=",
"canShare": true,
"canViewPrivateItems": true,
"canEdit": true,
"owner": {
"name": "***",
"address": "***#***.com"
}
},
Any help is appreciated!
IIRC, calendars are actually folders under the covers and therefore are not affected by the ImmutableId prefer header. The reason for this is that folder ids are supposed to stay the same within a given mailbox regardless of where they are moved. As such, a calendar only has one id (PR_ENTRYID) and no immutableId (PR_IMMUTABLE_ENTRYID).
That doesn't of course explain what is happening here. I am curious if it is possible that the calendar folder is getting recreated somehow which would explain why the calendar id would be changing. Can you look at the creation time of the folder to see if it is more recent than you expect it to be?
There is a known issue with calendar folder immutable ids where they do change that is being investigated by our engineering team. Apologies for the inconvenience here.

How to list down all aliases of Office365 account using Microsoft Graph API?

How to list down all aliases of Office365 account using Microsoft Graph API? Is there a separate permission level I need to provide or different parameter in API https://graph.microsoft.com/v1.0/me/ to get the list of all aliases. Any help is appreciated.
The default alias is stored in mailNickname property. The full list of assigned aliases/addresses are stored in the proxyAddresses property collection. These include additional aliases and domains, so you may need do a little processing to split each address at # and dedupe the first element.
To retrieve these you would need to specifically request the properties you want using the $select query parameter:
/v1.0/me?$select=id,userPrincipalName,displayName,mailNickname,proxyAddresses
Using Graph Explorer's demo data, you would see this result:
{
"#odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,userPrincipalName,displayName,mailNickname,proxyAddresses)/$entity",
"id": "48d31887-5fad-4d73-a9f5-3c356e68a038",
"displayName": "Megan Bowen",
"mailNickname": "MeganB",
"proxyAddresses": [
"SMTP:MeganB#M365x214355.onmicrosoft.com"
],
"userPrincipalName": "MeganB#M365x214355.onmicrosoft.com"
}

Fetch worklog results of a particular user

I want to get the total hours that every user has logged in, in a specific project every week.
In order to achieve this, I'm trying to get the whole worklog in the project, and then filter it by the worklog Author. This is the query I'm using:
https://jira.example.com/rest/api/2/search?startIndex=0&maxResults=100&jql=project=%27Test%20Project%27+and+worklogAuthor=testUser+and+updated%3E=-7d&fields=worklog
This brings back every issue that has been updated in the last 7 days, and the user is related to it. However, it also brings back the worklog of another user that has added time in the same issue for example.
My question is the following, is there a way to filter the query by name, and bring back the worklog of a particular user, without the worklogs of other users that are simply related to the same issue?
The query returns the results in a json format that look like this for every worklog of a user:
"worklogs": [
{
"author": {...}, // 8 items, where there's a 'name' field for the particular user
"updateAuthor": {...}, // 8 items
"comment": "",
"created": "2018-01-03T13:42:15.000+0200",
"updated": "2018-01-03T13:42:15.000+0200",
"started": "2018-01-03T13:42:00.000+0200",
"timeSpent": "1h",
"timeSpentSeconds": 3600,
"id": "10540",
"issueId": "10674"
},
Thanks
I don't think this is possible with jira out of the box. The jira rest api only supports retrieving work logs for issues, not users.
However, there are add-ons like Script Runner that provide additional JQL functions that allow you to query for issues where a specific user has logged work. You can easily execute such a JQL using the search REST API. This will give you a smaller list of issues/work logs to filter on.
Example JQL:
issueFunction in workLogged(on "2015/07/28" by admin)
More info about custom jql functions is available in the Script Runner documentation.
worklogAuthor = currentUser()
or
worklogAuthor = marc
might help you

AWS DynamoDB permissions - getting error when user queries database

I am using Amazon Web Services to provide my users access my DynamoDB table. I am using Cognito for log in, and it seems to work. I have create the database and the policy to query my database. I have the code in the app, I have a user group, I have the database (write to it fine), I have the policy written. AWS is still giving me an access error.
Any idea where I am going wrong?
You need to go to the IAM console and attach appropriate policies for doing operations like getItem on your table. You need to attach a policy for the unauth / auth role created by Cognito Identity Pool. For a similar working app, you can use AWS Mobile Hub which will create policies for you and give a sample app which demonstrates using the queries on a table.
Thanks,
Rohan
Here's what I would recommend to do to fix the problem:
First in the Overview tab of your DynamoDB table, copy the Amazon Resource Name (ARN) it should look something like:
arn:aws:dynamodb:us-west-2:227509******:table/TableName
After that go to your IAM console and click on Roles off to the left. Once in the Roles section click on the UnAuth_Role for the app associated with your table. Should look like:
Cognito_AppNameUnauth_Role
Once here, click on Create Role Policy - then select Custom Policy - then click Select.
Create a name for your policy
Copy this code but edit it with your ARN:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:GetItem",
"dynamodb:Scan",
"dynamodb:Query",
],
"Resource": [
"arn:aws:dynamodb:us-west-2:227509******:table/TableName",
"arn:aws:dynamodb:us-west-2:227509******:table/TableName/index/*"
]
}
]
}
Add more permissions if you need to like :
"dynamodb:DeleteItem",
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:BatchWriteItem"
I can't guarantee that will fix the problem. But it's a start in the right direction.
I've been struggling with the same issue. I have successfully authenticated via Cognito UserPool, verified policy was set up, ran into error code 6 as you did above. Found that if I changed user table permissions from "Private" to "Public", although not desirable, allowed me to read/write from table.
DynamoDB Table Permissions
The "Condition" clause below is added when you select "Private" instead of "Public" through the console. I can't find clear documentation on what this means / how to satisfy the condition it's asking for. (If someone understands better feel free to help edit this response!)
"Effect":"Allow",
"Action": [
"dynamodb:BatchGetItem",
"dynamodb:DescribeTable",
"dynamodb:GetItem",
"dynamodb:ListTables",
"dynamodb:Query"
],
"Resource": [
"arn:aws:dynamodb:...:table/...",
...
],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": ["${cognito-identity.amazonaws.com:sub}"]
}
}

Resources