def validate_filter(self, filter_map): """Validates filter fields before add @param filter_map: Map with the data of the request. @raise InvalidValueError: Represents an error occurred validating a value. """ # Get XML data name = filter_map['name'] description = filter_map['description'] # name can NOT be greater than 100 if not is_valid_string_minsize(name, 3) or not is_valid_string_maxsize( name, 100) or not is_valid_text(name): self.log.error(u'Parameter name is invalid. Value: %s.', name) raise InvalidValueError(None, 'name', name) # description can NOT be greater than 200 if not is_valid_string_minsize( description, 3, False) or not is_valid_string_maxsize( description, 200, False) or not is_valid_text( description, True): self.log.error(u'Parameter description is invalid. Value: %s.', description) raise InvalidValueError(None, 'description', description) # Verify existence if len(Filter.objects.filter(name=name).exclude(id=self.id)) > 0: raise FilterDuplicateError( None, u'Já existe um filtro com o nome %s no banco de dados.' % name) # set variables self.name = name self.description = description
def valid_environment_vip(self, environmentvip_map): '''Validate the values of environment vip @param environmentvip_map: Map with the data of the request. @raise InvalidValueError: Represents an error occurred validating a value. ''' # Get XML data finalidade_txt = environmentvip_map.get('finalidade_txt') cliente_txt = environmentvip_map.get('cliente_txt') ambiente_p44_txt = environmentvip_map.get('ambiente_p44_txt') description = environmentvip_map.get('description') # finalidade_txt can NOT be greater than 50 or lesser than 3 if not is_valid_string_maxsize(finalidade_txt, 50, True) or not is_valid_string_minsize(finalidade_txt, 3, True) or not is_valid_text(finalidade_txt): self.log.error( u'Parameter finalidade_txt is invalid. Value: %s.', finalidade_txt) raise InvalidValueError(None, 'finalidade_txt', finalidade_txt) # cliente_txt can NOT be greater than 50 or lesser than 3 if not is_valid_string_maxsize(cliente_txt, 50, True) or not is_valid_string_minsize(cliente_txt, 3, True) or not is_valid_text(cliente_txt): self.log.error( u'Parameter cliente_txt is invalid. Value: %s.', cliente_txt) raise InvalidValueError(None, 'cliente_txt', cliente_txt) # ambiente_p44_txt can NOT be greater than 50 or lesser than 3 if not is_valid_string_maxsize(ambiente_p44_txt, 50, True) or not is_valid_string_minsize(ambiente_p44_txt, 3, True) or not is_valid_text(ambiente_p44_txt): self.log.error( u'Parameter ambiente_p44_txt is invalid. Value: %s.', ambiente_p44_txt) raise InvalidValueError(None, 'ambiente_p44_txt', ambiente_p44_txt) if not is_valid_string_maxsize(description, 50, True) or not is_valid_string_minsize(description, 3, True) or not is_valid_text(description): self.log.error( u'Parameter description is invalid. Value: %s.', description) raise InvalidValueError(None, 'description', description) # set variables self.finalidade_txt = finalidade_txt self.cliente_txt = cliente_txt self.ambiente_p44_txt = ambiente_p44_txt self.description = description
def handle_post(self, request, user, *args, **kwargs): """Treat POST request to add new user group. URL: ugroup/ """ try: if not has_perm(user, AdminPermission.USER_ADMINISTRATION, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) xml_map, attrs_map = loads(request.raw_post_data) self.log.debug('XML_MAP: %s', xml_map) networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'There is no networkapi tag in request XML.') ugroup_map = networkapi_map.get('user_group') if ugroup_map is None: return self.response_error(3, u'There is no user_group tag in request XML.') # Valid name name = ugroup_map.get('nome') if not is_valid_string_minsize(name, 3) or not is_valid_string_maxsize(name, 100) or not is_valid_text(name): self.log.error(u'Parameter name is invalid. Value: %s', name) raise InvalidValueError(None, 'name', name) read = ugroup_map.get('leitura') if not is_valid_yes_no_choice(read): self.log.error(u'Parameter read is invalid. Value: %s', read) raise InvalidValueError(None, 'read', read) write = ugroup_map.get('escrita') if not is_valid_yes_no_choice(write): self.log.error(u'Parameter write is invalid. Value: %s', write) raise InvalidValueError(None, 'write', write) edit = ugroup_map.get('edicao') if not is_valid_yes_no_choice(edit): self.log.error(u'Parameter edit is invalid. Value: %s', edit) raise InvalidValueError(None, 'edit', edit) remove = ugroup_map.get('exclusao') if not is_valid_yes_no_choice(remove): self.log.error( u'Parameter remove is invalid. Value: %s', remove) raise InvalidValueError(None, 'remove', remove) ugroup = UGrupo() ugroup.nome = name ugroup.leitura = read ugroup.escrita = write ugroup.edicao = edit ugroup.exclusao = remove try: UGrupo.objects.get(nome__iexact=ugroup.nome) raise UGrupoNameDuplicatedError( None, u'User group with name %s already exists' % name) except UGrupo.DoesNotExist: pass try: # save user group ugroup.save() adm_perm = PermissaoAdministrativa() if ASSOCIATE_PERMISSION_AUTOMATICALLY: # Automatically associate 'authenticate' permission for # this group adm_perm.permission = Permission.get_by_pk( ID_AUTHENTICATE_PERMISSION) adm_perm.ugrupo = ugroup adm_perm.leitura = False adm_perm.escrita = True adm_perm.save() except Exception, e: self.log.error(u'Failed to save the GroupUser.') raise GrupoError(e, u'Failed to save the GroupUser.') return self.response(dumps_networkapi({'user_group': {'id': ugroup.id}}))
def handle_put(self, request, user, *args, **kwargs): """Treat PUT requests to edit Group User. URL: ugroup/<id_ugroup>/ """ try: self.log.info('Edit Group User') # User permission if not has_perm(user, AdminPermission.USER_ADMINISTRATION, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_ugroup = kwargs.get('id_ugroup') # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'There is no value to the networkapi tag of XML request.') ugroup_map = networkapi_map.get('user_group') if ugroup_map is None: return self.response_error(3, u'There is no value to the user_group tag of XML request.') id_ugroup = kwargs.get('id_ugroup') # Valid Group User ID if not is_valid_int_greater_zero_param(id_ugroup): self.log.error( u'The id_ugroup parameter is not a valid value: %s.', id_ugroup) raise InvalidValueError(None, 'id_ugroup', id_ugroup) # Find Group User by ID to check if it exist ugroup = UGrupo.get_by_pk(id_ugroup) # Valid name name = ugroup_map.get('nome') if not is_valid_string_minsize(name, 3) or not is_valid_string_maxsize(name, 100) or not is_valid_text(name): self.log.error(u'Parameter name is invalid. Value: %s', name) raise InvalidValueError(None, 'name', name) ugroup_existent = UGrupo.objects.filter( nome__iexact=name).exclude(id=id_ugroup) if len(ugroup_existent) > 0: raise UGrupoNameDuplicatedError( None, u'User group with name %s already exists' % name) # Valid read read = ugroup_map.get('leitura') if not is_valid_yes_no_choice(read): self.log.error(u'Parameter read is invalid. Value: %s', read) raise InvalidValueError(None, 'read', read) # Valid write write = ugroup_map.get('escrita') if not is_valid_yes_no_choice(write): self.log.error(u'Parameter write is invalid. Value: %s', write) raise InvalidValueError(None, 'write', write) # Valid edit edit = ugroup_map.get('edicao') if not is_valid_yes_no_choice(edit): self.log.error(u'Parameter edit is invalid. Value: %s', edit) raise InvalidValueError(None, 'edit', edit) # Valid remove remove = ugroup_map.get('exclusao') if not is_valid_yes_no_choice(remove): self.log.error( u'Parameter remove is invalid. Value: %s', remove) raise InvalidValueError(None, 'remove', remove) ugroup.nome = name ugroup.leitura = read ugroup.escrita = write ugroup.edicao = edit ugroup.exclusao = remove with distributedlock(LOCK_GROUP_USER % id_ugroup): try: # save user group ugroup.save() except Exception, e: self.log.error(u'Failed to save the GroupUser.') raise GrupoError(e, u'Failed to save the GroupUser.') return self.response(dumps_networkapi({'user_group': {'id': ugroup.id}})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_post(self, request, user, *args, **kwargs): """Treat requests Post to search ambiente_p44_txt of Environment VIP by finalidade_txt and cliente_txt URL: environment-vip/get/ambiente_p44_txt/ """ try: self.log.info( 'Search ambiente_p44_txt Environment VIP by finalidade_txt and cliente_txt' ) # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_VIP, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error( 3, u'There is no value to the networkapi tag of XML request.') environmentvip_map = networkapi_map.get('vip') if environmentvip_map is None: return self.response_error( 3, u'There is no value to the vip tag of XML request.') # Get XML data finalidade = environmentvip_map.get('finalidade_txt') cliente_txt = environmentvip_map.get('cliente_txt') # finalidade_txt can NOT be greater than 50 if not is_valid_string_maxsize( finalidade, 50, True) or not is_valid_string_minsize( finalidade, 3, True) or not is_valid_text(finalidade): self.log.error( u'Parameter finalidade_txt is invalid. Value: %s.', finalidade) raise InvalidValueError(None, 'finalidade_txt', finalidade) # cliente_txt can NOT be greater than 50 if not is_valid_string_maxsize( cliente_txt, 50, True) or not is_valid_string_minsize( cliente_txt, 3, True) or not is_valid_text(cliente_txt): self.log.error(u'Parameter cliente_txt is invalid. Value: %s.', cliente_txt) raise InvalidValueError(None, 'cliente_txt', cliente_txt) environmentVip = EnvironmentVip() evip_values = environmentVip.list_all_ambientep44_by_finality_and_cliente( finalidade, cliente_txt) evips = dict() evips_list = [] for evip in evip_values: evips['id'] = evip.id evips['finalidade_txt'] = finalidade evips['cliente_txt'] = cliente_txt evips['ambiente_p44'] = evip.ambiente_p44_txt evips['description'] = evip.description evips_list.append(evips) evips = dict() return self.response(dumps_networkapi({'ambiente_p44': evips_list})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_post(self, request, user, *args, **kwargs): """Treat requests Post to search cliente_txt of Environment VIP by finalidade_txt URL: environmentvip/search/ """ try: self.log.info( 'Search cliente_txt Environment VIP by finalidade_txt') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_VIP, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'There is no value to the networkapi tag of XML request.') environmentvip_map = networkapi_map.get('vip') if environmentvip_map is None: return self.response_error(3, u'There is no value to the vip tag of XML request.') # Get XML data finalidade = environmentvip_map.get('finalidade_txt') if not is_valid_string_maxsize(finalidade, 50) or not is_valid_string_minsize(finalidade, 3) or not is_valid_text(finalidade): self.log.error( u'The finalidade_txt parameter is not a valid value: %s.', finalidade) raise InvalidValueError(None, 'finalidade_txt', finalidade) environmentVip = EnvironmentVip() evip_values = environmentVip.list_all_clientes_by_finalitys( finalidade) evips = dict() evips_list = [] for evip in evip_values: evips['finalidade_txt'] = finalidade evips['cliente_txt'] = evip.get('cliente_txt') evips_list.append(evips) evips = dict() return self.response(dumps_networkapi({'cliente_txt': evips_list})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_post(self, request, user, *args, **kwargs): """Treat requests Post to search ambiente_p44_txt of Environment VIP by finalidade_txt and cliente_txt URL: environment-vip/get/ambiente_p44_txt/ """ try: self.log.info( "Search ambiente_p44_txt Environment VIP by finalidade_txt and cliente_txt") # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_VIP, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error(3, u'There is no value to the networkapi tag of XML request.') environmentvip_map = networkapi_map.get('vip') if environmentvip_map is None: return self.response_error(3, u'There is no value to the vip tag of XML request.') # Get XML data finalidade = environmentvip_map.get('finalidade_txt') cliente_txt = environmentvip_map.get('cliente_txt') # finalidade_txt can NOT be greater than 50 if not is_valid_string_maxsize(finalidade, 50, True) or not is_valid_string_minsize(finalidade, 3, True) or not is_valid_text(finalidade): self.log.error( u'Parameter finalidade_txt is invalid. Value: %s.', finalidade) raise InvalidValueError(None, 'finalidade_txt', finalidade) # cliente_txt can NOT be greater than 50 if not is_valid_string_maxsize(cliente_txt, 50, True) or not is_valid_string_minsize(cliente_txt, 3, True) or not is_valid_text(cliente_txt): self.log.error( u'Parameter cliente_txt is invalid. Value: %s.', cliente_txt) raise InvalidValueError(None, 'cliente_txt', cliente_txt) environmentVip = EnvironmentVip() evip_values = environmentVip.list_all_ambientep44_by_finality_and_cliente( finalidade, cliente_txt) evips = dict() evips_list = [] for evip in evip_values: evips['id'] = evip.id evips['finalidade_txt'] = finalidade evips['cliente_txt'] = cliente_txt evips['ambiente_p44'] = evip.ambiente_p44_txt evips['description'] = evip.description evips_list.append(evips) evips = dict() return self.response(dumps_networkapi({'ambiente_p44': evips_list})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def handle_post(self, request, user, *args, **kwargs): """Treat requests Post to search cliente_txt of Environment VIP by finalidade_txt URL: environmentvip/search/ """ try: self.log.info( 'Search cliente_txt Environment VIP by finalidade_txt') # User permission if not has_perm(user, AdminPermission.ENVIRONMENT_VIP, AdminPermission.READ_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error( 3, u'There is no value to the networkapi tag of XML request.') environmentvip_map = networkapi_map.get('vip') if environmentvip_map is None: return self.response_error( 3, u'There is no value to the vip tag of XML request.') # Get XML data finalidade = environmentvip_map.get('finalidade_txt') if not is_valid_string_maxsize( finalidade, 50) or not is_valid_string_minsize( finalidade, 3) or not is_valid_text(finalidade): self.log.error( u'The finalidade_txt parameter is not a valid value: %s.', finalidade) raise InvalidValueError(None, 'finalidade_txt', finalidade) environmentVip = EnvironmentVip() evip_values = environmentVip.list_all_clientes_by_finalitys( finalidade) evips = dict() evips_list = [] for evip in evip_values: evips['finalidade_txt'] = finalidade evips['cliente_txt'] = evip.get('cliente_txt') evips_list.append(evips) evips = dict() return self.response(dumps_networkapi({'cliente_txt': evips_list})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)
def validate_filter(self, filter_map): '''Validates filter fields before add @param filter_map: Map with the data of the request. @raise InvalidValueError: Represents an error occurred validating a value. ''' # Get XML data name = filter_map['name'] description = filter_map['description'] # name can NOT be greater than 100 if not is_valid_string_minsize(name, 3) or not is_valid_string_maxsize(name, 100) or not is_valid_text(name): self.log.error(u'Parameter name is invalid. Value: %s.', name) raise InvalidValueError(None, 'name', name) # description can NOT be greater than 200 if not is_valid_string_minsize(description, 3, False) or not is_valid_string_maxsize(description, 200, False) or not is_valid_text(description, True): self.log.error( u'Parameter description is invalid. Value: %s.', description) raise InvalidValueError(None, 'description', description) # Verify existence if len(Filter.objects.filter(name=name).exclude(id=self.id)) > 0: raise FilterDuplicateError( None, u'Já existe um filtro com o nome %s no banco de dados.' % name) # set variables self.name = name self.description = description
def handle_put(self, request, user, *args, **kwargs): """Treat PUT requests to edit Group User. URL: ugroup/<id_ugroup>/ """ try: self.log.info('Edit Group User') # User permission if not has_perm(user, AdminPermission.USER_ADMINISTRATION, AdminPermission.WRITE_OPERATION): self.log.error( u'User does not have permission to perform the operation.') raise UserNotAuthorizedError(None) id_ugroup = kwargs.get('id_ugroup') # Load XML data xml_map, attrs_map = loads(request.raw_post_data) # XML data format networkapi_map = xml_map.get('networkapi') if networkapi_map is None: return self.response_error( 3, u'There is no value to the networkapi tag of XML request.') ugroup_map = networkapi_map.get('user_group') if ugroup_map is None: return self.response_error( 3, u'There is no value to the user_group tag of XML request.') id_ugroup = kwargs.get('id_ugroup') # Valid Group User ID if not is_valid_int_greater_zero_param(id_ugroup): self.log.error( u'The id_ugroup parameter is not a valid value: %s.', id_ugroup) raise InvalidValueError(None, 'id_ugroup', id_ugroup) # Find Group User by ID to check if it exist ugroup = UGrupo.get_by_pk(id_ugroup) # Valid name name = ugroup_map.get('nome') if not is_valid_string_minsize( name, 3) or not is_valid_string_maxsize( name, 100) or not is_valid_text(name): self.log.error(u'Parameter name is invalid. Value: %s', name) raise InvalidValueError(None, 'name', name) ugroup_existent = UGrupo.objects.filter(nome__iexact=name).exclude( id=id_ugroup) if len(ugroup_existent) > 0: raise UGrupoNameDuplicatedError( None, u'User group with name %s already exists' % name) # Valid read read = ugroup_map.get('leitura') if not is_valid_yes_no_choice(read): self.log.error(u'Parameter read is invalid. Value: %s', read) raise InvalidValueError(None, 'read', read) # Valid write write = ugroup_map.get('escrita') if not is_valid_yes_no_choice(write): self.log.error(u'Parameter write is invalid. Value: %s', write) raise InvalidValueError(None, 'write', write) # Valid edit edit = ugroup_map.get('edicao') if not is_valid_yes_no_choice(edit): self.log.error(u'Parameter edit is invalid. Value: %s', edit) raise InvalidValueError(None, 'edit', edit) # Valid remove remove = ugroup_map.get('exclusao') if not is_valid_yes_no_choice(remove): self.log.error(u'Parameter remove is invalid. Value: %s', remove) raise InvalidValueError(None, 'remove', remove) ugroup.nome = name ugroup.leitura = read ugroup.escrita = write ugroup.edicao = edit ugroup.exclusao = remove with distributedlock(LOCK_GROUP_USER % id_ugroup): try: # save user group ugroup.save() except Exception, e: self.log.error(u'Failed to save the GroupUser.') raise GrupoError(e, u'Failed to save the GroupUser.') return self.response( dumps_networkapi({'user_group': { 'id': ugroup.id }})) except InvalidValueError, e: return self.response_error(269, e.param, e.value)