1SELECT * FROM osticket.ost_user a 2join simpleticket.ost_user_account b on a.id = b.user_id 3join simpleticket.ost_user_email c on c.user_id=a.id
1SELECT * FROM osticket.ost_user a 2join simpleticket.ost_user_email c on c.user_id=a.id
1INSERT INTO `osticket`.`ost_user` 2(`org_id`,`default_email_id`,`status`,`name`,`created`,`updated`) 3VALUES 4(0,0,0,'usuarionuevo',CURDATE(),CURDATE()); 5 6INSERT INTO `osticket`.`ost_user_email`
7( 8`user_id`, 9`address` 10)VALUES 11( 12(SELECT a.id FROM osticket.ost_user a WHERE name = 'usuarionuevo'),
13'usuari...@intranet1.net.ve' 14);
1INSERT INTO `osticket`.`ost_staff`
2(
3/*`staff_id`, no necesario, es autoincrement*/
4`group_id`, /* requere de select de un grupo */
5`dept_id`, /* requeire de select de un departamento */
6`timezone_id`, /*requeire de select de un tiempo */
7`username`,
8`firstname`,
9`lastname`,
10`passwd`,
11/*`backend`, para cualquiera no es necesario especificarlo */
12`email`,
13/*`phone`, no necesario */
14/*`phone_ext`, no necesario */
15/*`mobile`, no necesario */
16`signature`, /* opcional */
17`notes`, /* quien es */
18`isactive`, /*1 = activo 0 inactivo*/
19`isadmin`, /*1 = administrador 0 agente*/
20`isvisible`, /*1 = aparece para los demas agentes 0 esta oculto y solo lo ven admins */
21`onvacation`, /*1 = no esta trabajando*/
22`assigned_only`, /*1 = no ve tickets sino los que tiene por hacer 0 ve los tickets de su grupo*/
23`show_assigned_tickets`, /* ?? see https://github.com/osTicket/osTicket-1.8/issues/2026#issuecomment-119327570*/
24`daylight_saving`, /* 0 do not use the date saving*/
25`change_passwd`, /* 1= next login must change password, 0= user changes in any moment */
26`max_page_size`, /* 0 */
27`auto_refresh_rate`, /* 0 */
28/*`default_signature_type`,/* not necesary, none: see https://github.com/osTicket/osTicket-1.8/issues/2026#issuecomment-119327570*/
29/*`default_paper_size`,/* not necesary specified, default are letter*/
30`created`, /* must manually puts date here*/
31`lastlogin`,/* NULL */
32`passwdreset`,/* NULL*/
33`updated`
34) /* must manually puts date here*/
35VALUES
36(
37<{staff_id: }>,
38<{group_id: 0}>,
39<{dept_id: 0}>,
40<{timezone_id: 0}>,
41<{username: }>,
42<{firstname: }>,
43<{lastname: }>,
44<{passwd: }>,
45<{backend: }>,
46<{email: }>,
47<{phone: }>,
48<{phone_ext: }>,
49<{mobile: }>,
50<{signature: }>,
51<{notes: }>,
52<{isactive: 1}>,
53<{isadmin: 0}>,
54<{isvisible: 1}>,
55<{onvacation: 0}>,
56<{assigned_only: 0}>,
57<{show_assigned_tickets: 0}>,
58<{daylight_saving: 0}>,
59<{change_passwd: 0}>,
60<{max_page_size: 0}>,
61<{auto_refresh_rate: 0}>,
62<{default_signature_type: none}>,
63<{default_paper_size: Letter}>,
64<{created: }>,
65<{lastlogin: }>,
66<{passwdreset: }>,
67<{updated: }>
68);
Son tres lugares, una tabla de usuarios sean reales o no, es a quien el ticket se le crea, otra tabla para que este sea registrado como de sistema, y una tercera para enlazar que correo tiene este usuario como tal sea o no interno o desconocido.
1/* creacion de un usuario cualquiera */ 2INSERT INTO `ost_user` 3 (`org_id`,`default_email_id`,`status`,`name`,`created`,`updated`) 4VALUES 5 (0,0,0,'usuarionuevo2',CURDATE(),CURDATE()); 6/* creacion como cuenta interna */ 7INSERT INTO `ost_user_account` 8( 9 `user_id`, 10 `status`,`timezone_id`,`lang`, 11 `username`,`passwd`,`backend`,`registered`) 12VALUES 13( 14 (SELECT `id` FROM `ost_user` WHERE `name` = 'usuarionuevo2'), 15 9,9 /* 9 = Venezuela*/,NULL, 16 'usuarionuevo2','clavenuevo',NULL,CURDATE() 17); 18/* creamos el correo al usuario creado */ 19INSERT INTO `ost_user_email` 20 (`user_id`,`address`) 21VALUES 22( 23 (SELECT `id` FROM `ost_user` WHERE `name` = 'usuarionuevo2'), 'usuari...@intranet1.net.ve' 24); 25/* ahora enlazar el correo correcto */ 26SET SQL_SAFE_UPDATES=0; 27UPDATE `ost_user` 28SET `default_email_id` = (SELECT `id` FROM `ost_user_email` WHERE `address` = 'usuari...@intranet1.net.ve') 29WHERE `id` = (SELECT `user_id` FROM `ost_user_email` WHERE `address` = 'usuari...@intranet1.net.ve'); 30SET SQL_SAFE_UPDATES=1;
En el siguiente consulta sql se reporta los usuarios que reportan que tienen clave ya generada (tabla user_account) y acceso ya permitido (valor 9 en status):
1SELECT c.passwd, c.username, u.correo, c.status, c.lang, u.org_id, u.id, u.user_id FROM
2(
3 SELECT a.id, a.org_id, b.user_id as user_id, b.address as correo
4 FROM ost_user as a JOIN ost_user_email as b on a.id = b.user_id LIMIT 0, 1000
5) as u
6LEFT JOIN ost_user_account as c
7ON u.user_id = c.user_id LIMIT 0, 1000
El resultado es asi:
passwd | username | correo | status | lang | org | id | user_id |
'clavenuevo' | 'usuarionuevo2' | 'usuari...@intranet1.net.ve' | '9' | NULL | '0' | '375' | '375' |
1UPDATE ost_staff SET passwd = md5('<clavenueva>') WHERE username = '<nombreusuario>'
1UPDATE ost_user_account SET passwd = md5('<clavenueva>') WHERE username = '<nombreusuario>'
UPDATE ost_user_account SET passwd = md5('<clavenueva>') WHERE username = '<nombreusuario>'