示例#1
0
    def validate_invite_email(self, value):
        email = Invitation.query \
            .filter_tenant(tenant_uid=g.tenant_uid)\
            .filter(Invitation.inviteEmail == value).first()
        if email:
            raise DataExisted(field='inviteEmail')

        email = User.query.filter(User.email == value).first()
        if email:
            raise DataExisted(field='email')
示例#2
0
 def validate_app_name(self, value):
     if self._validate_obj('appName', value):
         return
     app = Application.query \
         .filter_tenant(tenant_uid=g.tenant_uid) \
         .filter(Application.appName == value).first()
     if app:
         raise DataExisted(field='appName')
示例#3
0
 def name_is_exist(self, value):
     if self._validate_obj('certName', value):
         return
     query = db.session.query(Cert.certName) \
         .filter_tenant(tenant_uid=g.tenant_uid) \
         .filter(Cert.certName == value).first()
     if query:
         raise DataExisted(field='certName')
示例#4
0
 def is_exist(self, value):
     if self._validate_obj('productName', value):
         return
     product_name = db.session.query(Product.productName) \
         .filter_tenant(tenant_uid=g.tenant_uid) \
         .filter(Product.productName == value).first()
     if product_name:
         raise DataExisted(field='productName')
示例#5
0
 def email_is_exist(self, value):
     try:
         split_email = value.split('@')[0]
         if split_email in current_app.config.get('RESERVED'):
             raise FormInvalid(field='email')
     except Exception:
         raise FormInvalid(field='email')
     if db.session.query(User.email).filter_by(email=value).first():
         raise DataExisted(field='email')
示例#6
0
 def stream_name_is_exist(self, value):
     if self._validate_obj('streamName', value):
         return
     product_uid = self.get_request_data('productID')
     stream_name = db.session.query(DataStream.streamName) \
         .filter(DataStream.productID == product_uid,
                 DataStream.streamName == value).first()
     if stream_name:
         raise DataExisted(field='dataPointName')
示例#7
0
    def name_is_exist(self, value):
        if self._validate_obj('actionName', value):
            return

        query = db.session.query(Action.actionName) \
            .filter(Action.tenantID == g.tenant_uid,
                    Action.actionName == value).first()
        if query:
            raise DataExisted(field='actionName')
示例#8
0
 def role_name_is_exist(self, value):
     if self._validate_obj('roleName', value):
         return
     role = Role.query \
         .join(Tenant, Role.tenantID == Tenant.tenantID) \
         .filter(Role.roleName == value) \
         .filter(Tenant.tenantID == g.tenant_uid).all()
     if role:
         raise DataExisted(field='roleName')
示例#9
0
    def group_name_is_exist(self, value):
        if self._validate_obj('groupName', value):
            return

        query = db.session.query(Group.groupName) \
            .filter_tenant(tenant_uid=g.tenant_uid) \
            .filter(Group.groupName == value).first()
        if query:
            raise DataExisted(field='groupName')
示例#10
0
    def device_name_is_exist(self, value):
        if self._validate_obj('deviceName', value):
            return

        device_name = Gateway.query \
            .filter_tenant(tenant_uid=g.tenant_uid) \
            .filter(Gateway.deviceName == value) \
            .with_entities(Gateway.deviceName).first()
        if device_name:
            raise DataExisted(field='deviceName')
示例#11
0
    def name_is_exist(self, value):
        if self._validate_obj('ruleName', value):
            return

        query = Rule.query \
            .filter_tenant(tenant_uid=g.tenant_uid) \
            .filter(Rule.ruleName == value) \
            .first()
        if query:
            raise DataExisted(field='ruleName')
示例#12
0
 def stream_id_is_exist(self, value):
     if self._validate_obj('streamID', value):
         return
     if not re.match(r"^[a-zA-Z]\w{3,}$", value):
         raise FormInvalid(field='streamID')
     product_uid = self.get_request_data('productID')
     stream_name = db.session.query(DataStream.streamID) \
         .filter(DataStream.productID == product_uid,
                 DataStream.streamID == value).first()
     if stream_name:
         raise DataExisted(field='streamID')
示例#13
0
    def validate_point_uid(self, value):
        if not value or self._validate_obj('dataPointID', value):
            return

        if not re.match(r"^[0-9A-Za-z_\-]*$", value):
            raise FormInvalid(field='dataPointID')
        product_uid = self.get_request_data('productID')
        data_point_uid = db.session.query(DataPoint.dataPointID) \
            .filter(DataPoint.productID == product_uid,
                    DataPoint.dataPointID == value).first()
        if data_point_uid:
            raise DataExisted(field='dataPointID')
示例#14
0
    def validate_product(self, value):
        if self._validate_obj('productID', value):
            return
        product = db.session.query(Product.id) \
            .filter(Product.userIntID == g.user_id, Product.productID == value) \
            .first()
        if not product:
            raise DataNotFound(field='productID')

        codec = db.session.query(Codec.id) \
            .filter(Codec.tenantID == g.tenant_uid, Codec.productID == value) \
            .first()
        if codec:
            raise DataExisted(field='productID')
示例#15
0
 def handle_cert_devices(self, data):
     devices_id = data['devices']
     devices = Device.query \
         .filter(Device.id.in_(set(devices_id)), Device.authType == 2) \
         .many(allow_none=False, expect_result=len(devices_id))
     cert_id = self.get_origin_obj('id')
     exist_cert_devices = db.session \
         .query(func.count(CertDevice.c.deviceIntID)) \
         .filter(CertDevice.c.certIntID == cert_id,
                 CertDevice.c.deviceIntID.in_(set(devices_id))) \
         .scalar()
     if exist_cert_devices:
         raise DataExisted(field='devices')
     data['devices'] = devices
     return data
示例#16
0
    def device_uid_is_exist(self, data):
        device_uid = data.get('deviceID')
        username = data.get('deviceUsername')

        if self.get_origin_obj('deviceID'):
            return data
        if not device_uid or not username:
            device_uuid = generate_uuid(size=36)
            data['deviceID'] = device_uuid
            data['deviceUsername'] = device_uuid
            return data
        # unique within the tenant
        device_uid = db.session.query(Device.deviceID) \
            .filter(Device.deviceID == device_uid,
                    Device.tenantID == g.tenant_uid).first()
        if device_uid:
            raise DataExisted(field='deviceID')
        # unique within the platform
        device = db.session.query(Device.id) \
            .filter(Device.deviceID == device_uid,
                    Device.deviceUsername == username).first()
        if device:
            raise FormInvalid(field='deviceID')
        return data
示例#17
0
 def company_is_exist(self, value):
     if value == '':
         raise FormInvalid(field='company')
     if Tenant.query.filter_by(company=value).first():
         raise DataExisted(field='company')
示例#18
0
 def company_is_exist(self, value):
     tenant_type = request.get_json().get('tenantType')
     if value == '':
         raise APIException()
     if tenant_type == 2 and Tenant.query.filter_by(company=value).first():
         raise DataExisted(field='company')