@atlaskit/teams-client 4.20.0 → 4.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/common/utils/permissions/constants.js +52 -8
  3. package/dist/cjs/common/utils/permissions/has-permission.js +4 -3
  4. package/dist/cjs/common/utils/permissions/types.js +2 -2
  5. package/dist/cjs/common/utils/ufo/constants.js +1 -1
  6. package/dist/cjs/services/legion-client/index.js +233 -184
  7. package/dist/cjs/services/main.js +580 -533
  8. package/dist/es2019/common/utils/permissions/constants.js +53 -8
  9. package/dist/es2019/common/utils/permissions/has-permission.js +4 -3
  10. package/dist/es2019/common/utils/permissions/types.js +2 -2
  11. package/dist/es2019/common/utils/ufo/constants.js +1 -1
  12. package/dist/es2019/services/legion-client/index.js +19 -4
  13. package/dist/es2019/services/main.js +9 -0
  14. package/dist/esm/common/utils/permissions/constants.js +52 -8
  15. package/dist/esm/common/utils/permissions/has-permission.js +4 -3
  16. package/dist/esm/common/utils/permissions/types.js +2 -2
  17. package/dist/esm/common/utils/ufo/constants.js +1 -1
  18. package/dist/esm/services/legion-client/index.js +233 -184
  19. package/dist/esm/services/main.js +580 -533
  20. package/dist/types/common/utils/permissions/constants.d.ts +3 -3
  21. package/dist/types/common/utils/permissions/has-permission.d.ts +3 -2
  22. package/dist/types/common/utils/permissions/types.d.ts +1 -1
  23. package/dist/types/common/utils/ufo/constants.d.ts +2 -2
  24. package/dist/types/services/legion-client/index.d.ts +4 -2
  25. package/dist/types/services/legion-client/types.d.ts +7 -0
  26. package/dist/types/services/main.d.ts +5 -0
  27. package/dist/types/types/team.d.ts +1 -1
  28. package/dist/types-ts4.5/common/utils/permissions/constants.d.ts +3 -3
  29. package/dist/types-ts4.5/common/utils/permissions/has-permission.d.ts +3 -2
  30. package/dist/types-ts4.5/common/utils/permissions/types.d.ts +3 -1
  31. package/dist/types-ts4.5/common/utils/ufo/constants.d.ts +2 -1
  32. package/dist/types-ts4.5/services/legion-client/index.d.ts +4 -2
  33. package/dist/types-ts4.5/services/legion-client/types.d.ts +7 -0
  34. package/dist/types-ts4.5/services/main.d.ts +5 -0
  35. package/dist/types-ts4.5/types/team.d.ts +1 -1
  36. package/package.json +1 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @atlaskit/teams-client
2
2
 
3
+ ## 4.22.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`351add7ec8607`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/351add7ec8607) -
8
+ [ux] Add team types field and permission handlers
9
+
10
+ ## 4.21.0
11
+
12
+ ### Minor Changes
13
+
14
+ - [`c40c12b0fcf46`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c40c12b0fcf46) -
15
+ Added a new API "getTeamStatesInBulk" to fetch team states in bulk in an org
16
+
17
+ ### Patch Changes
18
+
19
+ - [`151750f891a85`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/151750f891a85) -
20
+ Updated unassigned teams response type to include null for cursor
21
+
3
22
  ## 4.20.0
4
23
 
5
24
  ### Minor Changes
