Advertisement
Skreffnet

codigo incompleto

Jun 6th, 2020
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 3.13 KB | None | 0 0
  1. /**
  2. *
  3. * @event text
  4. *
  5. *
  6. * @global
  7. */
  8. ON *:TEXT:*:?: {
  9.  
  10.   tokenize 32 $1-
  11.  
  12.   if ($strip($1) == ACL) {
  13.  
  14.     if (!$2) {
  15.       msg $nick Sintaxis: $sintaxis(ACL)
  16.       msg $nick $sintaxis(ACL,ERROR)
  17.       halt
  18.     }
  19.  
  20.     if ($2 == ADD) {
  21.  
  22.       if (!$3) {
  23.         msg $nick Sintaxis: $sintaxis(ACL,ADD)
  24.         msg $nick $sintaxis(ACL,ERROR)
  25.         halt
  26.       }
  27.  
  28.       /*
  29.       * Declaro la variable %tabla para hacer la consulta a MySQL
  30.       */
  31.  
  32.       var %tabla = usuarios
  33.  
  34.       /*
  35.       * Declaro la variable %sql para declarar la consulta a realizar.
  36.       */
  37.       var %sql = SELECT usuario FROM usuarios WHERE usuario = $+($chr(39),$3,$chr(39))
  38.  
  39.       /*
  40.       * Ejecuto la consulta MySQL. Parametros %tabla, %sql
  41.       */
  42.       if ($dbGet(%tabla,%sql)) {
  43.  
  44.         /*
  45.         * Si hay resultados...
  46.         */
  47.  
  48.         if ($dbResults) {
  49.  
  50.           /*
  51.           * Comparo el parametro '$3' con el resultado dado por la consulta.
  52.           */
  53.           if ($3 == $hget(db_results,usuario)) || ($3 === $hget(db_results,usuario)) {
  54.  
  55.             /*
  56.             * Si coincide el resultado con el parametro pasado '$3' envio un mensaje de error.
  57.             */
  58.  
  59.             msg $nick El usuario $theme(&primary;,$3) ya existe en el sistema. Si deseas cambiar algún dato, escribe $sintaxis(ACL,CHANGE)  
  60.             error $theme(&primary;,$nick) intenta dar de alta a $theme(&primary;,$3) en el sistema. Usuario ya dado de alta.              
  61.  
  62.             /*
  63.             * Cierro la consulta ACL.
  64.             */      
  65.  
  66.             halt            
  67.  
  68.             /*
  69.             *Cierro llave de if () $dbResults()
  70.             */
  71.           }
  72.  
  73.           /*
  74.           * Si no hay resultados en la consulta, sigo adelante.
  75.           */
  76.  
  77.           if (!$dbResults) {
  78.  
  79.             /*
  80.             * Compruebo que exista el parámetro $4. En caso de no existir envio mensaje de error.
  81.             */
  82.  
  83.             if (!$4) {
  84.               msg $nick Sintaxis: $sintaxis(ACL,ADD)
  85.               msg $nick $sintaxis(ACL,ERROR)
  86.               halt
  87.             }
  88.  
  89.             /*
  90.             * Compruebo si que el parametro '$4' coincide o no, con una de las opciones válidas.
  91.             */
  92.  
  93.             if ($4 != locutor) && ($4 != coder) && ($4 != coord) && ($4 != admin) {
  94.  
  95.               /*
  96.               * En caso de no coincidir con ninguna opción válida, envio mensaje de error y salgo de ACL.
  97.               */
  98.  
  99.               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)
  100.               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.
  101.  
  102.               /*
  103.               *Cierro la consulta. $4 No coincide con ningún valor válido.
  104.               */
  105.             }
  106.  
  107.             /*
  108.             * El parámetro '$4' coincide con 'ADMIN'
  109.             */
  110.  
  111.             if ($4 == admin) {
  112.  
  113.               /*
  114.               * Declaro la variable %tabla, para hacer la consulta MySQL
  115.               */
  116.  
  117.               var %tabla = usuarios
  118.  
  119.               /*
  120.               * Declaro la variable %sql, con la consulta a realizar.
  121.               */
  122.               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))
  123.  
  124.               /*
  125.               * Ejecuto la consulta MySQL. Parametros: %tabla, %sql
  126.               */
  127.  
  128.               if ($dbGet(%tabla,%sql)) {
  129.  
  130.                 /*
  131.                 * En caso de haber resultados...
  132.                 */
  133.  
  134.                 if ($dbResults) {
  135.  
  136.                   /*
  137.                   * Declaro las variables %ACL.usuario y %ACL.privilegio con los resultados dados por la consulta.
  138.                   */
  139.  
  140.                   set %ACL.usuario $hget(db_results,usuario)
  141.                   set %ACL.privilegio $hget(db_results,privilegio)  
  142.  
  143.                   /*
  144.                   * Compruebo si el privilegio de '$nick' no es 'ROOT' o 'CODER'
  145.                   */
  146.  
  147.                   if (%ACL.privilegio != ROOT) && (%ACL.privilegio != CODER) {
  148.  
  149.                     /*
  150.                     * Borro las variables %ACL.*
  151.                     */    
  152.  
  153.                     unset %ACL.*    
  154.  
  155.                     /*
  156.                     * Si el privilegio no es ni 'ROOT' ni 'CODER' envio mensaje de error
  157.                     */
  158.  
  159.                     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.) $&
  160.                       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á.
  161.  
  162.                     error Privilegios insuficientes para añadir a $theme(&primary;,$3) como $theme(&primary;,$upper($4)) $+ . $&
  163.                       Se le ha indicado a $theme(&primary;,$nick) que se ponga en contacto con el departamento al cliente.
  164.  
  165.                     /*
  166.                     * Cierro la consulta y salgo de ACL.
  167.                     */
  168.  
  169.                   }
  170.  
  171.                   /*
  172.                   * Si el parametro '$4' es igual a 'CODER' o 'ROOT'
  173.                   */
  174.  
  175.                   if ($4 == ROOT) || ($4 == CODER) {
  176.  
  177.                     /*
  178.                     * Declaro la variable %tabla
  179.                     */
  180.  
  181.                     set %tabla = usuarios
  182.  
  183.                     /*
  184.                     *
  185.                     * Declaro la variable %data
  186.                     *
  187.                     * Esta variable servirá para decirle a $dbInsert()
  188.                     * que parametros existen en la tabla %tabla
  189.                     *
  190.                     * Separo los valores con $chr(9) dentro de un $+()
  191.                     *
  192.                     * El orden declarado en la variable %data debe coincidir con los de la tabla %tabla de MySQL.
  193.                     *
  194.                     */
  195.  
  196.                     set %data $+(id_usuario,$chr(9),usuario)
  197.  
  198.                     /*
  199.                     *
  200.                     * Declaro la variable %values
  201.                     *
  202.                     * Esta variable servirá para decirle a $dbInsert()
  203.                     * que parametros debe introducir en las filas de %data
  204.                     *
  205.                     * El orden declarado en la variable %values debe coincidir con los de la variable %data  
  206.                     *
  207.                     */
  208.  
  209.                     set %values $+(NULL,$chr(9),$3)
  210.  
  211.                     /*
  212.                     * Ejecuto $dbInsert() con los parametros %tabla, %data y %values
  213.                     *
  214.                     * Si $dbInsert() devuelven $true entro dentro del if ()  
  215.                     */
  216.  
  217.                     if ($dbInsert(%tabla,%data,%values)) {
  218.  
  219.                       /*
  220.                       * Declaro la variable %privilegio
  221.                       *
  222.                       * Declaro el valor de la variable %privilegio con el valor de 'ID' que corresponde a la columna 'privilegio'de la tabla 'privilegios'.
  223.                       * Dicho valor debe coincidir con el parametro '$4'
  224.                       *
  225.                       * Ejemplo:
  226.                       *
  227.                       * id_privilegio: 4
  228.                       * privilegio: ADMIN
  229.                       *
  230.                       * $4 = 'ADMIN'
  231.                       *
  232.                       */
  233.  
  234.                       var %privilegio = 4
  235.  
  236.                       /*
  237.                       * Declaro la variable %tabla
  238.                       */
  239.  
  240.                       var %tabla = user_prvs
  241.  
  242.                       /*
  243.                       * Declaro la variable %data
  244.                       *
  245.                       * Esta variable servirá para decirle a $dbInsert()
  246.                       * que parametros existen en la tabla %tabla
  247.                       *
  248.                       * Separo los valores con $chr(9) dentro de un $+()
  249.                       *
  250.                       * El orden declarado en la variable %data debe coincidir con los de la tabla %tabla de MySQL.
  251.                       */
  252.  
  253.                       var %data = $+(id_user_prvs,$chr(9),id_usuario,$chr(9),id_privilegio)
  254.  
  255.                       /*
  256.                       * Declaro la variable %values
  257.                       *
  258.                       * Esta variable servirá para decirle a $dbInsert()
  259.                       * que parametros debe introducir en las filas de %data
  260.                       *
  261.                       * El orden declarado en la variable %values debe coincidir con los de la variable %data  
  262.                       */
  263.  
  264.                       var %values = $+(NULL,$chr(9),$mysql_insert_id(%database),$chr(9),%privilegio)
  265.  
  266.                       /*
  267.                       * Ejecuto $dbInsert() con los parametros %tabla, %data y %values
  268.                       *
  269.                       * Si $dbInsert() devuelven $true entro dentro del if ()  
  270.                       */
  271.  
  272.                       if ($dbInsert(%tabla,%data,%values)) {
  273.  
  274.                         /*
  275.                         * Envio mensaje de confirmación.
  276.                         */
  277.  
  278.                         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) $+ .
  279.  
  280.                         /*
  281.                         * Envio mensaje recordatorio, para cumplementar los datos del perfil de '$3'
  282.                         */
  283.  
  284.                         msg $nick Recuerde dar de alta en perfiles a $theme(&primary;,$3) $+ . Escriba $sintaxis(perfil,add)
  285.  
  286.                         /*
  287.                         * Envio mensaje a '$3' dandole a conocer que ha sido dado de alta en el sistema.
  288.                         */
  289.  
  290.                         msg $3 Enhorabuena $theme(&primary;,$3) has sido dado de alta en el sistema de $service_name con privilegio de $theme(&primary;,$upper($4)) $+ .
  291.  
  292.                         /*
  293.                         * Envio mensaje a '$3' sugiriendole mirar el comando de ayuda, para su nivel.
  294.                         */
  295.  
  296.                         msg $3 Desde la administración te sugerimos que revises los comandos disponibles para tu nivel de acceso, escribiendo, $sintaxis(help)
  297.  
  298.                         /*
  299.                         * Salgo de ACL.
  300.                         */
  301.  
  302.                         halt        
  303.  
  304.                         /*
  305.                         * Cierro el if () de $dbInsert()
  306.                         */
  307.  
  308.                       }
  309.  
  310.                       /*
  311.                       * Abro else { } Si el resultado de $dbInsert() es $false
  312.                       */
  313.  
  314.                       else {
  315.  
  316.                         /*
  317.                         * Envio mensaje de error e informo.
  318.                         */
  319.  
  320.                         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
  321.                         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
  322.  
  323.                         /*
  324.                         * Cierro else { } de $dbInsert(), consulta para la tabla 'user_prvs'
  325.                         */
  326.  
  327.                       }
  328.  
  329.                       /*
  330.                       * Cierro el if () de $dbInsert()
  331.                       */
  332.  
  333.                     }
  334.  
  335.                     /*
  336.                     * Abro else {} Si el resultado de $dbInsert() es $false
  337.                     */
  338.  
  339.  
  340.                     else {
  341.  
  342.                       /*
  343.                       * Envio mensaje de error e informo.
  344.                       */
  345.  
  346.                       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
  347.  
  348.                       /*
  349.                       * Cierro else { } de $dbInsert() de la tabla 'usuarios'
  350.                       */
  351.  
  352.                     }
  353.  
  354.                     /*
  355.                     * Cierro if () $4 == ROOT OR $4 == CODER
  356.                     */
  357.  
  358.                   }
  359.  
  360.                   /*
  361.                   * Cierro if () $dbResults()
  362.                   */
  363.  
  364.                 }
  365.  
  366.                 /*
  367.                 * Cierro if () $dbGet()
  368.                 */
  369.  
  370.               }
  371.  
  372.               /*
  373.               * Cierro if () $4 == ADMIN
  374.               */
  375.             }
  376.  
  377.             elseif ($4 == COORD) {
  378.  
  379.               var %tabla = usuarios
  380.               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))
  381.  
  382.               if ($dbGet(%tabla,%sql)) {
  383.  
  384.                 if ($dbResults) {
  385.  
  386.                   set %ACL.usuario $hget(db_results,usuario)
  387.                   set %ACL.privilegio $hget(db_results,privilegio)  
  388.  
  389.                   if (%ACL.privilegio != ROOT) && (%ACL.privilegio != ADMIN) && (%ACL.privilegio != CODER) {
  390.                     msg $nick $theme(&danger;,[ERROR]:) Privilegios insuficientes. Contacte con un administrador o dueño de la radio.
  391.                     error Privilegios insuficientes para añadir a $theme(&primary;,$3) como $theme(&primary;,$upper($4)) $+ .  
  392.                     unset %ACL.*                    
  393.                   }
  394.                   else {
  395.                     set %data $+(id_usuario,$chr(9),usuario)
  396.                     set %values $+(NULL,$chr(9),$3)
  397.                     if ($dbInsert(%tabla,%data,%values)) {
  398.                       var %privilegio = 3
  399.                       var %tabla = user_prvs
  400.                       var %data = $+(id_user_prvs,$chr(9),id_usuario,$chr(9),id_privilegio)
  401.                       var %values = $+(NULL,$chr(9),$mysql_insert_id(%database),$chr(9),%privilegio)
  402.                       if ($dbInsert(%tabla,%data,%values)) {
  403.                         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) $+ .
  404.                         msg $nick Recuerde dar de alta en perfiles a $theme(&primary;,$3) $+ . Escriba $sintaxis(perfil,add)
  405.                         msg $3 Enhorabuena $theme(&primary;,$3) has sido dado de alta en el sistema de $service_name con privilegio de $theme(&primary;,$upper($4)) $+ .
  406.                         halt                
  407.                       }
  408.                       else {
  409.                         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
  410.                       }
  411.                     }
  412.                     else {
  413.                       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
  414.                     }
  415.                   }
  416.                 }
  417.               }
  418.             }
  419.             elseif ($4 == CODER) {
  420.  
  421.               var %tabla = usuarios
  422.               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))
  423.  
  424.               if ($dbGet(%tabla,%sql)) {
  425.  
  426.                 if ($dbResults) {
  427.  
  428.                   set %ACL.usuario $hget(db_results,usuario)
  429.                   set %ACL.privilegio $hget(db_results,privilegio)  
  430.  
  431.                   if (%ACL.privilegio != ROOT)  {
  432.  
  433.                     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) $&
  434.  
  435.                     error Privilegios insuficientes para añadir a $theme(&primary;,$3) como $theme(&primary;,$upper($4)) $+ .  
  436.  
  437.                     unset %ACL.*                    
  438.                   }
  439.                   else {
  440.                     set %data $+(id_usuario,$chr(9),usuario)
  441.                     set %values $+(NULL,$chr(9),$3)
  442.                     if ($dbInsert(%tabla,%data,%values)) {
  443.                       var %privilegio = 2
  444.                       var %tabla = user_prvs
  445.                       var %data = $+(id_user_prvs,$chr(9),id_usuario,$chr(9),id_privilegio)
  446.                       var %values = $+(NULL,$chr(9),$mysql_insert_id(%database),$chr(9),%privilegio)
  447.                       if ($dbInsert(%tabla,%data,%values)) {
  448.                         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) $+ .
  449.                         msg $nick Recuerde dar de alta en perfiles a $theme(&primary;,$3) $+ . Escriba $sintaxis(perfil,add)
  450.                         msg $3 Enhorabuena $theme(&primary;,$3) has sido dado de alta en el sistema de $service_name con privilegio de $theme(&primary;,$upper($4)) $+ .
  451.                         halt                
  452.                       }
  453.                       else {
  454.                         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
  455.                       }
  456.                     }
  457.                     else {
  458.                       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
  459.                     }
  460.                   }
  461.                 }
  462.               }
  463.             }
  464.             elseif ($4 == LOCUTOR) {
  465.  
  466.               var %tabla = usuarios
  467.               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))
  468.  
  469.               if ($dbGet(%tabla,%sql)) {
  470.  
  471.                 if ($dbResults) {
  472.                   set %ACL.usuario $hget(db_results,usuario)
  473.                   set %ACL.privilegio $hget(db_results,privilegio)  
  474.                   set %data $+(id_usuario,$chr(9),usuario)
  475.                   set %values $+(NULL,$chr(9),$3)
  476.                   if ($dbInsert(%tabla,%data,%values)) {
  477.                     var %privilegio = 1
  478.                     var %tabla = user_prvs
  479.                     var %data = $+(id_user_prvs,$chr(9),id_usuario,$chr(9),id_privilegio)
  480.                     var %values = $+(NULL,$chr(9),$mysql_insert_id(%database),$chr(9),%privilegio)
  481.                     if ($dbInsert(%tabla,%data,%values)) {
  482.                       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) $+ .
  483.                       msg $nick Recuerde dar de alta en perfiles a $theme(&primary;,$3) $+ . Escriba $sintaxis(perfil,add)
  484.                       msg $3 Enhorabuena $theme(&primary;,$3) has sido dado de alta en el sistema de $service_name con privilegio de $theme(&primary;,$upper($4)) $+ .
  485.                       halt                
  486.                     }
  487.                     else {
  488.                       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
  489.                     }
  490.                   }
  491.                   else {
  492.                     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
  493.                   }
  494.                 }
  495.               }
  496.             }
  497.           }
  498.         }
  499.       }
  500.  
  501.       ;Cierre de ACL ADD
  502.     }
  503.     ;Cierre comando ACL
  504.   }
  505.   ;Cierre de evento on TEXT
  506. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement