Пример #1
0
 def post(self,deviceId):
     if self.userLoginCheck() != error.ERR_CODE_OK_:
         return
     #sensor的权限,需要先判断其所属的device是否拥有权限
     if self.privilegeCheck(master='user',masterId=self.current_user,\
                           object='device',objectId=deviceId,operation='upd') != error.ERR_CODE_OK_:
         return
     #device是否存在
     rows,isEof = database.db_select_device(num=1,id=deviceId)
     if len(rows)<=0:
         self.send_error_msg(self.__ERRCODE__['notfound'])
         return
     requestApi = copy.deepcopy(restDef.RESTFUL_API[restDef.HTTP_RES['sensor']]['@POST']['REQUEST'])
     responseApi = copy.deepcopy(restDef.RESTFUL_API[restDef.HTTP_RES['sensor']]['@POST']['RESP'])
     self._getAllArguments(requestApi)
     if requestApi['name'] != '':
         id = database.db_insert_sensor(requestApi['name'], requestApi['description'],
                                        deviceId, requestApi['userDefArea'])
         responseApi['id'] = id
     else:
         responseApi['id'] = None
     if responseApi['id'] is not None:
         #add privilege to this sennor
         privilegeM.priv_add(master='user',masterId=self.current_user,
                             object='sensor',objectId=responseApi['id'],
                             masterRole='administrator')
     #print responseApi
     self.write(escape.json_encode(responseApi))
Пример #2
0
    def post(self):
        if self.privilegeCheck(master='user',masterId=None,\
                              object='user',objectId=None,operation='add') != error.ERR_CODE_OK_:
            return
        requestApi = copy.deepcopy(restDef.RESTFUL_API[restDef.HTTP_RES['user']]['@POST']['REQUEST'])
        responseApi = copy.deepcopy(restDef.RESTFUL_API[restDef.HTTP_RES['user']]['@POST']['RESP'])
        self._getAllArguments(requestApi)
        #print requestApi
        id = None
        if requestApi['name'] != '':
            id = database.db_insert_user(requestApi['name'], requestApi['pwd'], requestApi['userDefArea'])
            responseApi['id'] = id
            if id is not None:
                #该user对自己拥有管理员权限
                privilegeM.priv_add(masterRole='administrator',masterId=id,object='user',objectId=id)
        else:
            log.logInfo("name is null")
            responseApi = {}

        if id is None:
            responseApi = {}
            self.send_error_msg(self.__ERRCODE__['userexist'],escape.json_encode(responseApi))
            return

        self.write(escape.json_encode(responseApi))
Пример #3
0
 def post(self):
     if self.userLoginCheck() != error.ERR_CODE_OK_:
         return
     requestApi = copy.deepcopy(restDef.RESTFUL_API[restDef.HTTP_RES['deviceAuth']]['@POST']['REQUEST'])
     responseApi = copy.deepcopy(restDef.RESTFUL_API[restDef.HTTP_RES['deviceAuth']]['@POST']['RESP'])
     self._getAllArguments(requestApi)
     if self.privilegeCheck(master='user',masterId=self.current_user,\
                           object='device',objectId=requestApi['deviceId'],\
                            operation='privilege_add') != error.ERR_CODE_OK_:
         return
     database.db_insert_deviceauth(requestApi['userId'], requestApi['deviceId'])
     privilegeM.priv_add(masterRole=requestApi['role'],masterId=requestApi['userId'],
                         object='device',objectId=requestApi['deviceId'],operList=requestApi['privilege'])
     self.write(escape.json_encode(responseApi))
Пример #4
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