@@ -10,7 +10,7 @@ var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gat
10
10
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
12
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
- var allPermissions = exports.allPermissions = function allPermissions(defaultPermission, isMember) {
13
+ var allPermissions = exports.allPermissions = function allPermissions(defaultPermission, isMember, isOrgAdmin) {
14
14
  return {
15
15
  ADD_MEMBER_TO_TEAM: defaultPermission,
16
16
  JOIN_TEAM: defaultPermission,
@@ -28,9 +28,11 @@ var allPermissions = exports.allPermissions = function allPermissions(defaultPer
28
28
  DELETE_TEAM: defaultPermission,
29
29
  EDIT_TEAM_SETTINGS: defaultPermission,
30
30
  EDIT_TEAM_MEMBERSHIP: defaultPermission,
31
+ EDIT_TEAM_TYPE: defaultPermission && isOrgAdmin,
31
32
  REMOVE_AGENT_FROM_TEAM: defaultPermission,
32
33
  ADD_AGENT_TO_TEAM: defaultPermission,
33
- ARCHIVE_TEAM: defaultPermission && isMember
34
+ ARCHIVE_TEAM: defaultPermission && isMember,
35
+ UNARCHIVE_TEAM: false
34
36
  };
35
37
  };
36
38
  var vanityActions = exports.vanityActions = ['EDIT_DESCRIPTION', 'EDIT_TEAM_NAME', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK'];
@@ -57,24 +59,66 @@ var SCIMSyncTeamPermissions = exports.SCIMSyncTeamPermissions = function SCIMSyn
57
59
  EDIT_TEAM_NAME: isOrgAdmin && source === 'ATLASSIAN_GROUP' && (0, _platformFeatureFlags.fg)('enable_edit_team_name_external_type_teams')
58
60
  };
59
61
  };
60
- var getPermissionMap = exports.getPermissionMap = function getPermissionMap(settings, permission, isMember, isOrgAdmin, source) {
62
+
63
+ /**
64
+ * Returns permission map for disbanded teams
65
+ * Only UNARCHIVE_TEAM action is allowed based on team settings and user permissions
66
+ */
67
+ var getDisbandedTeamPermissionMap = function getDisbandedTeamPermissionMap(settings, permission, isMember, isOrgAdmin) {
68
+ var newTeamProfileEnabled = _featureGateJsClient.default.getExperimentValue('new_team_profile', 'isEnabled', false);
69
+ var isArchiveTeamEnabled = (0, _platformFeatureFlags.fg)('legion-enable-archive-teams') && newTeamProfileEnabled;
70
+
71
+ // Base permission map - all actions disabled for disbanded teams
72
+ var basePermissions = allPermissions(false, false, false);
73
+
74
+ // UNARCHIVE_TEAM permission based on team settings
75
+ var canUnarchive = false;
76
+ if (isArchiveTeamEnabled) {
77
+ if (settings === 'EXTERNAL') {
78
+ // For EXTERNAL teams, only org admins can unarchive
79
+ canUnarchive = isOrgAdmin;
80
+ } else if (settings === 'OPEN' || settings === 'MEMBER_INVITE') {
81
+ // For OPEN and MEMBER_INVITE teams, members with FULL_WRITE can unarchive
82
+ canUnarchive = isMember && permission === 'FULL_WRITE';
83
+ }
84
+ }
85
+ return _objectSpread(_objectSpread({}, basePermissions), {}, {
86
+ UNARCHIVE_TEAM: canUnarchive,
87
+ DELETE_TEAM: canUnarchive
88
+ });
89
+ };
90
+
91
+ /**
92
+ * Returns permission map for active teams based on team settings
93
+ */
94
+ var getActiveTeamPermissionMap = function getActiveTeamPermissionMap(settings, permission, isMember, isOrgAdmin, source) {
61
95
  var newTeamProfileEnabled = _featureGateJsClient.default.getExperimentValue('new_team_profile', 'isEnabled', false);
62
96
  var isArchiveTeamEnabled = (0, _platformFeatureFlags.fg)('legion-enable-archive-teams') && newTeamProfileEnabled;
63
97
  if (settings === 'OPEN') {
64
- return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), openPermissions(permission)), {}, {
98
+ return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember, isOrgAdmin)), openPermissions(permission)), {}, {
65
99
  ARCHIVE_TEAM: isArchiveTeamEnabled && permission === 'FULL_WRITE' && isMember
66
100
  });
67
101
  }
68
102
  if (settings === 'MEMBER_INVITE') {
69
- return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), inviteOnlyPermissions(permission)), {}, {
103
+ return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember, isOrgAdmin)), inviteOnlyPermissions(permission)), {}, {
70
104
  ARCHIVE_TEAM: isArchiveTeamEnabled && permission === 'FULL_WRITE' && isMember
71
105
  });
72
106
  } else if (settings === 'EXTERNAL') {
73
- return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(false, isMember)), SCIMSyncTeamPermissions(isMember, isOrgAdmin, source)), {}, {
107
+ return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(false, isMember, isOrgAdmin)), SCIMSyncTeamPermissions(isMember, isOrgAdmin, source)), {}, {
74
108
  ADD_AGENT_TO_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin),
75
109
  REMOVE_AGENT_FROM_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin),
76
- ARCHIVE_TEAM: isArchiveTeamEnabled && isOrgAdmin
110
+ ARCHIVE_TEAM: isArchiveTeamEnabled && isOrgAdmin,
111
+ EDIT_TEAM_TYPE: isOrgAdmin
77
112
  });
78
113
  }
