-- phpMyAdmin SQL Dump -- version 3.3.10deb1 -- http://www.phpmyadmin.net -- -- Хост: localhost -- Время создания: Янв 25 2013 г., 15:57 -- Версия сервера: 5.1.54 -- Версия PHP: 5.3.5-1ubuntu7.7 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- База данных: `cams` -- CREATE DATABASE `cams` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `cams`; -- -------------------------------------------------------- -- -- Структура таблицы `cams_groups` -- CREATE TABLE IF NOT EXISTS `cams_groups` ( `group_id` int(5) unsigned NOT NULL AUTO_INCREMENT, `group_name` varchar(255) CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`group_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ; -- -- Дамп данных таблицы `cams_groups` -- INSERT INTO `cams_groups` (`group_id`, `group_name`) VALUES (1, 'Первая группа'), (15, 'vasia'), (16, 'Vasia Pupkin'), (17, 'Вася'), (22, 'wwwwwwwwww'); -- -------------------------------------------------------- -- -- Структура таблицы `cams_list` -- CREATE TABLE IF NOT EXISTS `cams_list` ( `cam_id` int(5) unsigned NOT NULL AUTO_INCREMENT, `cam_priority` int(5) unsigned NOT NULL DEFAULT '99' COMMENT 'Приоритет включения камеры, могут повторятся. Чем меньше - тем приоритетней.', `cam_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'Имя для вебморды', `cam_alias` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT 'ТОЛЬКО ЛАТИНИЦА. Имя для скриптов/VLC.', `cam_protocol` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT 'http://', `cam_user` varchar(255) CHARACTER SET utf8 DEFAULT NULL, `cam_pass` varchar(255) CHARACTER SET utf8 DEFAULT NULL, `cam_addr` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT 'Не только IP:Port, но и путь до файла с видео. ( GET параметры в том числе)', `cam_enabled` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Вкл/Выкл камеру. По умолчанию - Выкл.', `need_transcode` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Определяет необходимо ли использовать перекодировку потока камеры из изначального в H264', `need_convert` tinyint(1) unsigned NOT NULL DEFAULT '1', `cam_width` int(5) unsigned NOT NULL DEFAULT '640', `cam_height` int(5) unsigned NOT NULL DEFAULT '480', `allowed_to_all` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Доступна ли камера всем юзерам ( ''anon'' в том числе). 0 - запрещено, 1 - разрешено, 2 - разрешена только онлайн камера.', `cam_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT ' 0 - камера не задана в vlc. 1 - камера задана, вопроизводится. -1 - камера задана, но остановлена.', PRIMARY KEY (`cam_id`), UNIQUE KEY `cam_alias` (`cam_alias`), KEY `cam_priority` (`cam_priority`,`cam_addr`), KEY `cam_enabled` (`cam_enabled`), KEY `need_transcode` (`need_transcode`), KEY `allowed_to_all` (`allowed_to_all`), KEY `cam_status` (`cam_status`), KEY `need_convert` (`need_convert`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ; -- -- Дамп данных таблицы `cams_list` -- INSERT INTO `cams_list` (`cam_id`, `cam_priority`, `cam_name`, `cam_alias`, `cam_protocol`, `cam_user`, `cam_pass`, `cam_addr`, `cam_enabled`, `need_transcode`, `need_convert`, `cam_width`, `cam_height`, `allowed_to_all`, `cam_status`) VALUES (1, 5, 'Камера №5', 'cam5', 'http://', 'root', 'gbpltw', '10.240.226.26/axis-cgi/mjpg/video.cgi?resolution=640x480&compression=10&clock=1&date=1', 1, 1, 1, 640, 480, 0, 1), (2, 2, 'Тестовая камера №2', 'cam2', 'http://', 'root', 'gbpltw', '10.240.226.59/axis-cgi/mjpg/video.cgi?resolution=640x480&compression=10&clock=1&date=1', 1, 1, 1, 640, 480, 0, 1), (3, 3, 'Тестовая камера №3', 'cam3', 'http://', 'root', 'gbpltw', '10.240.226.14/axis-cgi/mjpg/video.cgi?resolution=640x480&compression=10&clock=1&date=1', 1, 1, 1, 640, 480, 0, 1), (4, 99, 'Китаец', 'china', 'http://', 'admin', '', '10.240.230.25/videostream.cgi?resolution=32&rate=0', 0, 1, 1, 640, 480, 1, 0), (19, 4, '000', 'cam', '', '', '', 'add', 1, 0, 1, 640, 480, 2, 0), (20, 99, 'ppppppppppppppp', 'pppppppppppp', '', '', '', '0000', 0, 0, 0, 640, 480, 0, 0); -- -------------------------------------------------------- -- -- Структура таблицы `cams_retries` -- CREATE TABLE IF NOT EXISTS `cams_retries` ( `user_id` int(5) unsigned NOT NULL, `client_ip` varchar(16) CHARACTER SET utf8 NOT NULL, `client_retries` int(2) NOT NULL, `last_retry` int(11) NOT NULL, UNIQUE KEY `user_id_2` (`user_id`,`client_ip`), KEY `user_id` (`user_id`), KEY `last_retry` (`last_retry`), KEY `client_ip` (`client_ip`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Дамп данных таблицы `cams_retries` -- INSERT INTO `cams_retries` (`user_id`, `client_ip`, `client_retries`, `last_retry`) VALUES (8, '10.240.230.22', 2, 1358863396), (17, '10.240.230.22', 2, 1358863466), (22, '10.240.230.22', 1, 1359066469); -- -------------------------------------------------------- -- -- Структура таблицы `cams_rules` -- CREATE TABLE IF NOT EXISTS `cams_rules` ( `user_id` int(5) unsigned NOT NULL, `cam_id` int(5) unsigned NOT NULL, `rule_status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0 - запрещено, 1 - разрешено, 2 - разрешена только онлайн камера', UNIQUE KEY `cross` (`user_id`,`cam_id`), KEY `cam_id` (`cam_id`), KEY `user_id` (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Дамп данных таблицы `cams_rules` -- INSERT INTO `cams_rules` (`user_id`, `cam_id`, `rule_status`) VALUES (7, 1, 1), (7, 2, 2), (8, 2, 1), (8, 3, 2), (8, 1, 0), (21, 19, 1); -- -------------------------------------------------------- -- -- Структура таблицы `cams_rules_groups` -- CREATE TABLE IF NOT EXISTS `cams_rules_groups` ( `group_id` int(5) unsigned NOT NULL, `cam_id` int(5) unsigned NOT NULL, `rule_status` tinyint(1) unsigned NOT NULL DEFAULT '0', UNIQUE KEY `group_id` (`group_id`,`cam_id`), KEY `cam_id` (`cam_id`), KEY `rule_status` (`rule_status`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Дамп данных таблицы `cams_rules_groups` -- INSERT INTO `cams_rules_groups` (`group_id`, `cam_id`, `rule_status`) VALUES (17, 1, 2), (1, 20, 1), (1, 2, 0), (1, 3, 1); -- -------------------------------------------------------- -- -- Структура таблицы `cams_users` -- CREATE TABLE IF NOT EXISTS `cams_users` ( `user_id` int(5) unsigned NOT NULL AUTO_INCREMENT, `group_id` int(5) unsigned DEFAULT NULL, `user_login` varchar(255) CHARACTER SET utf8 NOT NULL, `user_pass` varchar(32) CHARACTER SET utf8 NOT NULL DEFAULT '', `user_salt` varchar(15) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT 'Генерится автоматически на стороне perl''a', `user_info` varchar(255) CHARACTER SET utf8 DEFAULT NULL, `is_admin` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Админу доступны все камеры. 0 - не админ. 1 - админ.', PRIMARY KEY (`user_id`), UNIQUE KEY `user_login` (`user_login`), KEY `is_admin` (`is_admin`), KEY `user_group` (`group_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ; -- -- Дамп данных таблицы `cams_users` -- INSERT INTO `cams_users` (`user_id`, `group_id`, `user_login`, `user_pass`, `user_salt`, `user_info`, `is_admin`) VALUES (0, NULL, 'anon', '', '', 'Анонимная учётка (костыль по id=0), её получают все незалогиненные пользователи.', 0), (7, 1, 'first', '38e445fab7f877eaf9fed50e0fd1b3af', 'S0Galw4jfQnqIJi', '', 0), (8, 1, 'second', 'a6ded5fb92e90e0685c8a5f0381a47e7', 'cVzPcCQiViLmue3', NULL, 0), (1, NULL, 'admin', '21232f297a57a5a743894a0e4a801fc3', '', 'Админ :3', 1), (17, NULL, 'lol', '01ef8ec0a00b8289d8cb9f390d148d96', 'Xbj7T0ICsCpFNhZ', 'lolzz', 0), (23, 22, 'qqqqqqqq', '3a99fc8c007b63bcb64d3e165e0eceb9', 'agcowD2KwX2UmMr', '', 0), (21, 17, 'vasa', 'd208259290e4c634ddb153a6fb0eecae', 'aGzyANyKuQbKtbm', '', 0); -- -------------------------------------------------------- -- -- Дублирующая структура для представления `view_rules` -- CREATE TABLE IF NOT EXISTS `view_rules` ( `cam_id` int(5) unsigned ,`user_id` int(5) unsigned ,`group_id` int(5) unsigned ,`user_login` varchar(255) ,`cam_name` varchar(255) ,`allowed_to_all` tinyint(4) ,`is_admin` tinyint(1) unsigned ,`rule_status_group` tinyint(1) unsigned ,`rule_status` tinyint(1) unsigned ,`result` decimal(4,0) ); -- -------------------------------------------------------- -- -- Структура для представления `view_rules` -- DROP TABLE IF EXISTS `view_rules`; CREATE ALGORITHM=UNDEFINED DEFINER=`arkham`@`%` SQL SECURITY DEFINER VIEW `view_rules` AS select `cl`.`cam_id` AS `cam_id`,`cu`.`user_id` AS `user_id`,`cu`.`group_id` AS `group_id`,`cu`.`user_login` AS `user_login`,`cl`.`cam_name` AS `cam_name`,`cl`.`allowed_to_all` AS `allowed_to_all`,`cu`.`is_admin` AS `is_admin`,`crg`.`rule_status` AS `rule_status_group`,`cr`.`rule_status` AS `rule_status`,(case when ((`cl`.`allowed_to_all` > 0) and isnull(`crg`.`rule_status`) and isnull(`cr`.`rule_status`) and (`cu`.`is_admin` = 0)) then `cl`.`allowed_to_all` when ((`crg`.`rule_status` is not null) and isnull(`cr`.`rule_status`) and (`cu`.`is_admin` = 0)) then `crg`.`rule_status` when ((`cr`.`rule_status` is not null) and (`cu`.`is_admin` = 0)) then `cr`.`rule_status` when (`cu`.`is_admin` > 0) then `cu`.`is_admin` else 0 end) AS `result` from (((`cams_list` `cl` join `cams_users` `cu`) left join `cams_rules` `cr` on(((`cr`.`user_id` = `cu`.`user_id`) and (`cr`.`cam_id` = `cl`.`cam_id`)))) left join `cams_rules_groups` `crg` on(((`crg`.`group_id` = `cu`.`group_id`) and (`crg`.`cam_id` = `cl`.`cam_id`)))) order by `cu`.`user_id`;