Update chat space roles/permissions

This commit is contained in:
Ross Scroggs
2025-10-24 11:40:07 -07:00
parent 90beada55e
commit e3d940c548
4 changed files with 66 additions and 40 deletions

View File

@@ -4086,7 +4086,7 @@ gam print group-members [todrive <ToDriveAttribute>*]
gam create cigroup <EmailAddress>
[copyfrom <GroupItem>] <GroupAttribute>*
[makeowner] [alias|aliases <CIGroupAliasList>]
[security|makesecuritygroup]
[security|makesecuritygroup] [locked]
[dynamic <QueryDynamicGroup>]
gam update cigroup <GroupEntity> [copyfrom <GroupItem>] <GroupAttribute>
[security|makesecuritygroup|
@@ -6428,13 +6428,13 @@ gam <UserTypeEntity> update chatspace <ChatSpace>
[type space]
[description <String>] [guidelines|rules <String>]
[history <Boolean>])
[managemembersandgroups managers|members]
[modifyspacedetails managers|members]
[togglehistory managers|members]
[useatmentionall managers|members]
[manageapps managers|members]
[managewebhooks managers|members]
[replymessages managers|members]
[managemembersandgroups owners|managers|members]
[modifyspacedetails owners|managers|members]
[togglehistory owners|managers|members]
[useatmentionall owners|managers|members]
[manageapps owners|managers|members]
[managewebhooks owners|managers|members]
[replymessages owners|managers|members]
[formatjson]
gam <UserTypeEntity> delete chatspace <ChatSpace>
@@ -6495,28 +6495,28 @@ gam <UserItem> print chatspaces asadmin [todrive <ToDriveAttribute>*]
[formatjson [quotechar <Character>]]
gam <UserTypeEntity> create chatmember <ChatSpace>
[type human|bot] [role member|manager]
[type human|bot] [role member|manager|owner]
(user <UserItem>)* (members <UserTypeEntity>)*
(group <GroupItem>)* (groups <GroupEntity>)*
[formatjson|returnidonly]
gam <UserTypeEntity> delete chatmember <ChatSpace>
((user <UserItem>)|(members <UserTypeEntity>)|
(group <GroupItem>)|(groups <GroupEntity>))+
gam <UserTypeEntity> remove chatmember members <ChatMemberList>
`gam <UserTypeEntity> remove chatmember members <ChatMemberList>
gam <UserTypeEntity> update chatmember <ChatSpace>
role member|manager
role member|manager|owner
((user <UserItem>)|(members <UserTypeEntity>))+
gam <UserTypeEntity> modify chatmember
role member|manager
role member|manager|owner
members <ChatMemberList>
gam <UserTypeEntity> sync chatmembers <ChatSpace>
[role member|manager] [type human|bot]
[role member|manager|owner] [type human|bot]
[addonly|removeonly]
[preview [actioncsv]]
(users <UserTypeEntity>)* (groups <GroupEntity>)*
gam <UserItem> create chatmember asadmin <ChatSpace>
[type human|bot] [role member|manager]
[type human|bot] [role member|manager|owner]
(user <UserItem>)* (members <UserTypeEntity>)*
(group <GroupItem>)* (groups <GroupEntity>)*
[formatjson|returnidonly]
@@ -6525,13 +6525,13 @@ gam <UserItem> delete chatmember asadmin <ChatSpace>
((user <UserItem>)|(members <UserTypeEntity>)|
(group <GroupItem>)|(groups <GroupEntity>))+
gam <UserItem> update chatmember asadmin <ChatSpace>
role member|manager
role member|manager|owner
((user <UserItem>)|(members <UserTypeEntity>))+
gam <UserItem> modify chatmember asadmin
role member|manager
role member|manager|owner
members <ChatMemberList>
gam <UserItem> sync chatmembers asadmin <ChatSpace>
[role member|manager] [type human|bot]
[role member|manager|owner`] [type human|bot]
[addonly|removeonly]
[preview [actioncsv]]
(users <UserTypeEntity>)* (groups <GroupEntity>)*

View File

@@ -1,3 +1,24 @@
7.27.03
Updated `gam <UserTypeEntity> create|update|sync chatmember` role specification to `role member|manager|owner`.
This is the mapping between the Chat UI and Chat API; GAM uses the Chat UI role names.
```
UI: Member, API: ROLE_MEMBER
UI: Manager, API: ROLE_ASSISTANT_MANAGER
UI: Owner, API: ROLE_MANAGER
```
Updated `gam <UserTypeEntity> update chatspace` options for permission settings.
```
[managemembersandgroups owners|managers|members]
[modifyspacedetails owners|managers|members]
[togglehistory owners|managers|members]
[useatmentionall owners|managers|members]
[manageapps owners|managers|members]
[managewebhooks owners|managers|members]
[replymessages owners|managers|members]
```
7.27.02
Added option `clearattachments <String>` to `gam [<UserTypeMessage>] update chatmessage`

View File

