def _one(self, _app_uuid, _user_uuid): _redis = self.application.redis _key = AppUserData.__tablename__ + \ ".app_uuid." + _app_uuid + \ ".user_uuid." + _user_uuid + ".is_service_user.True" if not _redis.exists(_key): self.setErrorCode(API_ERR.NO_USER) return False _data_uuid = _redis.get(_key) _data = redis_hash_to_dict(_redis, AppUserData, _data_uuid) if _data == None: self.setErrorCode(API_ERR.NO_USER) return False if _data.get("is_owner_user") == True: self.setErrorCode(API_ERR.APP_OWNER) return False _row = AppUserData(uuid=_data_uuid) _row.async_delete() _row.delete_redis_keys(_redis) _key = DeviceUser.__tablename__ + ".uuid." + _user_uuid if not _redis.exists(_key): self.setErrorCode(API_ERR.NO_USER) return False # FIXME: a lot of user db message should be removed _row = DeviceUser(uuid=_user_uuid) _row.async_delete() _row.delete_redis_keys(_redis) return True
def _remove(self): _redis = self.application.redis _app = redis_hash_to_dict(_redis, AppInfo, _app_uuid) if _app == None: self.setErrorCode(API_ERR.NO_APP) return if _app.get("user_uuid") != _user_uuid: self.setErrorCode(API_ERR.NOT_OWNER) return _key = AppUserData.__tablename__ + ".app_uuid." + _app_uuid + ".is_service_user.True" _services = _redis.smembers() _key = AppUserData.__tablename__ + ".app_uuid." + _app_uuid + ".is_service_user.False" _users = _redis.smembers() _pi = _redis.pipeline() _data_key_pre = AppUserData.__tablename__ + ".app_uuid." + _app_uuid for _user_uuid in _sevices: _data_key = _data_key_pre + ".user_uuid." + _user_uuid + ".is_service_user.True" _pi.get(_data_key) _data_uuid_list = _pi.execute() for _i in _data_uuid_list: _row = AppUserData(uuid=_i) _row.async_delete() _row.delete_redis_keys(_redis) _row = AppInfo(uuid=_app_uuid) _row.async_delete() _row.delete_redis_keys(_redis) return
def _remove(self): _redis = self.application.redis _app = redis_hash_to_dict(_redis, AppInfo, _app_uuid) if _app == None: self.setErrorCode(API_ERR.NO_APP) return if _app.get("user_uuid") != _user_uuid: self.setErrorCode(API_ERR.NOT_OWNER) return _key = AppUserData.__tablename__ + ".app_uuid." + _app_uuid + ".is_service_user.True" _services = _redis.smembers() _key = AppUserData.__tablename__ + ".app_uuid." + _app_uuid + ".is_service_user.False" _users = _redis.smembers() _pi = _redis.pipeline() _data_key_pre = AppUserData.__tablename__ + ".app_uuid." + _app_uuid for _user_uuid in _sevices: _data_key = _data_key_pre + ".user_uuid." + _user_uuid + ".is_service_user.True" _pi.get(_data_key) _data_uuid_list = _pi.execute() for _i in _data_uuid_list: _row = AppUserData(uuid=_i) _row.async_delete(_redis) _row.delete_redis_keys(_redis) _row = AppInfo(uuid=_app_uuid) _row.async_delete(_redis) _row.delete_redis_keys(_redis) return