mirror of https://github.com/jumpserver/jumpserver
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
from django.db import models
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from common.db.models import BitOperationChoice
|
|
|
|
|
|
__all__ = ['Action', 'SpecialAccount']
|
|
|
|
|
|
class Action(BitOperationChoice):
|
|
ALL = 0xff
|
|
CONNECT = 0b1
|
|
UPLOAD = 0b1 << 1
|
|
DOWNLOAD = 0b1 << 2
|
|
CLIPBOARD_COPY = 0b1 << 3
|
|
CLIPBOARD_PASTE = 0b1 << 4
|
|
UPDOWNLOAD = UPLOAD | DOWNLOAD
|
|
CLIPBOARD_COPY_PASTE = CLIPBOARD_COPY | CLIPBOARD_PASTE
|
|
|
|
DB_CHOICES = (
|
|
(ALL, _('All')),
|
|
(CONNECT, _('Connect')),
|
|
(UPLOAD, _('Upload file')),
|
|
(DOWNLOAD, _('Download file')),
|
|
(UPDOWNLOAD, _("Upload download")),
|
|
(CLIPBOARD_COPY, _('Clipboard copy')),
|
|
(CLIPBOARD_PASTE, _('Clipboard paste')),
|
|
(CLIPBOARD_COPY_PASTE, _('Clipboard copy paste'))
|
|
)
|
|
|
|
NAME_MAP = {
|
|
ALL: "all",
|
|
CONNECT: "connect",
|
|
UPLOAD: "upload_file",
|
|
DOWNLOAD: "download_file",
|
|
UPDOWNLOAD: "updownload",
|
|
CLIPBOARD_COPY: 'clipboard_copy',
|
|
CLIPBOARD_PASTE: 'clipboard_paste',
|
|
CLIPBOARD_COPY_PASTE: 'clipboard_copy_paste'
|
|
}
|
|
|
|
NAME_MAP_REVERSE = {v: k for k, v in NAME_MAP.items()}
|
|
CHOICES = []
|
|
for i, j in DB_CHOICES:
|
|
CHOICES.append((NAME_MAP[i], j))
|
|
|
|
|
|
class SpecialAccount(models.TextChoices):
|
|
ALL = '@ALL', 'All'
|