mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-04 12:51:36 +00:00
Update guest user support #1874
This commit is contained in:
@@ -916,6 +916,8 @@ Specify a collection of Users by directly specifying them or by specifying items
|
|||||||
|
|
||||||
<UserTypeEntity> ::=
|
<UserTypeEntity> ::=
|
||||||
(all users|users_na|users_arch|users_ns|users_susp|users_arch_or_susp|users_na_ns|users_ns_susp)|
|
(all users|users_na|users_arch|users_ns|users_susp|users_arch_or_susp|users_na_ns|users_ns_susp)|
|
||||||
|
(all guests|guests_ns|guests_susp|guests_ns_susp)|
|
||||||
|
(all users_and_guests|users_and_guests_ns|users_and_guests_susp|users_and_guests_ns_susp)|
|
||||||
(user <UserItem>)|
|
(user <UserItem>)|
|
||||||
(users <UserList>)|
|
(users <UserList>)|
|
||||||
(oauthuser)
|
(oauthuser)
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
7.43.00
|
||||||
|
|
||||||
|
Updated `gam info user` to display guest user attributes: `isGuestUser, guestAccountInfo`
|
||||||
|
|
||||||
|
Expanded `<UserTypeEntity>` to allow specification of guest users.
|
||||||
|
* See [Collections of Users](Collections-of-Users)
|
||||||
|
|
||||||
7.42.00
|
7.42.00
|
||||||
|
|
||||||
In versions prior to 7.42.00, when `redirect csv <FileName>` was used, GAM did not open and write `<FileName>`
|
In versions prior to 7.42.00, when `redirect csv <FileName>` was used, GAM did not open and write `<FileName>`
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
||||||
__version__ = '7.42.00'
|
__version__ = '7.43.00'
|
||||||
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||||
|
|
||||||
# pylint: disable=wrong-import-position
|
# pylint: disable=wrong-import-position
|
||||||
@@ -46929,10 +46929,15 @@ USER_NAME_PROPERTY_PRINT_ORDER = [
|
|||||||
'fullName',
|
'fullName',
|
||||||
'displayName',
|
'displayName',
|
||||||
]
|
]
|
||||||
|
USER_GUEST_PROPERTY_PRINT_ORDER = [
|
||||||
|
'primaryGuestEmail',
|
||||||
|
]
|
||||||
USER_LANGUAGE_PROPERTY_PRINT_ORDER = [
|
USER_LANGUAGE_PROPERTY_PRINT_ORDER = [
|
||||||
'languages',
|
'languages',
|
||||||
]
|
]
|
||||||
USER_SCALAR_PROPERTY_PRINT_ORDER = [
|
USER_SCALAR_PROPERTY_PRINT_ORDER = [
|
||||||
|
'isGuestUser',
|
||||||
|
'guestAccountInfo',
|
||||||
'isAdmin',
|
'isAdmin',
|
||||||
'isDelegatedAdmin',
|
'isDelegatedAdmin',
|
||||||
'isEnrolledIn2Sv',
|
'isEnrolledIn2Sv',
|
||||||
@@ -47050,7 +47055,7 @@ USER_FIELDS_CHOICE_MAP = {
|
|||||||
'gal': 'includeInGlobalAddressList',
|
'gal': 'includeInGlobalAddressList',
|
||||||
'gender': ['gender.type', 'gender.customGender', 'gender.addressMeAs'],
|
'gender': ['gender.type', 'gender.customGender', 'gender.addressMeAs'],
|
||||||
'givenname': 'name.givenName',
|
'givenname': 'name.givenName',
|
||||||
'guestaccountinfo': 'guestAccountInfo',
|
'guestaccountinfo': ['guestAccountInfo.primaryGuestEmail'],
|
||||||
'id': 'id',
|
'id': 'id',
|
||||||
'im': 'ims',
|
'im': 'ims',
|
||||||
'ims': 'ims',
|
'ims': 'ims',
|
||||||
@@ -47368,17 +47373,23 @@ def infoUsers(entityList):
|
|||||||
Ind.Increment()
|
Ind.Increment()
|
||||||
printKeyValueList(['Settings', None])
|
printKeyValueList(['Settings', None])
|
||||||
Ind.Increment()
|
Ind.Increment()
|
||||||
if 'name' in user:
|
up = 'name'
|
||||||
for up in USER_NAME_PROPERTY_PRINT_ORDER:
|
if up in user:
|
||||||
if up in user['name']:
|
for nup in USER_NAME_PROPERTY_PRINT_ORDER:
|
||||||
printKeyValueList([UProp.PROPERTIES[up][UProp.TITLE], user['name'][up]])
|
if nup in user[up]:
|
||||||
|
printKeyValueList([UProp.PROPERTIES[nup][UProp.TITLE], user[up][nup]])
|
||||||
up = 'languages'
|
up = 'languages'
|
||||||
if up in user:
|
if up in user:
|
||||||
printKeyValueList([UProp.PROPERTIES[up][UProp.TITLE], _formatLanguagesList(user[up], ',')])
|
printKeyValueList([UProp.PROPERTIES[up][UProp.TITLE], _formatLanguagesList(user[up], ',')])
|
||||||
for up in USER_SCALAR_PROPERTY_PRINT_ORDER:
|
for up in USER_SCALAR_PROPERTY_PRINT_ORDER:
|
||||||
if up in user:
|
if up in user:
|
||||||
if up not in USER_TIME_OBJECTS:
|
if up not in USER_TIME_OBJECTS:
|
||||||
printKeyValueList([UProp.PROPERTIES[up][UProp.TITLE], user[up]])
|
if up != 'guestAccountInfo':
|
||||||
|
printKeyValueList([UProp.PROPERTIES[up][UProp.TITLE], user[up]])
|
||||||
|
else:
|
||||||
|
for gup in USER_GUEST_PROPERTY_PRINT_ORDER:
|
||||||
|
if gup in user[up]:
|
||||||
|
printKeyValueList([UProp.PROPERTIES[gup][UProp.TITLE], user[up][gup]])
|
||||||
else:
|
else:
|
||||||
printKeyValueList([UProp.PROPERTIES[up][UProp.TITLE], formatLocalTime(user[up])])
|
printKeyValueList([UProp.PROPERTIES[up][UProp.TITLE], formatLocalTime(user[up])])
|
||||||
Ind.Decrement()
|
Ind.Decrement()
|
||||||
|
|||||||
@@ -114,6 +114,14 @@ class GamCLArgs():
|
|||||||
ENTITY_USERS_NA_NS = 'users_na_ns'
|
ENTITY_USERS_NA_NS = 'users_na_ns'
|
||||||
ENTITY_USERS_ARCH_OR_SUSP = 'users_arch_or_susp'
|
ENTITY_USERS_ARCH_OR_SUSP = 'users_arch_or_susp'
|
||||||
ENTITY_USERS_NS_SUSP = 'users_ns_susp'
|
ENTITY_USERS_NS_SUSP = 'users_ns_susp'
|
||||||
|
ENTITY_USERS_AND_GUESTS = 'users_and_guests'
|
||||||
|
ENTITY_USERS_AND_GUESTS_NS = 'users_and_guests_ns'
|
||||||
|
ENTITY_USERS_AND_GUESTS_SUSP = 'users_and_guests_susp'
|
||||||
|
ENTITY_USERS_AND_GUESTS_NS_SUSP = 'users_and_guests_ns_susp'
|
||||||
|
ENTITY_GUESTS = 'guests'
|
||||||
|
ENTITY_GUESTS_NS = 'guests_ns'
|
||||||
|
ENTITY_GUESTS_SUSP = 'guests_susp'
|
||||||
|
ENTITY_GUESTS_NS_SUSP = 'guests_ns_susp'
|
||||||
#
|
#
|
||||||
BROWSER_ENTITIES = [
|
BROWSER_ENTITIES = [
|
||||||
ENTITY_BROWSER,
|
ENTITY_BROWSER,
|
||||||
@@ -398,6 +406,14 @@ class GamCLArgs():
|
|||||||
ENTITY_USERS_ARCH_OR_SUSP,
|
ENTITY_USERS_ARCH_OR_SUSP,
|
||||||
ENTITY_USERS_NA_NS,
|
ENTITY_USERS_NA_NS,
|
||||||
ENTITY_USERS_NS_SUSP,
|
ENTITY_USERS_NS_SUSP,
|
||||||
|
ENTITY_USERS_AND_GUESTS,
|
||||||
|
ENTITY_USERS_AND_GUESTS_NS,
|
||||||
|
ENTITY_USERS_AND_GUESTS_SUSP,
|
||||||
|
ENTITY_USERS_AND_GUESTS_NS_SUSP,
|
||||||
|
ENTITY_GUESTS,
|
||||||
|
ENTITY_GUESTS_NS,
|
||||||
|
ENTITY_GUESTS_SUSP,
|
||||||
|
ENTITY_GUESTS_NS_SUSP,
|
||||||
]
|
]
|
||||||
#
|
#
|
||||||
ENTITY_ALL_CROS = ENTITY_SELECTOR_ALL+' '+ENTITY_CROS
|
ENTITY_ALL_CROS = ENTITY_SELECTOR_ALL+' '+ENTITY_CROS
|
||||||
@@ -409,6 +425,14 @@ class GamCLArgs():
|
|||||||
ENTITY_ALL_USERS_NA_NS = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_NA_NS
|
ENTITY_ALL_USERS_NA_NS = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_NA_NS
|
||||||
ENTITY_ALL_USERS_ARCH_OR_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_ARCH_OR_SUSP
|
ENTITY_ALL_USERS_ARCH_OR_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_ARCH_OR_SUSP
|
||||||
ENTITY_ALL_USERS_NS_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_NS_SUSP
|
ENTITY_ALL_USERS_NS_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_NS_SUSP
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_AND_GUESTS
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS_NS = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_AND_GUESTS_NS
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_AND_GUESTS_SUSP
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS_NS_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_AND_GUESTS_NS_SUSP
|
||||||
|
ENTITY_ALL_GUESTS = ENTITY_SELECTOR_ALL+' '+ENTITY_GUESTS
|
||||||
|
ENTITY_ALL_GUESTS_NS = ENTITY_SELECTOR_ALL+' '+ENTITY_GUESTS_NS
|
||||||
|
ENTITY_ALL_GUESTS_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_GUESTS_SUSP
|
||||||
|
ENTITY_ALL_GUESTS_NS_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_GUESTS_NS_SUSP
|
||||||
#
|
#
|
||||||
ALL_USER_ENTITY_TYPES = {
|
ALL_USER_ENTITY_TYPES = {
|
||||||
ENTITY_ALL_USERS,
|
ENTITY_ALL_USERS,
|
||||||
@@ -418,6 +442,14 @@ class GamCLArgs():
|
|||||||
ENTITY_ALL_USERS_SUSP,
|
ENTITY_ALL_USERS_SUSP,
|
||||||
ENTITY_ALL_USERS_NA_NS,
|
ENTITY_ALL_USERS_NA_NS,
|
||||||
ENTITY_ALL_USERS_NS_SUSP,
|
ENTITY_ALL_USERS_NS_SUSP,
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS,
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS_NS,
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS_SUSP,
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS_NS_SUSP,
|
||||||
|
ENTITY_ALL_GUESTS,
|
||||||
|
ENTITY_ALL_GUESTS_NS,
|
||||||
|
ENTITY_ALL_GUESTS_SUSP,
|
||||||
|
ENTITY_ALL_GUESTS_NS_SUSP,
|
||||||
}
|
}
|
||||||
DOMAIN_ENTITY_TYPES = {
|
DOMAIN_ENTITY_TYPES = {
|
||||||
ENTITY_DOMAINS,
|
ENTITY_DOMAINS,
|
||||||
@@ -534,13 +566,21 @@ class GamCLArgs():
|
|||||||
}
|
}
|
||||||
#
|
#
|
||||||
ALL_USERS_QUERY_MAP = {
|
ALL_USERS_QUERY_MAP = {
|
||||||
ENTITY_ALL_USERS: 'isSuspended=False',
|
ENTITY_ALL_USERS: 'isSuspended=False isGuest=False',
|
||||||
ENTITY_ALL_USERS_NA: 'isArchived=False',
|
ENTITY_ALL_USERS_NA: 'isArchived=False isGuest=False',
|
||||||
ENTITY_ALL_USERS_ARCH: 'isArchived=True',
|
ENTITY_ALL_USERS_ARCH: 'isArchived=True isGuest=False',
|
||||||
ENTITY_ALL_USERS_NS: 'isSuspended=False',
|
ENTITY_ALL_USERS_NS: 'isSuspended=False isGuest=False',
|
||||||
ENTITY_ALL_USERS_SUSP: 'isSuspended=True',
|
ENTITY_ALL_USERS_SUSP: 'isSuspended=True isGuest=False',
|
||||||
ENTITY_ALL_USERS_NA_NS: 'isArchived=False isSuspended=False',
|
ENTITY_ALL_USERS_NA_NS: 'isArchived=False isSuspended=False isGuest=False',
|
||||||
ENTITY_ALL_USERS_NS_SUSP: None,
|
ENTITY_ALL_USERS_NS_SUSP: 'isGuest=False',
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS: 'isSuspended=False',
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS_NS: 'isSuspended=False',
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS_SUSP: 'isSuspended=True',
|
||||||
|
ENTITY_ALL_USERS_AND_GUESTS_NS_SUSP: None,
|
||||||
|
ENTITY_ALL_GUESTS: 'isSuspended=False isGuest=True',
|
||||||
|
ENTITY_ALL_GUESTS_NS: 'isSuspended=False isGuest=True',
|
||||||
|
ENTITY_ALL_GUESTS_SUSP: 'isSuspended=True isGuest=True',
|
||||||
|
ENTITY_ALL_GUESTS_NS_SUSP: 'isGuest=True',
|
||||||
}
|
}
|
||||||
DOMAINS_QUERY_MAP = {
|
DOMAINS_QUERY_MAP = {
|
||||||
ENTITY_DOMAINS: None,
|
ENTITY_DOMAINS: None,
|
||||||
@@ -602,6 +642,14 @@ class GamCLArgs():
|
|||||||
ENTITY_USERS_NA_NS: ENTITY_ALL_USERS_NA_NS,
|
ENTITY_USERS_NA_NS: ENTITY_ALL_USERS_NA_NS,
|
||||||
ENTITY_USERS_ARCH_OR_SUSP: ENTITY_ALL_USERS_ARCH_OR_SUSP,
|
ENTITY_USERS_ARCH_OR_SUSP: ENTITY_ALL_USERS_ARCH_OR_SUSP,
|
||||||
ENTITY_USERS_NS_SUSP: ENTITY_ALL_USERS_NS_SUSP,
|
ENTITY_USERS_NS_SUSP: ENTITY_ALL_USERS_NS_SUSP,
|
||||||
|
ENTITY_USERS_AND_GUESTS: ENTITY_ALL_USERS_AND_GUESTS,
|
||||||
|
ENTITY_USERS_AND_GUESTS_NS: ENTITY_ALL_USERS_AND_GUESTS_NS,
|
||||||
|
ENTITY_USERS_AND_GUESTS_SUSP: ENTITY_ALL_USERS_AND_GUESTS_SUSP,
|
||||||
|
ENTITY_USERS_AND_GUESTS_NS_SUSP: ENTITY_ALL_USERS_AND_GUESTS_NS_SUSP,
|
||||||
|
ENTITY_GUESTS: ENTITY_ALL_GUESTS,
|
||||||
|
ENTITY_GUESTS_NS: ENTITY_ALL_GUESTS_NS,
|
||||||
|
ENTITY_GUESTS_SUSP: ENTITY_ALL_GUESTS_SUSP,
|
||||||
|
ENTITY_GUESTS_NS_SUSP: ENTITY_ALL_GUESTS_NS_SUSP,
|
||||||
}
|
}
|
||||||
# Allowed values for CL source selector datafile, csvkmd
|
# Allowed values for CL source selector datafile, csvkmd
|
||||||
CROS_ENTITY_SELECTOR_DATAFILE_CSVKMD_SUBTYPES = [
|
CROS_ENTITY_SELECTOR_DATAFILE_CSVKMD_SUBTYPES = [
|
||||||
|
|||||||
@@ -117,6 +117,8 @@ PROPERTIES = {
|
|||||||
{CLASS: PC_STRING, TITLE: 'Full Name',},
|
{CLASS: PC_STRING, TITLE: 'Full Name',},
|
||||||
'displayName':
|
'displayName':
|
||||||
{CLASS: PC_STRING, TITLE: 'Display Name',},
|
{CLASS: PC_STRING, TITLE: 'Display Name',},
|
||||||
|
'primaryGuestEmail':
|
||||||
|
{CLASS: PC_STRING, TITLE: 'Primary Guest Email',},
|
||||||
'languages':
|
'languages':
|
||||||
{CLASS: PC_LANGUAGES, TITLE: 'Languages',},
|
{CLASS: PC_LANGUAGES, TITLE: 'Languages',},
|
||||||
'languageCode':
|
'languageCode':
|
||||||
@@ -131,6 +133,8 @@ PROPERTIES = {
|
|||||||
{CLASS: PC_BOOLEAN, TITLE: 'Is a Super Admin',},
|
{CLASS: PC_BOOLEAN, TITLE: 'Is a Super Admin',},
|
||||||
'isDelegatedAdmin':
|
'isDelegatedAdmin':
|
||||||
{CLASS: PC_BOOLEAN, TITLE: 'Is Delegated Admin',},
|
{CLASS: PC_BOOLEAN, TITLE: 'Is Delegated Admin',},
|
||||||
|
'isGuestUser':
|
||||||
|
{CLASS: PC_BOOLEAN, TITLE: 'Is a Guest User',},
|
||||||
'isEnrolledIn2Sv':
|
'isEnrolledIn2Sv':
|
||||||
{CLASS: PC_BOOLEAN, TITLE: '2-step enrolled',},
|
{CLASS: PC_BOOLEAN, TITLE: '2-step enrolled',},
|
||||||
'isEnforcedIn2Sv':
|
'isEnforcedIn2Sv':
|
||||||
|
|||||||
Reference in New Issue
Block a user