示例#1
0
 def deleteOneDevice(self,deviceId,userId):
     rows,isEof = database.db_select_sensor(deviceId=deviceId)
     for item in rows:
         self.deleteOneSensor(deviceId,item[0])
     authManager.deviceRemove(deviceId) #remove from accessKey
     database.db_delete_device(deviceId)
     database.db_delete_deviceauth(userId,deviceId)
     privilegeM.priv_del(masterId=userId,object='device',objectId=deviceId,master='user')
示例#2
0
    def post(self):
        if self.userLoginCheck() != error.ERR_CODE_OK_:
            return
        if self.privilegeCheck(master='user',masterId=self.current_user,\
                              object='device',objectId=None,operation='add') != error.ERR_CODE_OK_:
            return
        key = self.request.headers.get('accessKey')
        if (key is None) or (key is ''):
            self.send_error_msg(self.__ERRCODE__['keyinvalid'])
            return error.ERR_CODE_ERR_
        requestApi = copy.deepcopy(restDef.RESTFUL_API[restDef.HTTP_RES['device']]['@POST']['REQUEST'])
        responseApi = copy.deepcopy(restDef.RESTFUL_API[restDef.HTTP_RES['device']]['@POST']['RESP'])
        self._getAllArguments(requestApi)

        if requestApi['name'] != '':
            id = database.db_insert_device(requestApi['name'], requestApi['description'],
                                           requestApi['local'], requestApi['latitude'],
                                           requestApi['longitude'], requestApi['userDefArea'],key)
            if id is not None:
                #device access
                ret = authManager.deviceAccess(id,key)
                if ret == error.ERR_CODE_OK_:
                    #将device和user关联,并且添加user对该device的管理员权限
                    privilegeM.priv_add(masterRole='administrator',master='user',masterId=self.current_user,
                                        object='device',objectId=id)
                    database.db_insert_deviceauth(self.current_user,id)
                    responseApi['id'] = id
                    self.write(escape.json_encode(responseApi))
                    return
                elif ret == error.ERR_CODE_ACCESS_MAX:
                    errcode = 'accessmax'
                elif ret == error.ERR_CODE_PARAINVALID:
                    errcode = 'keyinvalid'
                else:
                    errcode = 'innererr'
                #delete the device
                database.db_delete_device(id)
            else:
                errcode = 'innererr'
        else:
            errcode = 'parainvalid'

        #error branch
        responseApi['id'] = 0
        self.send_error_msg(self.__ERRCODE__[errcode],body=responseApi)
        return