@atlaskit/teams-client 4.21.0 → 4.23.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 (38) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/common/utils/permissions/constants.js +55 -8
  3. package/dist/cjs/common/utils/permissions/has-permission.js +4 -3
  4. package/dist/cjs/common/utils/permissions/types.js +3 -3
  5. package/dist/cjs/common/utils/ufo/constants.js +1 -1
  6. package/dist/cjs/common/utils/ufo/index.js +2 -2
  7. package/dist/cjs/services/legion-client/index.js +241 -196
  8. package/dist/cjs/services/main.js +592 -540
  9. package/dist/cjs/services/sentry/utils/get-sentry-config.js +1 -1
  10. package/dist/es2019/common/utils/permissions/constants.js +56 -8
  11. package/dist/es2019/common/utils/permissions/has-permission.js +4 -3
  12. package/dist/es2019/common/utils/permissions/types.js +3 -3
  13. package/dist/es2019/common/utils/ufo/constants.js +1 -1
  14. package/dist/es2019/common/utils/ufo/index.js +2 -2
  15. package/dist/es2019/services/legion-client/index.js +12 -2
  16. package/dist/es2019/services/main.js +13 -0
  17. package/dist/es2019/services/sentry/utils/get-sentry-config.js +1 -1
  18. package/dist/esm/common/utils/permissions/constants.js +55 -8
  19. package/dist/esm/common/utils/permissions/has-permission.js +4 -3
  20. package/dist/esm/common/utils/permissions/types.js +3 -3
  21. package/dist/esm/common/utils/ufo/constants.js +1 -1
  22. package/dist/esm/common/utils/ufo/index.js +2 -2
  23. package/dist/esm/services/legion-client/index.js +241 -196
  24. package/dist/esm/services/main.js +592 -540
  25. package/dist/esm/services/sentry/utils/get-sentry-config.js +1 -1
  26. package/dist/types/common/utils/permissions/constants.d.ts +3 -3
  27. package/dist/types/common/utils/permissions/has-permission.d.ts +3 -2
  28. package/dist/types/common/utils/permissions/types.d.ts +1 -1
  29. package/dist/types/common/utils/ufo/constants.d.ts +2 -2
  30. package/dist/types/services/legion-client/index.d.ts +3 -1
  31. package/dist/types/services/main.d.ts +8 -0
  32. package/dist/types-ts4.5/common/utils/permissions/constants.d.ts +3 -3
  33. package/dist/types-ts4.5/common/utils/permissions/has-permission.d.ts +3 -2
  34. package/dist/types-ts4.5/common/utils/permissions/types.d.ts +4 -1
  35. package/dist/types-ts4.5/common/utils/ufo/constants.d.ts +3 -1
  36. package/dist/types-ts4.5/services/legion-client/index.d.ts +3 -1
  37. package/dist/types-ts4.5/services/main.d.ts +8 -0
  38. package/package.json +1 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/teams-client
2
2
 
3
+ ## 4.23.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`c49c45398b080`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c49c45398b080) -
8
+ [ux] Add types to the team create
9
+
10
+ ## 4.22.0
11
+
12
+ ### Minor Changes
13
+
14
+ - [`351add7ec8607`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/351add7ec8607) -
15
+ [ux] Add team types field and permission handlers
16
+
3
17
  ## 4.21.0
4
18
 
5
19
  ### 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,12 @@ 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,
36
+ CAN_EDIT_HIERARCHY: defaultPermission && isMember
34
37
  };
35
38
  };
36
39
  var vanityActions = exports.vanityActions = ['EDIT_DESCRIPTION', 'EDIT_TEAM_NAME', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK'];
@@ -57,24 +60,68 @@ var SCIMSyncTeamPermissions = exports.SCIMSyncTeamPermissions = function SCIMSyn
57
60
  EDIT_TEAM_NAME: isOrgAdmin && source === 'ATLASSIAN_GROUP' && (0, _platformFeatureFlags.fg)('enable_edit_team_name_external_type_teams')
58
61
  };
59
62
  };
60
- var getPermissionMap = exports.getPermissionMap = function getPermissionMap(settings, permission, isMember, isOrgAdmin, source) {
63
+
64
+ /**
65
+ * Returns permission map for disbanded teams
66
+ * Only UNARCHIVE_TEAM action is allowed based on team settings and user permissions
67
+ */
68
+ var getDisbandedTeamPermissionMap = function getDisbandedTeamPermissionMap(settings, permission, isMember, isOrgAdmin) {
69
+ var newTeamProfileEnabled = _featureGateJsClient.default.getExperimentValue('new_team_profile', 'isEnabled', false);
70
+ var isArchiveTeamEnabled = (0, _platformFeatureFlags.fg)('legion-enable-archive-teams') && newTeamProfileEnabled;
71
+
72
+ // Base permission map - all actions disabled for disbanded teams
73
+ var basePermissions = allPermissions(false, false, false);
74
+
75
+ // UNARCHIVE_TEAM permission based on team settings
76
+ var canUnarchive = false;
77
+ if (isArchiveTeamEnabled) {
78
+ if (settings === 'EXTERNAL') {
79
+ // For EXTERNAL teams, only org admins can unarchive
80
+ canUnarchive = isOrgAdmin;
81
+ } else if (settings === 'OPEN' || settings === 'MEMBER_INVITE') {
82
+ // For OPEN and MEMBER_INVITE teams, members with FULL_WRITE can unarchive
83
+ canUnarchive = isMember && permission === 'FULL_WRITE';
84
+ }
85
+ }
86
+ return _objectSpread(_objectSpread({}, basePermissions), {}, {
87
+ CAN_EDIT_HIERARCHY: false,
88
+ UNARCHIVE_TEAM: canUnarchive,
89
+ DELETE_TEAM: canUnarchive
90
+ });
91
+ };
92
+
93
+ /**
94
+ * Returns permission map for active teams based on team settings
95
+ */
96
+ var getActiveTeamPermissionMap = function getActiveTeamPermissionMap(settings, permission, isMember, isOrgAdmin, source) {
61
97
  var newTeamProfileEnabled = _featureGateJsClient.default.getExperimentValue('new_team_profile', 'isEnabled', false);
62
98
  var isArchiveTeamEnabled = (0, _platformFeatureFlags.fg)('legion-enable-archive-teams') && newTeamProfileEnabled;
63
99
  if (settings === 'OPEN') {
64
- return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), openPermissions(permission)), {}, {
100
+ return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember, isOrgAdmin)), openPermissions(permission)), {}, {
65
101
  ARCHIVE_TEAM: isArchiveTeamEnabled && permission === 'FULL_WRITE' && isMember
66
102
  });
67
103
  }
68
104
  if (settings === 'MEMBER_INVITE') {
69
- return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), inviteOnlyPermissions(permission)), {}, {
105
+ return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember, isOrgAdmin)), inviteOnlyPermissions(permission)), {}, {
70
106
  ARCHIVE_TEAM: isArchiveTeamEnabled && permission === 'FULL_WRITE' && isMember
71
107
  });
72
108
  } else if (settings === 'EXTERNAL') {
73
- return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(false, isMember)), SCIMSyncTeamPermissions(isMember, isOrgAdmin, source)), {}, {
109
+ return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(false, isMember, isOrgAdmin)), SCIMSyncTeamPermissions(isMember, isOrgAdmin, source)), {}, {
74
110
  ADD_AGENT_TO_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin),
75
111
  REMOVE_AGENT_FROM_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin),
76
- ARCHIVE_TEAM: isArchiveTeamEnabled && isOrgAdmin
112
+ ARCHIVE_TEAM: isArchiveTeamEnabled && isOrgAdmin,
113
+ EDIT_TEAM_TYPE: isOrgAdmin,
114
+ CAN_EDIT_HIERARCHY: permission === 'FULL_WRITE' && isOrgAdmin
77
115
  });
78
116
  }
79
- return allPermissions(false, false);
117
+ return allPermissions(false, false, false);
118
+ };
119
+ var getPermissionMap = exports.getPermissionMap = function getPermissionMap(settings, permission, isMember, isOrgAdmin, source, state) {
120
+ // Handle disbanded teams with special permission map
121
+ if (state === 'DISBANDED') {
122
+ return getDisbandedTeamPermissionMap(settings, permission, isMember, isOrgAdmin);
123
+ }
124
+
125
+ // For active teams (or when state is not provided), use existing logic
126
+ return getActiveTeamPermissionMap(settings, permission, isMember, isOrgAdmin, source);
80
127
  };
@@ -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
  /**
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.AllTeamActions = void 0;
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',
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', 'CAN_EDIT_HIERARCHY',
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', 'unlinkTeamFromGroup', '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
@@ -52,7 +52,7 @@ var TeamsUFOExperience = exports.TeamsUFOExperience = /*#__PURE__*/function (_UF
52
52
  return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
53
53
  metadata: {
54
54
  error: (0, _utils.createErrorMetadata)(error),
55
- packageVersion: "4.20.0",
55
+ packageVersion: "4.23.0",
56
56
  packageName: "@atlaskit/teams-client"
57
57
  }
58
58
  }]);
@@ -60,7 +60,7 @@ var TeamsUFOExperience = exports.TeamsUFOExperience = /*#__PURE__*/function (_UF
60
60
  return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
61
61
  metadata: {
62
62
  error: 'unknown error',
63
- packageVersion: "4.20.0",
63
+ packageVersion: "4.23.0",
64
64
  packageName: "@atlaskit/teams-client"
65
65
  }
66
66
  }]);