mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-06 04:33:34 +00:00
307 lines
9.2 KiB
Python
307 lines
9.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
# Copyright (C) 2023 Ross Scroggs All Rights Reserved.
|
|
#
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
"""GAM action processing
|
|
|
|
"""
|
|
|
|
class GamAction():
|
|
|
|
# Keys into NAMES; arbitrary values but must be unique
|
|
ACCEPT = 'acpt'
|
|
ADD = 'add '
|
|
ADD_PREVIEW = 'addp'
|
|
APPEND = 'apnd'
|
|
APPROVE = 'aprv'
|
|
ARCHIVE = 'arch'
|
|
BACKUP = 'back'
|
|
BLOCK = 'blok'
|
|
CANCEL = 'canc'
|
|
CANCEL_WIPE = 'canw'
|
|
CHECK = 'chek'
|
|
CLAIM = 'clai'
|
|
CLAIM_OWNERSHIP = 'clow'
|
|
CLEAR = 'clea'
|
|
CLOSE = 'clos'
|
|
COLLECT = 'collect'
|
|
COMMENT = 'comment'
|
|
COPY = 'copy'
|
|
COPY_MERGE = 'copm'
|
|
CREATE = 'crea'
|
|
CREATE_PREVIEW = 'crep'
|
|
CREATE_SHORTCUT = 'crsc'
|
|
DEDUP = 'dedu'
|
|
DELETE = 'dele'
|
|
DELETE_EMPTY = 'delm'
|
|
DELETE_PREVIEW = 'delp'
|
|
DELETE_SHORTCUT = 'desc'
|
|
DEPROVISION = 'depr'
|
|
DISABLE = 'disa'
|
|
DOWNLOAD = 'down'
|
|
DRAFT = 'draf'
|
|
EMPTY = 'empt'
|
|
ENABLE = 'enbl'
|
|
EXISTS = 'exis'
|
|
EXPORT = 'expo'
|
|
EXTRACT = 'extr'
|
|
GET_COMMAND_RESULT = 'gtcr'
|
|
FETCH = 'fetc'
|
|
FORWARD = 'forw'
|
|
HIDE = 'hide'
|
|
IMPORT = 'impo'
|
|
INFO = 'info'
|
|
INITIALIZE = 'init'
|
|
INSERT = 'insr'
|
|
INVALIDATE = 'inva'
|
|
ISSUE_COMMAND = 'isco'
|
|
LIST = 'list'
|
|
LOOKUP = 'look'
|
|
MERGE = 'merg'
|
|
MODIFY = 'modi'
|
|
MOVE = 'move'
|
|
MOVE_MERGE = 'movm'
|
|
NOACTION = 'noac'
|
|
NOACTION_PREVIEW = 'noap'
|
|
PERFORM = 'perf'
|
|
PRE_PROVISIONED_DISABLE ='ppdi'
|
|
PRE_PROVISIONED_REENABLE ='ppre'
|
|
PRINT = 'prin'
|
|
PROCESS = 'proc'
|
|
PROCESS_PREVIEW = 'prop'
|
|
PURGE = 'purg'
|
|
RECREATE = 'recr'
|
|
REENABLE = 'reen'
|
|
REFRESH = 'refr'
|
|
RELABEL = 'rela'
|
|
REMOVE = 'remo'
|
|
REMOVE_PREVIEW = 'remp'
|
|
RENAME = 'rena'
|
|
REOPEN = 'reop'
|
|
REPLACE = 'repl'
|
|
REPLACE_DOMAIN = 'repd'
|
|
REPORT = 'repo'
|
|
RESET_YUBIKEY_PIV = 'rpiv'
|
|
RESPOND = 'resp'
|
|
RESTORE = 'rest'
|
|
RESUBMIT = 'res'
|
|
RETAIN = 'reta'
|
|
RETRIEVE_DATA = 'retd'
|
|
REVOKE = 'revo'
|
|
SAVE = 'save'
|
|
SEND = 'send'
|
|
SENDEMAIL = 'snem'
|
|
SET = 'set '
|
|
SETUP = 'setu'
|
|
SHARE = 'shar'
|
|
SHOW = 'show'
|
|
SIGNOUT = 'siou'
|
|
SKIP = 'skip'
|
|
SPAM = 'spam'
|
|
SUBMIT = 'subm'
|
|
SUSPEND = 'susp'
|
|
SYNC = 'sync'
|
|
TRANSFER = 'tran'
|
|
TRANSFER_OWNERSHIP = 'trow'
|
|
TRASH = 'tras'
|
|
TURNOFF2SV = 'to2s'
|
|
UNDELETE = 'unde'
|
|
UNHIDE = 'unhi'
|
|
UNSUSPEND = 'unsu'
|
|
UNTRASH = 'untr'
|
|
UPDATE = 'upda'
|
|
UPDATE_MOVE = 'upmo'
|
|
UPDATE_OWNER = 'updo'
|
|
UPDATE_PREVIEW = 'updp'
|
|
UPLOAD = 'uplo'
|
|
UNZIP = 'unzi'
|
|
USE = 'use '
|
|
VERIFY = 'vrfy'
|
|
WAITFORMAILBOX = 'wamb'
|
|
WATCH = 'watc'
|
|
WIPE = 'wipe'
|
|
WIPE_PREVIEW = 'wipp'
|
|
# Usage:
|
|
# ACTION_NAMES[1] n Items - Delete 10 Users
|
|
# Item xxx ACTION_NAMES[0] - User xxx Deleted
|
|
# These values can be translated into other languages
|
|
_NAMES = {
|
|
ACCEPT: ['Accepted', 'Accept'],
|
|
ADD: ['Added', 'Add'],
|
|
ADD_PREVIEW: ['Added (Preview)', 'Add (Preview)'],
|
|
APPEND: ['Appended', 'Append'],
|
|
APPROVE: ['Approved', 'Approve'],
|
|
ARCHIVE: ['Archived', 'Archive'],
|
|
BACKUP: ['Backed up', 'Backup'],
|
|
BLOCK: ['Blocked', 'Block'],
|
|
CANCEL: ['Cancelled', 'Cancel'],
|
|
CANCEL_WIPE: ['Wipe Cancelled', 'Cancel Wipe'],
|
|
CHECK: ['Checked', 'Check'],
|
|
CLAIM: ['Claimed', 'Claim'],
|
|
CLAIM_OWNERSHIP: ['Ownership Claimed', 'Claim Ownership'],
|
|
CLEAR: ['Cleared', 'Clear'],
|
|
CLOSE: ['Closed', 'Close'],
|
|
COLLECT: ['Collected', 'Collect'],
|
|
COMMENT: ['Commented', 'Comment'],
|
|
COPY: ['Copied', 'Copy'],
|
|
COPY_MERGE: ['Copied(Merge)', 'Copy(Merge)'],
|
|
CREATE: ['Created', 'Create'],
|
|
CREATE_PREVIEW: ['Created (Preview)', 'Create (Preview)'],
|
|
CREATE_SHORTCUT: ['Created Shortcut', 'Create Shortcut'],
|
|
DEDUP: ['Duplicates Deleted', 'Delete Duplicates'],
|
|
DELETE: ['Deleted', 'Delete'],
|
|
DELETE_EMPTY: ['Deleted', 'Delete Empty'],
|
|
DELETE_PREVIEW: ['Deleted (Preview)', 'Delete (Preview)'],
|
|
DEPROVISION: ['Deprovisioned', 'Deprovision'],
|
|
DELETE_SHORTCUT: ['Deleted Shortcut', 'Delete Shortcut'],
|
|
DISABLE: ['Disabled', 'Disable'],
|
|
DEPROVISION: ['Deprovisioned', 'Deprovision'],
|
|
DISABLE: ['Disabled', 'Disable'],
|
|
DOWNLOAD: ['Downloaded', 'Download'],
|
|
DRAFT: ['Drafted', 'Draft'],
|
|
EMPTY: ['Emptied', 'Empty'],
|
|
ENABLE: ['Enabled', 'Enable'],
|
|
EXISTS: ['Exists', 'Exists'],
|
|
EXPORT: ['Exported', 'Export'],
|
|
EXTRACT: ['Extracted', 'Extract'],
|
|
FORWARD: ['Forwarded', 'Forward'],
|
|
GET_COMMAND_RESULT: ['Got Command Result', 'Get Command Result'],
|
|
HIDE: ['Hidden', 'Hide'],
|
|
IMPORT: ['Imported', 'Import'],
|
|
INFO: ['Shown', 'Show Info'],
|
|
INITIALIZE: ['Initialized', 'Initialize'],
|
|
INSERT: ['Inserted', 'Insert'],
|
|
INVALIDATE: ['Invalidated', 'Invalidate'],
|
|
ISSUE_COMMAND: ['Command Issued', 'Issue Command'],
|
|
LIST: ['Listed', 'List'],
|
|
LOOKUP: ['Lookedup', 'Lookup'],
|
|
MERGE: ['Merged', 'Merge'],
|
|
MODIFY: ['Modified', 'Modify'],
|
|
MOVE: ['Moved', 'Move'],
|
|
MOVE_MERGE: ['Moved(Merge)', 'Move(Merge)'],
|
|
NOACTION: ['No Action', 'No Action'],
|
|
NOACTION_PREVIEW: ['No Action (Preview)', 'No Action (Preview)'],
|
|
PERFORM: ['Action Performed', 'Perform Action'],
|
|
PRE_PROVISIONED_DISABLE: ['PreProvisioned Disabled', 'PreProvisioned Disable'],
|
|
PRE_PROVISIONED_REENABLE: ['PreProvisioned Reenabled', 'PreProvisioned Reenable'],
|
|
PRINT: ['Printed', 'Print'],
|
|
PROCESS: ['Processed', 'Process'],
|
|
PROCESS_PREVIEW: ['Processed (Preview)', 'Process (Preview)'],
|
|
PURGE: ['Purged', 'Purge'],
|
|
RECREATE: ['Recreated', 'Recreate'],
|
|
REENABLE: ['Reenabled', 'Reenable'],
|
|
REFRESH: ['Refreshed', 'Refresh'],
|
|
RELABEL: ['Relabeled', 'Relabel'],
|
|
REMOVE: ['Removed', 'Remove'],
|
|
REMOVE_PREVIEW: ['Removed (Preview)', 'Remove (Preview)'],
|
|
RENAME: ['Renamed', 'Rename'],
|
|
REOPEN: ['Reopened', 'Reopen'],
|
|
REPLACE: ['Replaced', 'Replace'],
|
|
REPLACE_DOMAIN: ['Domain Replaced', 'Replace Domain'],
|
|
REPORT: ['Reported', 'Report'],
|
|
RESET_YUBIKEY_PIV: ['Yubikey PIV Reset', 'Reset Yubikey PIV'],
|
|
RESPOND: ['Responded', 'Respond'],
|
|
RESTORE: ['Restored', 'Restore'],
|
|
RESUBMIT: ['Resubmitted', 'Resubmit'],
|
|
RETAIN: ['Retained', 'Retain'],
|
|
RETRIEVE_DATA: ['Data Retrieved', 'Retrieve Data'],
|
|
REVOKE: ['Revoked', 'Revoke'],
|
|
SAVE: ['Saved', 'Save'],
|
|
SEND: ['Sent', 'Send'],
|
|
SENDEMAIL: ['Email Sent', 'Send Email'],
|
|
SET: ['Set', 'Set'],
|
|
SETUP: ['Set Up', 'Set Up'],
|
|
SHARE: ['Shared', 'Share'],
|
|
SHOW: ['Shown', 'Show'],
|
|
SIGNOUT: ['Signed Out', 'Signout'],
|
|
SKIP: ['Skipped', 'Skip'],
|
|
SPAM: ['Marked as Spam', 'Mark as Spam'],
|
|
SUBMIT: ['Submitted', 'Submit'],
|
|
SUSPEND: ['Suspended', 'Suspend'],
|
|
SYNC: ['Synced', 'Sync'],
|
|
TRANSFER: ['Transferred', 'Transfer'],
|
|
TRANSFER_OWNERSHIP: ['Ownership Transferred', 'Transfer Ownership'],
|
|
TRASH: ['Trashed', 'Trash'],
|
|
TURNOFF2SV: ['2-Step Verification Turned Off', 'Turn Off 2-Step Verification'],
|
|
UNDELETE: ['Undeleted', 'Undelete'],
|
|
UNHIDE: ['Unhidden', 'Unhide'],
|
|
UNSUSPEND: ['Unsuspended', 'Unsuspend'],
|
|
UNTRASH: ['Untrashed', 'Untrash'],
|
|
UNZIP: ['Unzipped', 'Unzip'],
|
|
UPDATE: ['Updated', 'Update'],
|
|
UPDATE_MOVE: ['Updated/Moved', 'Update/Move'],
|
|
UPDATE_OWNER: ['Updated to Owner', 'Update to Owner'],
|
|
UPDATE_PREVIEW: ['Updated (Preview)', 'Update (Preview)'],
|
|
UPLOAD: ['Uploaded', 'Upload'],
|
|
USE: ['Used', 'Use'],
|
|
VERIFY: ['Verified', 'Verify'],
|
|
WAITFORMAILBOX: ['Mailbox is Setup', 'Check Mailbox is Setup'],
|
|
WATCH: ['Watched', 'Watch'],
|
|
WIPE: ['Wiped', 'Wipe'],
|
|
WIPE_PREVIEW: ['Wiped (Preview)', 'Wipe (Preview)'],
|
|
}
|
|
#
|
|
MODIFIER_CONTENTS_WITH = 'contents with'
|
|
MODIFIER_FOR = 'for'
|
|
MODIFIER_FROM = 'from'
|
|
MODIFIER_IN = 'in'
|
|
MODIFIER_INTO = 'into'
|
|
MODIFIER_PREVIOUSLY_IN = 'previously in'
|
|
MODIFIER_TO = 'to'
|
|
MODIFIER_WITH_COTEACHER_OWNER = 'with co-teacher as owner'
|
|
MODIFIER_WITH_NEW_TEACHER_OWNER = 'with new teacher as owner'
|
|
MODIFIER_WITH_CURRENT_OWNER = 'with current owner'
|
|
MODIFIER_WITH = 'with'
|
|
MODIFIER_WITH_CONTENT_FROM = 'with content from'
|
|
PREFIX_NOT = 'Not'
|
|
PREVIEW = 'Preview'
|
|
SUCCESS = 'Success'
|
|
SUFFIX_FAILED = 'Failed'
|
|
|
|
def __init__(self):
|
|
self.action = None
|
|
|
|
def Set(self, action):
|
|
self.action = action
|
|
|
|
def Get(self):
|
|
return self.action
|
|
|
|
def ToPerform(self):
|
|
return self._NAMES[self.action][1]
|
|
|
|
def Performed(self):
|
|
return self._NAMES[self.action][0]
|
|
|
|
def Failed(self):
|
|
return f'{self._NAMES[self.action][1]} {self.SUFFIX_FAILED}'
|
|
|
|
def NotPerformed(self):
|
|
actionWords = self._NAMES[self.action][0].split(' ')
|
|
if len(actionWords) != 2:
|
|
return f'{self.PREFIX_NOT} {self._NAMES[self.action][0]}'
|
|
return f'{actionWords[0]} {self.PREFIX_NOT} {actionWords[1]}'
|
|
|
|
def PerformedName(self, action):
|
|
return self._NAMES[action][0]
|
|
|
|
def ToPerformName(self, action):
|
|
return self._NAMES[action][1]
|
|
|
|
def csvFormat(self):
|
|
return self.action == self.PRINT
|