Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- *
- * @event text
- *
- *
- * @global
- */
- ON *:TEXT:*:?: {
- tokenize 32 $1-
- if ($strip($1) == ACL) {
- if (!$2) {
- msg $nick Sintaxis: $sintaxis(ACL)
- msg $nick $sintaxis(ACL,ERROR)
- halt
- }
- if ($2 == ADD) {
- if (!$3) {
- msg $nick Sintaxis: $sintaxis(ACL,ADD)
- msg $nick $sintaxis(ACL,ERROR)
- halt
- }
- /*
- * Declaro la variable %tabla para hacer la consulta a MySQL
- */
- var %tabla = usuarios
- /*
- * Declaro la variable %sql para declarar la consulta a realizar.
- */
- var %sql = SELECT usuario FROM usuarios WHERE usuario = $+($chr(39),$3,$chr(39))
- /*
- * Ejecuto la consulta MySQL. Parametros %tabla, %sql
- */
- if ($dbGet(%tabla,%sql)) {
- /*
- * Si hay resultados...
- */
- if ($dbResults) {
- /*
- * Comparo el parametro '$3' con el resultado dado por la consulta.
- */
- if ($3 == $hget(db_results,usuario)) || ($3 === $hget(db_results,usuario)) {
- /*
- * Si coincide el resultado con el parametro pasado '$3' envio un mensaje de error.
- */
- msg $nick El usuario $theme(&primary;,$3) ya existe en el sistema. Si deseas cambiar algún dato, escribe $sintaxis(ACL,CHANGE)
- error $theme(&primary;,$nick) intenta dar de alta a $theme(&primary;,$3) en el sistema. Usuario ya dado de alta.
- /*
- * Cierro la consulta ACL.
- */
- halt
- /*
- *Cierro llave de if () $dbResults()
- */
- }
- /*
- * Si no hay resultados en la consulta, sigo adelante.
- */
- if (!$dbResults) {
- /*
- * Compruebo que exista el parámetro $4. En caso de no existir envio mensaje de error.
- */
- if (!$4) {
- msg $nick Sintaxis: $sintaxis(ACL,ADD)
- msg $nick $sintaxis(ACL,ERROR)
- halt
- }
- /*
- * Compruebo si que el parametro '$4' coincide o no, con una de las opciones válidas.
- */
- if ($4 != locutor) && ($4 != coder) && ($4 != coord) && ($4 != admin) {
- /*
- * En caso de no coincidir con ninguna opción válida, envio mensaje de error y salgo de ACL.
- */
- msg $nick $theme(&danger;,[ERROR]:) El privilegio $theme(&primary;,$4) no existe o no se ha autorizado su uso en ACL. Puedes ver la lista de privilegios escribiendo $sintaxis(ACL,PRIVSDEF)
- error $theme(&primary;,$nick) Ha intentado añadir al usuario $theme(&primary;,$3) al sistema con privilegio $theme(&warning;,$4) $+ . Privilegio $theme(&primary;,$4) no existe o no se ha autorizado su uso en ACL.
- /*
- *Cierro la consulta. $4 No coincide con ningún valor válido.
- */
- }
- /*
- * El parámetro '$4' coincide con 'ADMIN'
- */
- if ($4 == admin) {
- /*
- * Declaro la variable %tabla, para hacer la consulta MySQL
- */
- var %tabla = usuarios
- /*
- * Declaro la variable %sql, con la consulta a realizar.
- */
- var %sql = SELECT U.id_usuario, U.usuario, P.id_privilegio, P.privilegio, UP.id_usuario, UP.id_privilegio FROM user_prvs AS UP INNER JOIN usuarios AS U ON UP.id_usuario = U.id_usuario INNER JOIN privilegios AS P ON UP.id_privilegio = P.id_privilegio WHERE U.usuario = $+($chr(39),$nick,$chr(39))
- /*
- * Ejecuto la consulta MySQL. Parametros: %tabla, %sql
- */
- if ($dbGet(%tabla,%sql)) {
- /*
- * En caso de haber resultados...
- */
- if ($dbResults) {
- /*
- * Declaro las variables %ACL.usuario y %ACL.privilegio con los resultados dados por la consulta.
- */
- set %ACL.usuario $hget(db_results,usuario)
- set %ACL.privilegio $hget(db_results,privilegio)
- /*
- * Compruebo si el privilegio de '$nick' no es 'ROOT' o 'CODER'
- */
- if (%ACL.privilegio != ROOT) && (%ACL.privilegio != CODER) {
- /*
- * Borro las variables %ACL.*
- */
- unset %ACL.*
- /*
- * Si el privilegio no es ni 'ROOT' ni 'CODER' envio mensaje de error
- */
- msg $nick $theme(&danger;,[ERROR]:) Por motivos de seguridad y calidad del servicio, se ha limitado el privilegio de $theme(&primary;,Administrador) al $theme(&bold;,dueño) o $theme(&bold;,dueña de la emisora.) $&
- Si aún así desea añadir otro administrador, pongase en contacto con el departamento de atención al cliente en $theme(&bold;,$theme(&primary;,%c_support)) donde un agente le atendrá.
- error Privilegios insuficientes para añadir a $theme(&primary;,$3) como $theme(&primary;,$upper($4)) $+ . $&
- Se le ha indicado a $theme(&primary;,$nick) que se ponga en contacto con el departamento al cliente.
- /*
- * Cierro la consulta y salgo de ACL.
- */
- }
- /*
- * Si el parametro '$4' es igual a 'CODER' o 'ROOT'
- */
- if ($4 == ROOT) || ($4 == CODER) {
- /*
- * Declaro la variable %tabla
- */
- set %tabla = usuarios
- /*
- *
- * Declaro la variable %data
- *
- * Esta variable servirá para decirle a $dbInsert()
- * que parametros existen en la tabla %tabla
- *
- * Separo los valores con $chr(9) dentro de un $+()
- *
- * El orden declarado en la variable %data debe coincidir con los de la tabla %tabla de MySQL.
- *
- */
- set %data $+(id_usuario,$chr(9),usuario)
- /*
- *
- * Declaro la variable %values
- *
- * Esta variable servirá para decirle a $dbInsert()
- * que parametros debe introducir en las filas de %data
- *
- * El orden declarado en la variable %values debe coincidir con los de la variable %data
- *
- */
- set %values $+(NULL,$chr(9),$3)
- /*
- * Ejecuto $dbInsert() con los parametros %tabla, %data y %values
- *
- * Si $dbInsert() devuelven $true entro dentro del if ()
- */
- if ($dbInsert(%tabla,%data,%values)) {
- /*
- * Declaro la variable %privilegio
- *
- * Declaro el valor de la variable %privilegio con el valor de 'ID' que corresponde a la columna 'privilegio'de la tabla 'privilegios'.
- * Dicho valor debe coincidir con el parametro '$4'
- *
- * Ejemplo:
- *
- * id_privilegio: 4
- * privilegio: ADMIN
- *
- * $4 = 'ADMIN'
- *
- */
- var %privilegio = 4
- /*
- * Declaro la variable %tabla
- */
- var %tabla = user_prvs
- /*
- * Declaro la variable %data
- *
- * Esta variable servirá para decirle a $dbInsert()
- * que parametros existen en la tabla %tabla
- *
- * Separo los valores con $chr(9) dentro de un $+()
- *
- * El orden declarado en la variable %data debe coincidir con los de la tabla %tabla de MySQL.
- */
- var %data = $+(id_user_prvs,$chr(9),id_usuario,$chr(9),id_privilegio)
- /*
- * Declaro la variable %values
- *
- * Esta variable servirá para decirle a $dbInsert()
- * que parametros debe introducir en las filas de %data
- *
- * El orden declarado en la variable %values debe coincidir con los de la variable %data
- */
- var %values = $+(NULL,$chr(9),$mysql_insert_id(%database),$chr(9),%privilegio)
- /*
- * Ejecuto $dbInsert() con los parametros %tabla, %data y %values
- *
- * Si $dbInsert() devuelven $true entro dentro del if ()
- */
- if ($dbInsert(%tabla,%data,%values)) {
- /*
- * Envio mensaje de confirmación.
- */
- msg $nick $theme(&primary;,$3) ha sido dado de alta correctamente en el sistema de $theme(&primary;,$service_name) con privilegio de $theme(&warning;,$4) $+ .
- /*
- * Envio mensaje recordatorio, para cumplementar los datos del perfil de '$3'
- */
- msg $nick Recuerde dar de alta en perfiles a $theme(&primary;,$3) $+ . Escriba $sintaxis(perfil,add)
- /*
- * Envio mensaje a '$3' dandole a conocer que ha sido dado de alta en el sistema.
- */
- msg $3 Enhorabuena $theme(&primary;,$3) has sido dado de alta en el sistema de $service_name con privilegio de $theme(&primary;,$upper($4)) $+ .
- /*
- * Envio mensaje a '$3' sugiriendole mirar el comando de ayuda, para su nivel.
- */
- msg $3 Desde la administración te sugerimos que revises los comandos disponibles para tu nivel de acceso, escribiendo, $sintaxis(help)
- /*
- * Salgo de ACL.
- */
- halt
- /*
- * Cierro el if () de $dbInsert()
- */
- }
- /*
- * Abro else { } Si el resultado de $dbInsert() es $false
- */
- else {
- /*
- * Envio mensaje de error e informo.
- */
- msg $nick No se ha dado de alta a $theme(&primary;,$3) en la tabla $theme(&bold;,user_prvs) $+ . Error: $+($chr(91),%mysql_errno,$chr(93),:) %mysql_errstr
- error No se ha dado de alta a $theme(&primary;,$3) en la tabla $theme(&bold;,user_prvs) $+ . Error: $+($chr(91),%mysql_errno,$chr(93),:) %mysql_errstr
- /*
- * Cierro else { } de $dbInsert(), consulta para la tabla 'user_prvs'
- */
- }
- /*
- * Cierro el if () de $dbInsert()
- */
- }
- /*
- * Abro else {} Si el resultado de $dbInsert() es $false
- */
- else {
- /*
- * Envio mensaje de error e informo.
- */
- msg $nick No se ha dado de alta a $3 en la tabla $theme(&bold;,usuarios) $+ . Error: $+($chr(91),%mysql_errno,$chr(93),:) %mysql_errstr
- /*
- * Cierro else { } de $dbInsert() de la tabla 'usuarios'
- */
- }
- /*
- * Cierro if () $4 == ROOT OR $4 == CODER
- */
- }
- /*
- * Cierro if () $dbResults()
- */
- }
- /*
- * Cierro if () $dbGet()
- */
- }
- /*
- * Cierro if () $4 == ADMIN
- */
- }
- elseif ($4 == COORD) {
- var %tabla = usuarios
- var %sql = SELECT U.id_usuario, U.usuario, P.id_privilegio, P.privilegio, UP.id_usuario, UP.id_privilegio FROM user_prvs AS UP INNER JOIN usuarios AS U ON UP.id_usuario = U.id_usuario INNER JOIN privilegios AS P ON UP.id_privilegio = P.id_privilegio WHERE U.usuario = $+($chr(39),$nick,$chr(39))
- if ($dbGet(%tabla,%sql)) {
- if ($dbResults) {
- set %ACL.usuario $hget(db_results,usuario)
- set %ACL.privilegio $hget(db_results,privilegio)
- if (%ACL.privilegio != ROOT) && (%ACL.privilegio != ADMIN) && (%ACL.privilegio != CODER) {
- msg $nick $theme(&danger;,[ERROR]:) Privilegios insuficientes. Contacte con un administrador o dueño de la radio.
- error Privilegios insuficientes para añadir a $theme(&primary;,$3) como $theme(&primary;,$upper($4)) $+ .
- unset %ACL.*
- }
- else {
- set %data $+(id_usuario,$chr(9),usuario)
- set %values $+(NULL,$chr(9),$3)
- if ($dbInsert(%tabla,%data,%values)) {
- var %privilegio = 3
- var %tabla = user_prvs
- var %data = $+(id_user_prvs,$chr(9),id_usuario,$chr(9),id_privilegio)
- var %values = $+(NULL,$chr(9),$mysql_insert_id(%database),$chr(9),%privilegio)
- if ($dbInsert(%tabla,%data,%values)) {
- msg $nick $theme(&primary;,$3) ha sido dado de alta correctamente en el sistema de $theme(&primary;,$service_name) con privilegio de $theme(&warning;,$4) $+ .
- msg $nick Recuerde dar de alta en perfiles a $theme(&primary;,$3) $+ . Escriba $sintaxis(perfil,add)
- msg $3 Enhorabuena $theme(&primary;,$3) has sido dado de alta en el sistema de $service_name con privilegio de $theme(&primary;,$upper($4)) $+ .
- halt
- }
- else {
- msg $nick No se ha dado de alta a $3 en la tabla $theme(&bold;,user_prvs) $+ . Error: $+($chr(91),%mysql_errno,$chr(93),:) %mysql_errstr
- }
- }
- else {
- msg $nick No se ha dado de alta a $3 en la tabla $theme(&bold;,usuarios) $+ . Error: $+($chr(91),%mysql_errno,$chr(93),:) %mysql_errstr
- }
- }
- }
- }
- }
- elseif ($4 == CODER) {
- var %tabla = usuarios
- var %sql = SELECT U.id_usuario, U.usuario, P.id_privilegio, P.privilegio, UP.id_usuario, UP.id_privilegio FROM user_prvs AS UP INNER JOIN usuarios AS U ON UP.id_usuario = U.id_usuario INNER JOIN privilegios AS P ON UP.id_privilegio = P.id_privilegio WHERE U.usuario = $+($chr(39),$nick,$chr(39))
- if ($dbGet(%tabla,%sql)) {
- if ($dbResults) {
- set %ACL.usuario $hget(db_results,usuario)
- set %ACL.privilegio $hget(db_results,privilegio)
- if (%ACL.privilegio != ROOT) {
- msg $nick $theme(&danger;,[ERROR]:) Por motivos de seguridad y calidad del servicio, se ha limitado el privilegio de $theme(&primary;,Técnico - CODER) al $theme(&bold;,equipo) de $theme(&bold;,IRCServices) $&
- error Privilegios insuficientes para añadir a $theme(&primary;,$3) como $theme(&primary;,$upper($4)) $+ .
- unset %ACL.*
- }
- else {
- set %data $+(id_usuario,$chr(9),usuario)
- set %values $+(NULL,$chr(9),$3)
- if ($dbInsert(%tabla,%data,%values)) {
- var %privilegio = 2
- var %tabla = user_prvs
- var %data = $+(id_user_prvs,$chr(9),id_usuario,$chr(9),id_privilegio)
- var %values = $+(NULL,$chr(9),$mysql_insert_id(%database),$chr(9),%privilegio)
- if ($dbInsert(%tabla,%data,%values)) {
- msg $nick $theme(&primary;,$3) ha sido dado de alta correctamente en el sistema de $theme(&primary;,$service_name) con privilegio de $theme(&warning;,$4) $+ .
- msg $nick Recuerde dar de alta en perfiles a $theme(&primary;,$3) $+ . Escriba $sintaxis(perfil,add)
- msg $3 Enhorabuena $theme(&primary;,$3) has sido dado de alta en el sistema de $service_name con privilegio de $theme(&primary;,$upper($4)) $+ .
- halt
- }
- else {
- msg $nick No se ha dado de alta a $3 en la tabla $theme(&bold;,user_prvs) $+ . Error: $+($chr(91),%mysql_errno,$chr(93),:) %mysql_errstr
- }
- }
- else {
- msg $nick No se ha dado de alta a $3 en la tabla $theme(&bold;,usuarios) $+ . Error: $+($chr(91),%mysql_errno,$chr(93),:) %mysql_errstr
- }
- }
- }
- }
- }
- elseif ($4 == LOCUTOR) {
- var %tabla = usuarios
- var %sql = SELECT U.id_usuario, U.usuario, P.id_privilegio, P.privilegio, UP.id_usuario, UP.id_privilegio FROM user_prvs AS UP INNER JOIN usuarios AS U ON UP.id_usuario = U.id_usuario INNER JOIN privilegios AS P ON UP.id_privilegio = P.id_privilegio WHERE U.usuario = $+($chr(39),$nick,$chr(39))
- if ($dbGet(%tabla,%sql)) {
- if ($dbResults) {
- set %ACL.usuario $hget(db_results,usuario)
- set %ACL.privilegio $hget(db_results,privilegio)
- set %data $+(id_usuario,$chr(9),usuario)
- set %values $+(NULL,$chr(9),$3)
- if ($dbInsert(%tabla,%data,%values)) {
- var %privilegio = 1
- var %tabla = user_prvs
- var %data = $+(id_user_prvs,$chr(9),id_usuario,$chr(9),id_privilegio)
- var %values = $+(NULL,$chr(9),$mysql_insert_id(%database),$chr(9),%privilegio)
- if ($dbInsert(%tabla,%data,%values)) {
- msg $nick $theme(&primary;,$3) ha sido dado de alta correctamente en el sistema de $theme(&primary;,$service_name) con privilegio de $theme(&warning;,$4) $+ .
- msg $nick Recuerde dar de alta en perfiles a $theme(&primary;,$3) $+ . Escriba $sintaxis(perfil,add)
- msg $3 Enhorabuena $theme(&primary;,$3) has sido dado de alta en el sistema de $service_name con privilegio de $theme(&primary;,$upper($4)) $+ .
- halt
- }
- else {
- msg $nick No se ha dado de alta a $3 en la tabla $theme(&bold;,user_prvs) $+ . Error: $+($chr(91),%mysql_errno,$chr(93),:) %mysql_errstr
- }
- }
- else {
- msg $nick No se ha dado de alta a $3 en la tabla $theme(&bold;,usuarios) $+ . Error: $+($chr(91),%mysql_errno,$chr(93),:) %mysql_errstr
- }
- }
- }
- }
- }
- }
- }
- ;Cierre de ACL ADD
- }
- ;Cierre comando ACL
- }
- ;Cierre de evento on TEXT
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement