mirror of
https://github.com/veops/cmdb.git
synced 2025-08-07 11:28:06 +08:00
update acl
This commit is contained in:
@@ -10,9 +10,9 @@ from api.lib.exception import CommitException
|
||||
|
||||
class FormatMixin(object):
|
||||
def to_dict(self):
|
||||
return dict([(k.name,
|
||||
getattr(self, k.name) if not isinstance(getattr(self, k.name), datetime.datetime) else getattr(
|
||||
self, k.name).strftime('%Y-%m-%d %H:%M:%S')) for k in getattr(self, "__table__").columns])
|
||||
return dict([(k.name, isinstance(getattr(self, k.name), datetime.datetime) and
|
||||
getattr(self, k.name).strftime('%Y-%m-%d %H:%M:%S')) or
|
||||
getattr(self, k.name) for k in getattr(self, "__table__").columns])
|
||||
|
||||
@classmethod
|
||||
def get_columns(cls):
|
||||
|
@@ -1,7 +1,12 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
|
||||
|
||||
import uuid
|
||||
import string
|
||||
import random
|
||||
|
||||
from flask import abort
|
||||
from flask import g
|
||||
|
||||
from api.extensions import db
|
||||
from api.lib.perm.acl.cache import UserCache
|
||||
@@ -20,12 +25,21 @@ class UserCRUD(object):
|
||||
return numfound, query.offset((page - 1) * page_size).limit(page_size)
|
||||
|
||||
@staticmethod
|
||||
def add(**kwargs):
|
||||
def _gen_key_secret():
|
||||
key = uuid.uuid4().hex
|
||||
secret = ''.join(random.sample(string.ascii_letters + string.digits + '~!@#$%^&*?', 32))
|
||||
|
||||
return key, secret
|
||||
|
||||
@classmethod
|
||||
def add(cls, **kwargs):
|
||||
existed = User.get_by(username=kwargs['username'], email=kwargs['email'])
|
||||
existed and abort(400, "User <{0}> is already existed".format(kwargs['username']))
|
||||
|
||||
kwargs['nickname'] = kwargs['username'] if not kwargs.get('nickname') else kwargs['nickname']
|
||||
kwargs['nickname'] = kwargs.get('nickname') or kwargs['username']
|
||||
kwargs['block'] = 0
|
||||
kwargs['key'], kwargs['secret'] = cls._gen_key_secret()
|
||||
|
||||
return User.create(**kwargs)
|
||||
|
||||
@staticmethod
|
||||
@@ -36,6 +50,13 @@ class UserCRUD(object):
|
||||
|
||||
return user.update(**kwargs)
|
||||
|
||||
@classmethod
|
||||
def reset_key_secret(cls):
|
||||
key, secret = cls._gen_key_secret()
|
||||
g.user.update(key=key, secret=secret)
|
||||
|
||||
return key, secret
|
||||
|
||||
@classmethod
|
||||
def delete(cls, uid):
|
||||
user = User.get_by_id(uid) or abort(404, "User <{0}> does not exist".format(uid))
|
||||
|
Reference in New Issue
Block a user