@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
"""
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
__version__ = '7.27.02'
__version__ = '7.27.03'
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
#pylint: disable=wrong-import-position
@@ -26776,14 +26776,14 @@ def getChatSpaceParameters(myarg, body, typeChoicesMap, updateMask):
CHAT_MEMBER_ROLE_MAP = {
'member': 'ROLE_MEMBER',
'manager': 'ROLE_MANAGER',
'owner': 'ROLE_OWNER',
'manager': 'ROLE_ASSISTANT_MANAGER',
'owner': 'ROLE_MANAGER',
}
CHAT_ROLE_ENTITY_TYPE_MAP = {
'ROLE_MEMBER': Ent.CHAT_MEMBER_USER,
'ROLE_MANAGER': Ent.CHAT_MANAGER_USER,
'ROLE_OWNER': Ent.CHAT_OWNER_USER,
'ROLE_ASSISTANT_MANAGER': Ent.CHAT_MANAGER_USER,
'ROLE_MANAGER': Ent.CHAT_OWNER_USER,
}
CHAT_MEMBER_TYPE_MAP = {
@@ -26917,7 +26917,8 @@ CHAT_UPDATE_SPACE_TYPE_MAP = {
}
CHAT_SPACE_ROLE_PERMISSIONS_MAP = {
'managers': 'managersAllowed',
'owners': 'managersAllowed',
'managers': 'assistantManagersAllowed',
'members': 'membersAllowed',
}
@@ -26937,13 +26938,13 @@ CHAT_UPDATE_SPACE_PERMISSIONS_MAP = {
# [type space]
# [description <String>] [guidelines|rules <String>]
# [history <Boolean>])
# managemembersandgroups managers|members
# modifyspacedetails managers|members
# togglehistory managers|members
# useatmentionall managers|members
# manageapps managers|members
# managewebhooks managers|members
# replymessages managers|members
# [managemembersandgroups owners|managers|members]
# [modifyspacedetails owners|managers|members]
# [togglehistory owners|managers|members]
# [useatmentionall owners|managers|members]
# [manageapps owners|managers|members]
# [managewebhooks owners|managers|members]
2# [replymessages owners|managers|members]
# [formatjson]
def updateChatSpace(users):
FJQC = FormatJSONQuoteChar()
@@ -26961,9 +26962,13 @@ def updateChatSpace(users):
body.setdefault('permissionSettings', {})
permissionSetting = CHAT_UPDATE_SPACE_PERMISSIONS_MAP[myarg]
role = getChoice(CHAT_SPACE_ROLE_PERMISSIONS_MAP, mapChoice=True)
body['permissionSettings'][permissionSetting] = {'managersAllowed': True}
body['permissionSettings'][permissionSetting] = {}
body['permissionSettings'][permissionSetting][role] = True
if role == 'membersAllowed':
body['permissionSettings'][permissionSetting].update({'membersAllowed': True})
body['permissionSettings'][permissionSetting]['assistantManagersAllowed'] = True
body['permissionSettings'][permissionSetting]['managersAllowed'] = True
elif role == 'assistantManagersAllowed':
body['permissionSettings'][permissionSetting]['managersAllowed'] = True
updateMask.add(f'permissionSettings.{permissionSetting}')
else:
FJQC.GetFormatJSON(myarg)
@@ -27337,12 +27342,12 @@ def getGroupMemberID(cd, group, groupList):
groupList.append(convertEmailAddressToUID(group, cd, emailType='group'))
# gam <UserTypeEntity> create chatmember <ChatSpace>
# [type human|bot] [role member|manager]
# [type human|bot] [role member|manager|owner]
# (user <UserItem>)* (members <UserTypeEntity>)*
# (group <GroupItem>)* (groups <GroupEntity>)*
# [formatjson|returnidonly]
# gam <UserItem> create chatmember asadmin <ChatSpace>
# [type human|bot] [role member|manager]
# [type human|bot] [role member|manager|owner]
# (user <UserItem>)* (members <UserTypeEntity>)*
# (group <GroupItem>)* (groups <GroupEntity>)*
# [formatjson|returnidonly]
@@ -27471,16 +27476,16 @@ def _deleteChatMembers(chat, kvList, jcount, memberNames, i, count, kwargsUAA):
# gam <UserItem> remove chatmember asadmin
# members <ChatMemberList>
# gam <UserTypeEntity> update chatmember <ChatSpace>
# role member|manager
# role member|manager|owner
# ((user <UserItem>)|(members <UserTypeEntity>))+
# gam <UserTypeEntity> modify chatmember
# role member|manager
# role member|manager|owner
# members <ChatMemberList>
# gam <UserItem> update chatmember asadmin<ChatSpace>
# role member|manager
# role member|manager|owner
# ((user <UserItem>)|(members <UserTypeEntity>))+
# gam <UserItem> modify chatmember asadmin
# role member|manager
# role member|manager|owner
# members <ChatMemberList>
def deleteUpdateChatMember(users):
cd = buildGAPIObject(API.DIRECTORY)
@@ -27574,7 +27579,7 @@ def deleteUpdateChatMember(users):
CHAT_SYNC_PREVIEW_TITLES = ['space', 'member', 'role', 'action', 'message']
# gam <UserTypeEntity> sync chatmembers [asadmin] <ChatSpace>
# [role member|manager] [type human|bot]
# [role member|manager|owner] [type human|bot]
# [addonly|removeonly]
# [preview [actioncsv]]
# (users <UserTypeEntity>)* (groups <GroupEntity>)*

View File

@@ -516,7 +516,7 @@ To set up Google Chat for your current project, please go to:
and follow the instructions at:
https://github.com/GAM-team/GAM/wiki/Chat-Bot#set-up-a-chat-bot
https://github.com/GAM-team/GAM/wiki/Chat-Bot-Setup-Use#set-up-a-chat-bot
You'll use projects/{1}/topics/no-topic in Connection settings Cloud Pub/Sub Topic Name
"""