in dotnet/space-translate/SpaceTranslate/WebHook/SpaceTranslateWebHookHandler.HandleMenuAction.cs [148:172]
private AppUserActionExecutionResult PermissionsRequired(
string? existingScope,
ChannelIdentifier.ChannelIdentifierId? channelIdentifier)
{
// Always request the global scopes
var permissionScopeElements = new HashSet<PermissionScopeElement>
{
new(PermissionContextIdentifier.Global, PermissionIdentifier.ViewMessages),
new(PermissionContextIdentifier.Global, PermissionIdentifier.ViewChannelInfo),
new(PermissionContextIdentifier.Global, PermissionIdentifier.ViewDirectMessages)
};
// For private channels, channel-specific scopes are needed
if (channelIdentifier != null)
{
permissionScopeElements.Add(new(PermissionContextIdentifier.Channel(channelIdentifier.Id), PermissionIdentifier.ViewMessages));
permissionScopeElements.Add(new(PermissionContextIdentifier.Channel(channelIdentifier.Id), PermissionIdentifier.ViewChannelInfo));
}
return AppUserActionExecutionResult.AuthCodeFlowRequired(
new List<AuthCodeFlowPermissionsRequest>
{
new (new PermissionScope(existingScope ?? "") + PermissionScopeBuilder.FromElements(permissionScopeElements), purpose: "translate chat message")
});
}