79
- return allPermissions(false, false);
114
+ return allPermissions(false, false, false);
115
+ };
116
+ var getPermissionMap = exports.getPermissionMap = function getPermissionMap(settings, permission, isMember, isOrgAdmin, source, state) {
117
+ // Handle disbanded teams with special permission map
118
+ if (state === 'DISBANDED') {
119
+ return getDisbandedTeamPermissionMap(settings, permission, isMember, isOrgAdmin);
120
+ }
121
+
122
+ // For active teams (or when state is not provided), use existing logic
123
+ return getActiveTeamPermissionMap(settings, permission, isMember, isOrgAdmin, source);
80
124
  };
@@ -8,7 +8,7 @@ exports.hasPermissionForAction = hasPermissionForAction;
8
8
  exports.userCan = userCan;
9
9
  var _team = require("../team");
10
10
  var _constants = require("./constants");
11
- function hasPermission(action, settings, permission, isPeopleBrowseEnabled, currentUserMembership, teamVisibilityPermissions, source) {
11
+ function hasPermission(action, settings, permission, isPeopleBrowseEnabled, currentUserMembership, teamVisibilityPermissions, source, state) {
12
12
  if (!isPeopleBrowseEnabled && !_constants.vanityActions.includes(action)) {
13
13
  return false;
14
14
  }
@@ -19,14 +19,15 @@ function hasPermission(action, settings, permission, isPeopleBrowseEnabled, curr
19
19
  teamPermission: permission,
20
20
  isMemberOfTeam: isMemberOfTeam,
21
21
  isOrgAdmin: isOrgAdmin,
22
- source: source
22
+ source: source,
23
+ state: state
23
24
  });
24
25
  }
25
26
  /**
26
27
  * Determines if a user has permission perform a given action on a team
27
28
  */
28
29
  function userCan(action, options) {
29
- return (0, _constants.getPermissionMap)(options.membershipSettings, options.teamPermission, options.isMemberOfTeam, options.isOrgAdmin, options.source)[action];
30
+ return (0, _constants.getPermissionMap)(options.membershipSettings, options.teamPermission, options.isMemberOfTeam, options.isOrgAdmin, options.source, options.state)[action];
30
31
  }
31
32
 
32
33
  /**
@@ -6,6 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.AllTeamActions = void 0;
7
7
  var AllTeamActions = exports.AllTeamActions = ['ADD_MEMBER_TO_TEAM', 'JOIN_TEAM', 'REQUEST_TO_JOIN', 'CANCEL_JOIN_REQUEST', 'APPROVE_JOIN_REQUEST', 'REJECT_JOIN_REQUEST', 'REMOVE_MEMBER_FROM_TEAM', 'CANCEL_INVITE', 'LEAVE_TEAM', 'REMOVE_AGENT_FROM_TEAM', 'ADD_AGENT_TO_TEAM',
8
8
  // Visual
9
- 'EDIT_TEAM_NAME', 'EDIT_DESCRIPTION', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK', 'EDIT_TEAM_SETTINGS', 'EDIT_TEAM_MEMBERSHIP',
9
+ 'EDIT_TEAM_NAME', 'EDIT_DESCRIPTION', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK', 'EDIT_TEAM_SETTINGS', 'EDIT_TEAM_MEMBERSHIP', 'EDIT_TEAM_TYPE',
10
10
  // Serious
11
- 'DELETE_TEAM', 'ARCHIVE_TEAM'];
11
+ 'DELETE_TEAM', 'ARCHIVE_TEAM', 'UNARCHIVE_TEAM'];
@@ -8,7 +8,7 @@ exports.TEAMS_CLIENT_EXPERIENCES = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _ufo = require("@atlaskit/ufo");
10
10
  var _index = require("./index");
11
- var TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'archiveTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl', 'getWebLinkTitle', 'addAgentToTeam', 'getTeamEnabledSites', 'assignTeamsToSites', 'removeAgentTeamAssociation', 'getAssignedTeams', 'setTeamSiteAssignmentPermission', 'getUnassignedTeams', 'getTeamSiteAssignmentOrgDetails', 'getTeamsToBeClonedToJsmSites', 'getReportingLines'];
11
+ var TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'archiveTeam', 'unarchiveTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl', 'getWebLinkTitle', 'addAgentToTeam', 'getTeamEnabledSites', 'assignTeamsToSites', 'removeAgentTeamAssociation', 'getAssignedTeams', 'setTeamSiteAssignmentPermission', 'getUnassignedTeams', 'getTeamSiteAssignmentOrgDetails', 'getTeamsToBeClonedToJsmSites', 'getReportingLines'];
12
12
  var TEAMS_CLIENT_EXPERIENCES = exports.TEAMS_CLIENT_EXPERIENCES = new Map((0, _toConsumableArray2.default)(TeamsClientExperienceKeyList.map(function (key) {
13
13
  return [key,
14
14
  // camelCase to kebab-case