HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux Bradford-Sitios 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/gestor-horarios.bradford/app/views/mantenedores/mantenedor_usuarios_crear_view.php
<!--mantenedor_usuarios_crear_view.php-->
<?php $this->load->view("mantenedores/shared_head_view") ?>

<?php echo form_open('', $form_open, ($hidden ?? null)) ?>
<div id="password-alert" class="alert alert-danger">
	<ul style="list-style-type: circle;padding: 8px;">
		<li>La contraseña debe tener al menos 8 caracteres.</li>
		<li>La contraseña debe tener al menos una letra mayúscula.</li>
		<li>La contraseña debe tener al menos un número.</li>
		<li>La contraseña debe tener al menos un carácter especial.</li>
	</ul>
</div>
<table border="0" class="table table-hover">
	<tbody>
		<tr>
			<td><b>Rut</b></td>
			<td><?php echo form_input($rut) ?></td>
		</tr>

		<tr>
			<td><b>Username</b></td>
			<td><?php echo form_input($username) ?></td>
		</tr>

		<tr>
			<td><b>Contraseña</b></td>
			<td><?php echo form_password($password) ?></td>
		</tr>
		<tr>
			<td><b>Confirmar Contraseña</b></td>
			<td><?php echo form_password($password_confirm) ?></td>
		</tr>
	</tbody>
</table>
<input type="hidden" name="data[perfiles_id]" value="100" />
<?php echo form_button($button) ?>
<?php echo form_close() ?>

<p></p>
<a href="<?php echo base_url() ?>dashboard/usuarios/list">&laquo; Volver</a>

<?php $this->load->view("mantenedores/shared_foot_view") ?>

<script>
	$('#password').keyup(function() {
		validateFieldsPassword($('#password').val(), 'password');
	});
	$('#password_confirm').keyup(function() {
		validateFieldsPassword($('#password_confirm').val(), 'password_confirm');
	});

	$("#form_usuarios").submit(function(e) {
		e.preventDefault();
		let password = validateFieldsPassword($('#password').val(), 'password');
		let password_confirm = validateFieldsPassword($('#password_confirm').val(), 'password_confirm');
		if (password == 1 && password_confirm == 1) {
			document.getElementById("form_usuarios").submit();
		}else{
			alert('Contraseñas inválidas corrija e intente nuevamente');
		}
	});
</script>
<script>
	function validateFieldsPassword(texto, id, msg = 'Campo Obligatorio') {
		const passwordPattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_@]).{8,}$/;
		let messages = [];

		if ($("#" + id)) {
			if (texto !== '') {
				if (id == 'password' || id == 'password_confirm') {
					if (id == 'password' && !passwordPattern.test(texto)) {
						$("#" + id).css('border-color', 'red');
						if (texto.length < 8) messages.push('<li>La contraseña debe tener al menos 8 caracteres.</li>');
						if (!/[A-Z]/.test(texto)) messages.push(
							'<li>La contraseña debe tener al menos una letra mayúscula.</li>');
						if (!/[a-z]/.test(texto)) messages.push(
							'<li>La contraseña debe tener al menos una letra minúscula.</li>');
						if (!/\d/.test(texto)) messages.push('<li>La contraseña debe tener al menos un número.</li>');
						if (!/[\W_]/.test(texto)) messages.push(
							'<li>La contraseña debe tener al menos un carácter especial.</li>');
						$("#invalid_" + id).html(`Contraseña inválida`);
						showPasswordAlert(messages);
						return 0;
					} else {
						if (id == 'password_confirm') {
							if ($('#password').val() !== texto) {
								$("#" + id).css('border-color', 'red');
								$("#invalid_" + id).text('Las contraseñas no coinciden');
								return 0;
							} else {
								$("#" + id).css('border-color', '');
								$("#invalid_" + id).text('');
								return 1;
							}
						} else {
							if (id == 'password') {
								if ($('#password_confirm').val() !== texto) {
									$("#" + id).css('border-color', '');
									$("#invalid_" + id).text('');
									$("#password_confirm").css('border-color', 'red');
									$("#invalid_password_confirm").text('Las contraseñas no coinciden');
									hidePasswordAlert();
									return 0;
								} else {
									$("#" + id).css('border-color', '');
									$("#invalid_" + id).text('');
									$("#password_confirm").css('border-color', '');
									$("#invalid_password_confirm").text('');
									hidePasswordAlert();
									return 1;
								}
							}
						}
					}
				} else {
					$("#" + id).css('border-color', '');
					$("#invalid_" + id).text('');
					hidePasswordAlert();
					return 1;
				}
			} else {
				$("#" + id).css('border-color', 'red');
				$("#invalid_" + id).text(msg);
				// hidePasswordAlert();
				return 0;
			}
		}
	}

	function showPasswordAlert(messages) {
		$("#password-alert").html(`<ul style="list-style-type: circle;padding: 8px;">${messages.join('')}</ul>`).show();
	}

	function hidePasswordAlert() {
		$("#password-alert").hide();
	}
</script>