mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-10 06:33:34 +00:00
Normalize adding domain to user names (#699)
This commit is contained in:
204
src/gam.py
204
src/gam.py
@ -1153,7 +1153,7 @@ def showReport():
|
||||
eventName = sys.argv[i+1]
|
||||
i += 2
|
||||
elif myarg == u'user':
|
||||
userKey = sys.argv[i+1]
|
||||
userKey = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
i += 2
|
||||
elif myarg in [u'filter', u'filters']:
|
||||
filters = sys.argv[i+1]
|
||||
@ -1815,14 +1815,8 @@ def doDelAdmin():
|
||||
|
||||
def doCreateAdmin():
|
||||
cd = buildGAPIObject(u'directory')
|
||||
body = {}
|
||||
user = sys.argv[3]
|
||||
if user[:4].lower() == u'uid:':
|
||||
body[u'assignedTo'] = user[4:]
|
||||
else:
|
||||
print user[:3]
|
||||
body[u'assignedTo'] = callGAPI(cd.users(), u'get',
|
||||
userKey=user, projection=u'basic', fields=u'id')[u'id']
|
||||
user = normalizeEmailAddressOrUID(sys.argv[3])
|
||||
body = {u'assignedTo': convertEmailAddressToUID(user, cd)}
|
||||
role = sys.argv[4]
|
||||
if role[:4].lower() == u'uid:':
|
||||
body[u'roleId'] = role[4:]
|
||||
@ -1888,7 +1882,7 @@ def doPrintAdmins():
|
||||
while i < len(sys.argv):
|
||||
myarg = sys.argv[i].lower()
|
||||
if myarg == u'user':
|
||||
userKey = sys.argv[i+1]
|
||||
userKey = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
i += 2
|
||||
elif myarg == u'role':
|
||||
role = sys.argv[i+1]
|
||||
@ -1994,6 +1988,8 @@ def app2appID(dt, app):
|
||||
def convertToUserID(user):
|
||||
if user[:4].lower() == u'uid:':
|
||||
return user[4:]
|
||||
if user[:3].lower() == u'id:':
|
||||
return user[3:]
|
||||
cd = buildGAPIObject(u'directory')
|
||||
if user.find(u'@') == -1:
|
||||
user = u'%s@%s' % (user, GC_Values[GC_DOMAIN])
|
||||
@ -2383,10 +2379,10 @@ def doPrintCourses():
|
||||
while i < len(sys.argv):
|
||||
myarg = sys.argv[i].lower()
|
||||
if myarg == u'teacher':
|
||||
teacherId = sys.argv[i+1]
|
||||
teacherId = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
i += 2
|
||||
elif myarg == u'student':
|
||||
studentId = sys.argv[i+1]
|
||||
studentId = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
i += 2
|
||||
elif myarg in [u'state', u'states', u'status']:
|
||||
_getCourseStates(croom, sys.argv[i+1], courseStates)
|
||||
@ -2483,10 +2479,10 @@ def doPrintCourseParticipants():
|
||||
courses.append(course)
|
||||
i += 2
|
||||
elif myarg == u'teacher':
|
||||
teacherId = sys.argv[i+1]
|
||||
teacherId = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
i += 2
|
||||
elif myarg == u'student':
|
||||
studentId = sys.argv[i+1]
|
||||
studentId = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
i += 2
|
||||
elif myarg in [u'state', u'states', u'status']:
|
||||
_getCourseStates(croom, sys.argv[i+1], courseStates)
|
||||
@ -3508,10 +3504,6 @@ def doProfile(users):
|
||||
count = len(users)
|
||||
for user in users:
|
||||
i += 1
|
||||
if user[:4].lower() == u'uid:':
|
||||
user = user[4:]
|
||||
elif user.find(u'@') == -1:
|
||||
user = u'%s@%s' % (user, GC_Values[GC_DOMAIN])
|
||||
print u'Setting Profile Sharing to %s for %s (%s/%s)' % (body[u'includeInGlobalAddressList'], user, i, count)
|
||||
callGAPI(cd.users(), u'update', soft_errors=True, userKey=user, body=body)
|
||||
|
||||
@ -3521,10 +3513,6 @@ def showProfile(users):
|
||||
count = len(users)
|
||||
for user in users:
|
||||
i += 1
|
||||
if user[:4].lower() == u'uid:':
|
||||
user = user[4:]
|
||||
elif user.find(u'@') == -1:
|
||||
user = u'%s@%s' % (user, GC_Values[GC_DOMAIN])
|
||||
result = callGAPI(cd.users(), u'get', userKey=user, fields=u'includeInGlobalAddressList')
|
||||
try:
|
||||
print u'User: %s Profile Shared: %s (%s/%s)' % (user, result[u'includeInGlobalAddressList'], i, count)
|
||||
@ -3537,10 +3525,6 @@ def doPhoto(users):
|
||||
count = len(users)
|
||||
for user in users:
|
||||
i += 1
|
||||
if user[:4].lower() == u'uid:':
|
||||
user = user[4:]
|
||||
elif user.find(u'@') == -1:
|
||||
user = u'%s@%s' % (user, GC_Values[GC_DOMAIN])
|
||||
filename = sys.argv[5].replace(u'#user#', user)
|
||||
filename = filename.replace(u'#email#', user)
|
||||
filename = filename.replace(u'#username#', user[:user.find(u'@')])
|
||||
@ -3585,10 +3569,6 @@ def getPhoto(users):
|
||||
count = len(users)
|
||||
for user in users:
|
||||
i += 1
|
||||
if user[:4].lower() == u'uid:':
|
||||
user = user[4:]
|
||||
elif user.find(u'@') == -1:
|
||||
user = u'%s@%s' % (user, GC_Values[GC_DOMAIN])
|
||||
filename = os.path.join(targetFolder, u'{0}.jpg'.format(user))
|
||||
print u"Saving photo to %s (%s/%s)" % (filename, i, count)
|
||||
try:
|
||||
@ -3615,10 +3595,6 @@ def deletePhoto(users):
|
||||
count = len(users)
|
||||
for user in users:
|
||||
i += 1
|
||||
if user[:4].lower() == u'uid:':
|
||||
user = user[4:]
|
||||
elif user.find(u'@') == -1:
|
||||
user = u'%s@%s' % (user, GC_Values[GC_DOMAIN])
|
||||
print u"Deleting photo for %s (%s/%s)" % (user, i, count)
|
||||
callGAPI(cd.users().photos(), u'delete', userKey=user)
|
||||
|
||||
@ -3882,7 +3858,7 @@ def addDriveFileACL(users):
|
||||
if body[u'type'] == u'anyone':
|
||||
i = 7
|
||||
elif body[u'type'] in [u'user', u'group']:
|
||||
body[u'emailAddress'] = sys.argv[7]
|
||||
body[u'emailAddress'] = normalizeEmailAddressOrUID(sys.argv[7])
|
||||
i = 8
|
||||
elif body[u'type'] == u'domain':
|
||||
body[u'domain'] = sys.argv[7]
|
||||
@ -4780,8 +4756,6 @@ def doLicense(users, operation):
|
||||
productId = sys.argv[i+1]
|
||||
i += 2
|
||||
for user in users:
|
||||
if user.find(u'@') == -1:
|
||||
user = u'%s@%s' % (user, GC_Values[GC_DOMAIN])
|
||||
if operation == u'delete':
|
||||
print u'Removing license %s from user %s' % (_formatSKUIdDisplayName(skuId), user)
|
||||
callGAPI(lic.licenseAssignments(), operation, soft_errors=True, productId=productId, skuId=skuId, userId=user)
|
||||
@ -4923,9 +4897,7 @@ def getSendAsAttributes(i, myarg, body, tagReplacements, command):
|
||||
return i
|
||||
|
||||
def addUpdateSendAs(users, i, addCmd):
|
||||
emailAddress = sys.argv[i]
|
||||
if emailAddress.find(u'@') < 0:
|
||||
emailAddress = emailAddress+u'@'+GC_Values[GC_DOMAIN]
|
||||
emailAddress = normalizeEmailAddressOrUID(sys.argv[i], noUid=True)
|
||||
i += 1
|
||||
if addCmd:
|
||||
command = [u'sendas', u'add sendas'][i == 6]
|
||||
@ -4969,9 +4941,7 @@ def addUpdateSendAs(users, i, addCmd):
|
||||
userId=u'me', **kwargs)
|
||||
|
||||
def deleteSendAs(users):
|
||||
emailAddress = sys.argv[5]
|
||||
if emailAddress.find(u'@') < 0:
|
||||
emailAddress = emailAddress+u'@'+GC_Values[GC_DOMAIN]
|
||||
emailAddress = normalizeEmailAddressOrUID(sys.argv[5], noUid=True)
|
||||
i = 0
|
||||
count = len(users)
|
||||
for user in users:
|
||||
@ -5149,9 +5119,7 @@ def printShowSendAs(users, csvFormat):
|
||||
writeCSVfile(csvRows, titles, u'SendAs', todrive)
|
||||
|
||||
def infoSendAs(users):
|
||||
emailAddress = sys.argv[5]
|
||||
if emailAddress.find(u'@') < 0:
|
||||
emailAddress = emailAddress+u'@'+GC_Values[GC_DOMAIN]
|
||||
emailAddress = normalizeEmailAddressOrUID(sys.argv[5], noUid=True)
|
||||
formatSig = False
|
||||
i = 6
|
||||
while i < len(sys.argv):
|
||||
@ -5985,9 +5953,7 @@ def printShowForward(users, csvFormat):
|
||||
writeCSVfile(csvRows, titles, u'Forward', todrive)
|
||||
|
||||
def addForwardingAddresses(users):
|
||||
emailAddress = sys.argv[5]
|
||||
if emailAddress.find(u'@') == -1:
|
||||
emailAddress = u'%s@%s' % (emailAddress, GC_Values[GC_DOMAIN])
|
||||
emailAddress = normalizeEmailAddressOrUID(sys.argv[5], noUid=True)
|
||||
body = {u'forwardingEmail': emailAddress}
|
||||
i = 0
|
||||
count = len(users)
|
||||
@ -6002,9 +5968,7 @@ def addForwardingAddresses(users):
|
||||
userId=u'me', body=body)
|
||||
|
||||
def deleteForwardingAddresses(users):
|
||||
emailAddress = sys.argv[5]
|
||||
if emailAddress.find(u'@') == -1:
|
||||
emailAddress = u'%s@%s' % (emailAddress, GC_Values[GC_DOMAIN])
|
||||
emailAddress = normalizeEmailAddressOrUID(sys.argv[5], noUid=True)
|
||||
i = 0
|
||||
count = len(users)
|
||||
for user in users:
|
||||
@ -6059,9 +6023,7 @@ def printShowForwardingAddresses(users, csvFormat):
|
||||
writeCSVfile(csvRows, titles, u'Forwarding Addresses', todrive)
|
||||
|
||||
def infoForwardingAddresses(users):
|
||||
emailAddress = sys.argv[5]
|
||||
if emailAddress.find(u'@') == -1:
|
||||
emailAddress = u'%s@%s' % (emailAddress, GC_Values[GC_DOMAIN])
|
||||
emailAddress = normalizeEmailAddressOrUID(sys.argv[5], noUid=True)
|
||||
i = 0
|
||||
count = len(users)
|
||||
for user in users:
|
||||
@ -6422,9 +6384,7 @@ def getUserAttributes(i, cd, updateCmd=False):
|
||||
need_password = False
|
||||
else:
|
||||
body = {u'name': {u'givenName': u'Unknown', u'familyName': u'Unknown'}}
|
||||
body[u'primaryEmail'] = sys.argv[i]
|
||||
if body[u'primaryEmail'].find(u'@') == -1:
|
||||
body[u'primaryEmail'] = u'%s@%s' % (body[u'primaryEmail'], GC_Values[GC_DOMAIN])
|
||||
body[u'primaryEmail'] = normalizeEmailAddressOrUID(sys.argv[i], noUid=True)
|
||||
i += 1
|
||||
need_password = True
|
||||
need_to_hash_password = True
|
||||
@ -6440,9 +6400,7 @@ def getUserAttributes(i, cd, updateCmd=False):
|
||||
body[u'name'][u'familyName'] = sys.argv[i+1]
|
||||
i += 2
|
||||
elif myarg in [u'username', u'email', u'primaryemail'] and updateCmd:
|
||||
body[u'primaryEmail'] = sys.argv[i+1]
|
||||
if body[u'primaryEmail'].find(u'@') == -1:
|
||||
body[u'primaryEmail'] = u'%s@%s' % (body[u'primaryEmail'], GC_Values[GC_DOMAIN])
|
||||
body[u'primaryEmail'] = normalizeEmailAddressOrUID(sys.argv[i+1], noUid=True)
|
||||
i += 2
|
||||
elif myarg == u'customerid' and updateCmd:
|
||||
body[u'customerId'] = sys.argv[i+1]
|
||||
@ -7612,9 +7570,7 @@ def getGroupAttrValue(myarg, value, gs_object, gs_body, function):
|
||||
|
||||
def doCreateGroup():
|
||||
cd = buildGAPIObject(u'directory')
|
||||
body = {u'email': sys.argv[3]}
|
||||
if body[u'email'].find(u'@') == -1:
|
||||
body[u'email'] = u'%s@%s' % (body[u'email'], GC_Values[GC_DOMAIN])
|
||||
body = {u'email': normalizeEmailAddressOrUID(sys.argv[3], noUid=True)}
|
||||
got_name = False
|
||||
i = 4
|
||||
gs_body = {}
|
||||
@ -7659,15 +7615,11 @@ def doCreateGroup():
|
||||
|
||||
def doCreateAlias():
|
||||
cd = buildGAPIObject(u'directory')
|
||||
body = {u'alias': sys.argv[3]}
|
||||
if body[u'alias'].find(u'@') == -1:
|
||||
body[u'alias'] = u'%s@%s' % (body[u'alias'], GC_Values[GC_DOMAIN])
|
||||
body = {u'alias': normalizeEmailAddressOrUID(sys.argv[3], noUid=True)}
|
||||
target_type = sys.argv[4].lower()
|
||||
if target_type not in [u'user', u'group', u'target']:
|
||||
systemErrorExit(2, 'type of target must be user or group; got %s' % target_type)
|
||||
targetKey = sys.argv[5]
|
||||
if targetKey.find(u'@') == -1:
|
||||
targetKey = u'%s@%s' % (targetKey, GC_Values[GC_DOMAIN])
|
||||
targetKey = normalizeEmailAddressOrUID(sys.argv[5])
|
||||
print u'Creating alias %s for %s %s' % (body[u'alias'], target_type, targetKey)
|
||||
if target_type == u'user':
|
||||
callGAPI(cd.users().aliases(), u'insert', userKey=targetKey, body=body)
|
||||
@ -7928,16 +7880,11 @@ def doUpdateUser(users, i):
|
||||
cd = buildGAPIObject(u'directory')
|
||||
body, admin_body = getUserAttributes(i, cd, updateCmd=True)
|
||||
for user in users:
|
||||
if user[:4].lower() == u'uid:':
|
||||
user = user[4:]
|
||||
elif user.find(u'@') == -1:
|
||||
user = u'%s@%s' % (user, GC_Values[GC_DOMAIN])
|
||||
if u'primaryEmail' in body and body[u'primaryEmail'][:4].lower() == u'vfe@':
|
||||
user_primary = callGAPI(cd.users(), u'get', userKey=user, fields=u'primaryEmail,id')
|
||||
user = user_primary[u'id']
|
||||
user_primary = user_primary[u'primaryEmail']
|
||||
user_name = user_primary[:user_primary.find(u'@')]
|
||||
user_domain = user_primary[user_primary.find(u'@')+1:]
|
||||
user_name, user_domain = splitEmailAddress(user_primary)
|
||||
body[u'primaryEmail'] = u'vfe.%s.%05d@%s' % (user_name, random.randint(1, 99999), user_domain)
|
||||
body[u'emails'] = [{u'type': u'custom', u'customType': u'former_employee', u'primary': False, u'address': user_primary}]
|
||||
sys.stdout.write(u'updating user %s...\n' % user)
|
||||
@ -8016,7 +7963,7 @@ def doUpdateGroup():
|
||||
if sys.argv[i].lower() in usergroup_types:
|
||||
users_email = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1], checkNotSuspended=checkNotSuspended, groupUserMembersOnly=False)
|
||||
else:
|
||||
users_email = [sys.argv[i],]
|
||||
users_email = [normalizeEmailAddressOrUID(sys.argv[i], checkForCustomerId=True)]
|
||||
return (role, users_email)
|
||||
|
||||
cd = buildGAPIObject(u'directory')
|
||||
@ -8024,10 +7971,7 @@ def doUpdateGroup():
|
||||
myarg = sys.argv[4].lower()
|
||||
items = []
|
||||
if myarg in UPDATE_GROUP_SUBCMDS:
|
||||
if group[0:3].lower() == u'uid:':
|
||||
group = group[4:]
|
||||
elif group.find(u'@') == -1:
|
||||
group = u'%s@%s' % (group, GC_Values[GC_DOMAIN])
|
||||
group = normalizeEmailAddressOrUID(group)
|
||||
if myarg == u'add':
|
||||
role, users_email = _getRoleAndUsers()
|
||||
if not checkGroupExists(cd, group):
|
||||
@ -8178,13 +8122,11 @@ def doUpdateGroup():
|
||||
myarg = sys.argv[i].lower().replace(u'_', u'')
|
||||
if myarg == u'email':
|
||||
use_cd_api = True
|
||||
cd_body[u'email'] = sys.argv[i+1]
|
||||
cd_body[u'email'] = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
i += 2
|
||||
elif myarg == u'admincreated':
|
||||
use_cd_api = True
|
||||
cd_body[u'adminCreated'] = sys.argv[i+1].lower()
|
||||
if cd_body[u'adminCreated'] not in [u'true', u'false']:
|
||||
systemErrorExit(2, 'Value for admincreated must be true or false; got %s' % cd_body[u'adminCreated'])
|
||||
cd_body[u'adminCreated'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
else:
|
||||
if not gs:
|
||||
@ -8192,21 +8134,10 @@ def doUpdateGroup():
|
||||
gs_object = gs._rootDesc
|
||||
getGroupAttrValue(myarg, sys.argv[i+1], gs_object, gs_body, u'update')
|
||||
i += 2
|
||||
if group[:4].lower() == u'uid:': # group settings API won't take uid so we make sure cd API is used so that we can grab real email.
|
||||
use_cd_api = True
|
||||
group = group[4:]
|
||||
elif group.find(u'@') == -1:
|
||||
group = u'%s@%s' % (group, GC_Values[GC_DOMAIN])
|
||||
if use_cd_api:
|
||||
try:
|
||||
if cd_body[u'email'].find(u'@') == -1:
|
||||
cd_body[u'email'] = u'%s@%s' % (cd_body[u'email'], GC_Values[GC_DOMAIN])
|
||||
except KeyError:
|
||||
pass
|
||||
cd_result = callGAPI(cd.groups(), u'update', groupKey=group, body=cd_body)
|
||||
group = normalizeEmailAddressOrUID(group)
|
||||
if use_cd_api or (group.find(u'@') == -1): # group settings API won't take uid so we make sure cd API is used so that we can grab real email.
|
||||
group = callGAPI(cd.groups(), u'update', groupKey=group, body=cd_body, fields=u'email')[u'email']
|
||||
if gs:
|
||||
if use_cd_api:
|
||||
group = cd_result[u'email']
|
||||
if not GroupIsAbuseOrPostmaster(group):
|
||||
settings = callGAPI(gs.groups(), u'get',
|
||||
retry_reasons=[u'serviceLimit'],
|
||||
@ -8218,15 +8149,11 @@ def doUpdateGroup():
|
||||
|
||||
def doUpdateAlias():
|
||||
cd = buildGAPIObject(u'directory')
|
||||
alias = sys.argv[3]
|
||||
alias = normalizeEmailAddressOrUID(sys.argv[3], noUid=True)
|
||||
target_type = sys.argv[4].lower()
|
||||
if target_type not in [u'user', u'group', u'target']:
|
||||
systemErrorExit(2, 'target type must be one of user, group, target; got %s' % target_type)
|
||||
target_email = sys.argv[5]
|
||||
if alias.find(u'@') == -1:
|
||||
alias = u'%s@%s' % (alias, GC_Values[GC_DOMAIN])
|
||||
if target_email.find(u'@') == -1:
|
||||
target_email = u'%s@%s' % (target_email, GC_Values[GC_DOMAIN])
|
||||
target_email = normalizeEmailAddressOrUID(sys.argv[5])
|
||||
try:
|
||||
callGAPI(cd.users().aliases(), u'delete', throw_reasons=[GAPI_INVALID], userKey=alias, alias=alias)
|
||||
except GAPI_invalid:
|
||||
@ -8408,12 +8335,10 @@ def doUpdateOrg():
|
||||
|
||||
def doWhatIs():
|
||||
cd = buildGAPIObject(u'directory')
|
||||
email = sys.argv[2]
|
||||
if email.find(u'@') == -1:
|
||||
email = u'%s@%s' % (email, GC_Values[GC_DOMAIN])
|
||||
email = normalizeEmailAddressOrUID(sys.argv[2])
|
||||
try:
|
||||
user_or_alias = callGAPI(cd.users(), u'get', throw_reasons=[GAPI_NOT_FOUND, GAPI_BAD_REQUEST, GAPI_INVALID], userKey=email, fields=u'primaryEmail')
|
||||
if user_or_alias[u'primaryEmail'].lower() == email.lower():
|
||||
user_or_alias = callGAPI(cd.users(), u'get', throw_reasons=[GAPI_NOT_FOUND, GAPI_BAD_REQUEST, GAPI_INVALID], userKey=email, fields=u'id,primaryEmail')
|
||||
if (user_or_alias[u'primaryEmail'].lower() == email) or (user_or_alias[u'id'] == email):
|
||||
sys.stderr.write(u'%s is a user\n\n' % email)
|
||||
doGetUserInfo(user_email=email)
|
||||
return
|
||||
@ -8425,10 +8350,10 @@ def doWhatIs():
|
||||
sys.stderr.write(u'%s is not a user...\n' % email)
|
||||
sys.stderr.write(u'%s is not a user alias...\n' % email)
|
||||
try:
|
||||
group = callGAPI(cd.groups(), u'get', throw_reasons=[GAPI_NOT_FOUND, GAPI_BAD_REQUEST], groupKey=email, fields=u'email')
|
||||
group = callGAPI(cd.groups(), u'get', throw_reasons=[GAPI_NOT_FOUND, GAPI_BAD_REQUEST], groupKey=email, fields=u'id,email')
|
||||
except (GAPI_notFound, GAPI_badRequest):
|
||||
systemErrorExit(1, u'%s is not a group either!\n\nDoesn\'t seem to exist!\n\n' % email)
|
||||
if group[u'email'].lower() == email.lower():
|
||||
if (group[u'email'].lower() == email) or (group[u'id'] == email):
|
||||
sys.stderr.write(u'%s is a group\n\n' % email)
|
||||
doGetGroupInfo(group_name=email)
|
||||
else:
|
||||
@ -8615,14 +8540,10 @@ def doGetUserInfo(user_email=None):
|
||||
i = 3
|
||||
if user_email is None:
|
||||
if len(sys.argv) > 3:
|
||||
user_email = sys.argv[3]
|
||||
user_email = normalizeEmailAddressOrUID(sys.argv[3])
|
||||
i = 4
|
||||
else:
|
||||
user_email = _getValueFromOAuth(u'email')
|
||||
if user_email[:4].lower() == u'uid:':
|
||||
user_email = user_email[4:]
|
||||
elif user_email.find(u'@') == -1:
|
||||
user_email = u'%s@%s' % (user_email, GC_Values[GC_DOMAIN])
|
||||
getSchemas = getAliases = getGroups = getLicenses = True
|
||||
projection = u'full'
|
||||
customFieldMask = viewType = None
|
||||
@ -8868,7 +8789,7 @@ def doGetGroupInfo(group_name=None):
|
||||
getAliases = getUsers = True
|
||||
getGroups = False
|
||||
if group_name is None:
|
||||
group_name = sys.argv[3]
|
||||
group_name = normalizeEmailAddressOrUID(sys.argv[3])
|
||||
i = 4
|
||||
else:
|
||||
i = 3
|
||||
@ -8889,10 +8810,6 @@ def doGetGroupInfo(group_name=None):
|
||||
i += 1
|
||||
else:
|
||||
systemErrorExit(2, '%s is not a valid argument for "gam info group"' % myarg)
|
||||
if group_name[:4].lower() == u'uid:':
|
||||
group_name = group_name[4:]
|
||||
elif group_name.find(u'@') == -1:
|
||||
group_name = group_name+u'@'+GC_Values[GC_DOMAIN]
|
||||
basic_info = callGAPI(cd.groups(), u'get', groupKey=group_name)
|
||||
settings = {}
|
||||
if not GroupIsAbuseOrPostmaster(basic_info[u'email']):
|
||||
@ -8940,9 +8857,7 @@ def doGetGroupInfo(group_name=None):
|
||||
def doGetAliasInfo(alias_email=None):
|
||||
cd = buildGAPIObject(u'directory')
|
||||
if alias_email is None:
|
||||
alias_email = sys.argv[3]
|
||||
if alias_email.find(u'@') == -1:
|
||||
alias_email = u'%s@%s' % (alias_email, GC_Values[GC_DOMAIN])
|
||||
alias_email = normalizeEmailAddressOrUID(sys.argv[3])
|
||||
try:
|
||||
result = callGAPI(cd.users(), u'get', throw_reasons=[GAPI_INVALID, GAPI_BAD_REQUEST], userKey=alias_email)
|
||||
except (GAPI_invalid, GAPI_badRequest):
|
||||
@ -9633,18 +9548,13 @@ def doDeprovUser(users):
|
||||
|
||||
def doDeleteUser():
|
||||
cd = buildGAPIObject(u'directory')
|
||||
user_email = sys.argv[3]
|
||||
if user_email[:4].lower() == u'uid:':
|
||||
user_email = user_email[4:]
|
||||
elif user_email.find(u'@') == -1:
|
||||
user_email = u'%s@%s' % (user_email, GC_Values[GC_DOMAIN])
|
||||
user_email = normalizeEmailAddressOrUID(sys.argv[3])
|
||||
print u"Deleting account for %s" % (user_email)
|
||||
callGAPI(cd.users(), u'delete', userKey=user_email)
|
||||
|
||||
def doUndeleteUser():
|
||||
cd = buildGAPIObject(u'directory')
|
||||
user = sys.argv[3].lower()
|
||||
user_uid = False
|
||||
user = normalizeEmailAddressOrUID(sys.argv[3])
|
||||
orgUnit = u'/'
|
||||
i = 4
|
||||
while i < len(sys.argv):
|
||||
@ -9654,11 +9564,9 @@ def doUndeleteUser():
|
||||
i += 2
|
||||
else:
|
||||
systemErrorExit(2, '%s is not a valid argument for "gam undelete user"' % sys.argv[i])
|
||||
if user[:4].lower() == u'uid:':
|
||||
user_uid = user[4:]
|
||||
elif user.find(u'@') == -1:
|
||||
user = u'%s@%s' % (user, GC_Values[GC_DOMAIN])
|
||||
if not user_uid:
|
||||
if user.find(u'@') == -1:
|
||||
user_uid = user
|
||||
else:
|
||||
print u'Looking up UID for %s...' % user
|
||||
deleted_users = callGAPIpages(cd.users(), u'list', u'users',
|
||||
customer=GC_Values[GC_CUSTOMER_ID], showDeleted=True, maxResults=GC_Values[GC_USER_MAX_RESULTS])
|
||||
@ -9689,11 +9597,7 @@ def doUndeleteUser():
|
||||
|
||||
def doDeleteGroup():
|
||||
cd = buildGAPIObject(u'directory')
|
||||
group = sys.argv[3]
|
||||
if group[:4].lower() == u'uid:':
|
||||
group = group[4:]
|
||||
elif group.find(u'@') == -1:
|
||||
group = u'%s@%s' % (group, GC_Values[GC_DOMAIN])
|
||||
group = normalizeEmailAddressOrUID(sys.argv[3])
|
||||
print u"Deleting group %s" % group
|
||||
callGAPI(cd.groups(), u'delete', groupKey=group)
|
||||
|
||||
@ -9708,8 +9612,7 @@ def doDeleteAlias(alias_email=None):
|
||||
elif alias_email.lower() == u'group':
|
||||
is_group = True
|
||||
alias_email = sys.argv[4]
|
||||
if alias_email.find(u'@') == -1:
|
||||
alias_email = u'%s@%s' % (alias_email, GC_Values[GC_DOMAIN])
|
||||
alias_email = normalizeEmailAddressOrUID(alias_email, noUid=True)
|
||||
print u"Deleting alias %s" % alias_email
|
||||
if is_user or (not is_user and not is_group):
|
||||
try:
|
||||
@ -10143,7 +10046,7 @@ def doPrintGroups():
|
||||
customer = None
|
||||
i += 2
|
||||
elif myarg == u'member':
|
||||
usemember = sys.argv[i+1].lower()
|
||||
usemember = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
customer = None
|
||||
i += 2
|
||||
elif myarg == u'maxresults':
|
||||
@ -10480,7 +10383,7 @@ def doPrintGroupMembers():
|
||||
todrive = True
|
||||
i += 1
|
||||
elif myarg == u'member':
|
||||
usemember = sys.argv[i+1].lower()
|
||||
usemember = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
customer = None
|
||||
i += 2
|
||||
elif myarg == u'fields':
|
||||
@ -10499,9 +10402,7 @@ def doPrintGroupMembers():
|
||||
systemErrorExit(2, '%s is not a valid role for "gam print group-members %s"' % (role, myarg))
|
||||
i += 2
|
||||
elif myarg == u'group':
|
||||
group_email = sys.argv[i+1].lower()
|
||||
if group_email.find(u'@') == -1:
|
||||
group_email = u'%s@%s' % (group_email, GC_Values[GC_DOMAIN])
|
||||
group_email = normalizeEmailAddressOrUID(sys.argv[i+1])
|
||||
groups_to_get = [{u'email': group_email}]
|
||||
i += 2
|
||||
else:
|
||||
@ -11259,8 +11160,7 @@ def getUsersToModify(entity_type=None, entity=None, silent=False, member_type=No
|
||||
member_type_message = u'all members'
|
||||
else:
|
||||
member_type_message = u'%ss' % member_type.lower()
|
||||
if group.find(u'@') == -1:
|
||||
group = u'%s@%s' % (group, GC_Values[GC_DOMAIN])
|
||||
group = normalizeEmailAddressOrUID(group)
|
||||
page_message = None
|
||||
if not silent:
|
||||
sys.stderr.write(u"Getting %s of %s (may take some time for large groups)...\n" % (member_type_message, group))
|
||||
@ -11406,6 +11306,8 @@ def getUsersToModify(entity_type=None, entity=None, silent=False, member_type=No
|
||||
for user in users:
|
||||
if user[:4] == u'uid:':
|
||||
full_users.append(user[4:])
|
||||
elif user[:3] == u'id:':
|
||||
full_users.append(user[3:])
|
||||
elif user != u'*' and user != GC_Values[GC_CUSTOMER_ID] and user.find(u'@') == -1:
|
||||
full_users.append(u'%s@%s' % (user, GC_Values[GC_DOMAIN]))
|
||||
else:
|
||||
|
Reference in New Issue
Block a user