|
|
@ -10,10 +10,11 @@ from django.utils import timezone
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from rest_framework import status
|
|
|
|
from rest_framework import status
|
|
|
|
from rest_framework.decorators import action
|
|
|
|
from rest_framework.decorators import action
|
|
|
|
from rest_framework.exceptions import PermissionDenied
|
|
|
|
from rest_framework.exceptions import PermissionDenied, ValidationError
|
|
|
|
from rest_framework.request import Request
|
|
|
|
from rest_framework.request import Request
|
|
|
|
from rest_framework.response import Response
|
|
|
|
from rest_framework.response import Response
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from accounts.const import AliasAccount
|
|
|
|
from common.api import JMSModelViewSet
|
|
|
|
from common.api import JMSModelViewSet
|
|
|
|
from common.exceptions import JMSException
|
|
|
|
from common.exceptions import JMSException
|
|
|
|
from common.utils import random_string, get_logger, get_request_ip
|
|
|
|
from common.utils import random_string, get_logger, get_request_ip
|
|
|
@ -282,13 +283,17 @@ class ConnectionTokenViewSet(ExtraActionApiMixin, RootOrgViewMixin, JMSModelView
|
|
|
|
data['org_id'] = asset.org_id
|
|
|
|
data['org_id'] = asset.org_id
|
|
|
|
data['user'] = user
|
|
|
|
data['user'] = user
|
|
|
|
data['value'] = random_string(16)
|
|
|
|
data['value'] = random_string(16)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if account_name == AliasAccount.ANON and asset.category not in ['web', 'custom']:
|
|
|
|
|
|
|
|
raise ValidationError(_('Anonymous account is not supported for this asset'))
|
|
|
|
|
|
|
|
|
|
|
|
account = self._validate_perm(user, asset, account_name)
|
|
|
|
account = self._validate_perm(user, asset, account_name)
|
|
|
|
if account.has_secret:
|
|
|
|
if account.has_secret:
|
|
|
|
data['input_secret'] = ''
|
|
|
|
data['input_secret'] = ''
|
|
|
|
|
|
|
|
|
|
|
|
if account.username != '@INPUT':
|
|
|
|
if account.username != AliasAccount.INPUT:
|
|
|
|
data['input_username'] = ''
|
|
|
|
data['input_username'] = ''
|
|
|
|
if account.username == '@USER':
|
|
|
|
elif account.username == AliasAccount.USER:
|
|
|
|
data['input_username'] = user.username
|
|
|
|
data['input_username'] = user.username
|
|
|
|
|
|
|
|
|
|
|
|
ticket = self._validate_acl(user, asset, account)
|
|
|
|
ticket = self._validate_acl(user, asset, account)
|
|
|
|