mirror of https://github.com/jumpserver/jumpserver
Merge pull request #3257 from jumpserver/dev_perms
[Update] 添加资产授权规则 generate_fake 方法pull/3258/head
commit
afdf0062eb
|
@ -1,12 +1,13 @@
|
|||
import uuid
|
||||
import logging
|
||||
from functools import reduce
|
||||
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from common.utils import date_expired_default
|
||||
from orgs.mixins.models import OrgModelMixin
|
||||
from orgs.models import Organization
|
||||
from orgs.utils import get_current_org
|
||||
from assets.models import Asset, SystemUser, Node
|
||||
|
||||
from .base import BasePermission
|
||||
|
@ -15,6 +16,7 @@ from .base import BasePermission
|
|||
__all__ = [
|
||||
'AssetPermission', 'Action',
|
||||
]
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Action:
|
||||
|
@ -106,3 +108,52 @@ class AssetPermission(BasePermission):
|
|||
args = reduce(lambda x, y: x | y, args)
|
||||
assets = Asset.objects.filter(args).distinct()
|
||||
return assets
|
||||
|
||||
@classmethod
|
||||
def generate_fake(cls, count=100):
|
||||
from ..hands import User, Node, SystemUser
|
||||
import random
|
||||
|
||||
org = get_current_org()
|
||||
if not org or not org.is_real():
|
||||
Organization.default().change_to()
|
||||
|
||||
nodes = list(Node.objects.all())
|
||||
assets = list(Asset.objects.all())
|
||||
system_users = list(SystemUser.objects.all())
|
||||
users = User.objects.filter(username='admin')
|
||||
|
||||
for i in range(count):
|
||||
name = "fake_perm_to_admin_{}".format(str(uuid.uuid4())[:6])
|
||||
perm = cls(name=name)
|
||||
try:
|
||||
perm.save()
|
||||
perm.users.set(users)
|
||||
if system_users and len(system_users) > 3:
|
||||
_system_users = random.sample(system_users, 3)
|
||||
elif system_users:
|
||||
_system_users = [system_users[0]]
|
||||
else:
|
||||
_system_users = []
|
||||
perm.system_users.set(_system_users)
|
||||
|
||||
if nodes and len(nodes) > 3:
|
||||
_nodes = random.sample(nodes, 3)
|
||||
else:
|
||||
_nodes = [Node.default_node()]
|
||||
perm.nodes.set(_nodes)
|
||||
|
||||
if assets and len(assets) > 3:
|
||||
_assets = random.sample(assets, 3)
|
||||
elif assets:
|
||||
_assets = [assets[0]]
|
||||
else:
|
||||
_assets = []
|
||||
perm.assets.set(_assets)
|
||||
|
||||
logger.debug('Generate fake perm: %s' % perm.name)
|
||||
|
||||
except Exception as e:
|
||||
print('Error continue')
|
||||
continue
|
||||
|
||||
|
|
Loading…
Reference in New Issue