From d2ba64924092d7695b4e126e2e8248926ee8700b Mon Sep 17 00:00:00 2001 From: Michael Fürmann <michael@spicyweb.de> Date: Tue, 17 Feb 2015 16:02:32 -0500 Subject: [PATCH] Added XMPP Users List and DB Table --- interface/web/mail/templates/xmpp_user_list.htm | 74 ++++++++++++++ install/sql/ispconfig3.sql | 29 +++++ interface/web/mail/lib/module.conf.php | 4 interface/web/mail/xmpp_user_list.php | 39 +++++++ interface/web/mail/lib/lang/en_xmpp_user_list.lng | 8 + interface/web/mail/list/xmpp_user.list.php | 81 ++++++++++++++++ install/sql/incremental/upd_0081.sql | 28 +++++ 7 files changed, 259 insertions(+), 4 deletions(-) diff --git a/install/sql/incremental/upd_0081.sql b/install/sql/incremental/upd_0081.sql index f525e72..5acfc73 100644 --- a/install/sql/incremental/upd_0081.sql +++ b/install/sql/incremental/upd_0081.sql @@ -52,4 +52,30 @@ PRIMARY KEY (`domain_id`), KEY `server_id` (`server_id`,`domain`), KEY `domain_active` (`domain`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; \ No newline at end of file +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- +-- Table structure for table `xmpp_user` +-- + +CREATE TABLE `xmpp_user` ( + `xmppuser_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_id` int(11) unsigned NOT NULL default '0', + `xmpp_domain_id` int(11) unsigned NOT NULL default '0', + `login` varchar(255) NOT NULL default '', + `jid` varchar(255) NOT NULL default '', + `password` varchar(255) NOT NULL default '', + `is_domain_admin` enum('n','y') NOT NULL default 'n', + `is_muc_admin` enum('n','y') NOT NULL default 'n', + `active` enum('n','y') NOT NULL DEFAULT 'n', + PRIMARY KEY (`xmppuser_id`), + KEY `server_id` (`server_id`,`jid`), + KEY `jid_active` (`jid`,`active`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- \ No newline at end of file diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 1f5b418..0b5ce40 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -1964,7 +1964,7 @@ -- -------------------------------------------------------- -- --- Table structure for table `xmpp_domain` +-- Table structure for table `xmpp_domain` -- CREATE TABLE `xmpp_domain` ( @@ -2008,6 +2008,33 @@ KEY `domain_active` (`domain`,`active`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +-- -------------------------------------------------------- + +-- +-- Table structure for table `xmpp_user` +-- + +CREATE TABLE `xmpp_user` ( + `xmppuser_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_id` int(11) unsigned NOT NULL default '0', + `xmpp_domain_id` int(11) unsigned NOT NULL default '0', + `login` varchar(255) NOT NULL default '', + `jid` varchar(255) NOT NULL default '', + `password` varchar(255) NOT NULL default '', + `is_domain_admin` enum('n','y') NOT NULL default 'n', + `is_muc_admin` enum('n','y') NOT NULL default 'n', + `active` enum('n','y') NOT NULL DEFAULT 'n', + PRIMARY KEY (`xmppuser_id`), + KEY `server_id` (`server_id`,`jid`), + KEY `jid_active` (`jid`,`active`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- -- -------------------------------------------------------- -- -------------------------------------------------------- diff --git a/interface/web/mail/lib/lang/en_xmpp_user_list.lng b/interface/web/mail/lib/lang/en_xmpp_user_list.lng new file mode 100644 index 0000000..db88b0d --- /dev/null +++ b/interface/web/mail/lib/lang/en_xmpp_user_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'XMPP User Accounts'; +$wb["jid_txt"] = 'Jabber ID'; +$wb["is_domain_admin_txt"] = 'Domain admin'; +$wb["is_muc_admin_txt"] = 'MUC admin'; +$wb["add_new_record_txt"] = 'Add new user'; +$wb["active_txt"] = 'Active'; +?> \ No newline at end of file diff --git a/interface/web/mail/lib/module.conf.php b/interface/web/mail/lib/module.conf.php index 7f828d1..24e45d0 100644 --- a/interface/web/mail/lib/module.conf.php +++ b/interface/web/mail/lib/module.conf.php @@ -163,8 +163,8 @@ { $items[] = array( 'title' => 'XMPP Account', 'target' => 'content', - 'link' => 'mail/xmpp_account_list.php', - 'html_id' => 'xmpp_account_list'); + 'link' => 'mail/xmpp_user_list.php', + 'html_id' => 'xmpp_user_list'); } if(count($items)) diff --git a/interface/web/mail/list/xmpp_user.list.php b/interface/web/mail/list/xmpp_user.list.php new file mode 100644 index 0000000..f9a2415 --- /dev/null +++ b/interface/web/mail/list/xmpp_user.list.php @@ -0,0 +1,81 @@ +<?php + +/* + Datatypes: + - INTEGER + - DOUBLE + - CURRENCY + - VARCHAR + - TEXT + - DATE +*/ + + + +// Name of the list +$liste["name"] = "xmpp_user"; + +// Database table +$liste["table"] = "xmpp_user"; + +// Index index field of the database table +$liste["table_idx"] = "xmppuser_id"; + +// Search Field Prefix +$liste["search_prefix"] = "search_"; + +// Records per page +$liste["records_per_page"] = "15"; + +// Script File of the list +$liste["file"] = "xmpp_user_list.php"; + +// Script file of the edit form +$liste["edit_file"] = "xmpp_user_edit.php"; + +// Script File of the delete script +$liste["delete_file"] = "xmpp_user_del.php"; + +// Paging Template +$liste["paging_tpl"] = "templates/paging.tpl.htm"; + +// Enable auth +$liste["auth"] = "yes"; + + +/***************************************************** +* Suchfelder +*****************************************************/ + +$liste["item"][] = array( 'field' => "JID", + 'datatype' => "VARCHAR", + 'filters' => array( 0 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8') + ), + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "is_domain_admin", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('n' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>", 'y' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>")); + +$liste["item"][] = array( 'field' => "is_muc_admin", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('n' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>", 'y' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>")); + + +?> diff --git a/interface/web/mail/templates/xmpp_user_list.htm b/interface/web/mail/templates/xmpp_user_list.htm new file mode 100644 index 0000000..68668b4 --- /dev/null +++ b/interface/web/mail/templates/xmpp_user_list.htm @@ -0,0 +1,74 @@ +<div class='page-header'> + <h1><tmpl_var name="list_head_txt"></h1> +</div> +<p><tmpl_var name="list_desc_txt"></p> + + + <tmpl_if name='datalog_changes_count' op='>' value='0'> + <div> + <div class="systemmonitor-state state-info"> + <div class="status"></div> + <div class="statusMsg"> + {tmpl_var name="datalog_changes_txt"} + <ul> + <tmpl_loop name="datalog_changes"> + <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li> + </tmpl_loop> + </ul> + {tmpl_var name="datalog_changes_end_txt"} + </div> + </div><br /> + </div> + </tmpl_if> + <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p> + + <button class="btn btn-default formbutton-success" type="button" data-load-content="mail/xmpp_user_edit.php">{tmpl_var name="add_new_record_txt"}</button> + + + + + <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p> + <div class="table-wrapper marginTop15"> +<table class="table"> + <thead class="dark form-group-sm"> + <tr> + <th data-column="jid"><tmpl_var name="jid_txt"></th> + <th class="small-col" data-column="is_domain_admin"><tmpl_var name="is_domain_admin_txt"></th> + <th class="small-col" data-column="is_muc_admin"><tmpl_var name="is_muc_admin_txt"></th> + <th class="small-col text-right">{tmpl_var name='search_limit'}</th> + </tr> + <tr> + <td><input class="form-control" type="text" name="search_jid" value="{tmpl_var name='search_jid'}" /></td> + <td><select class="form-control" name="search_is_domain_admin">{tmpl_var name='search_is_domain_admin'}</select></td> + <td><select class="form-control" name="search_is_muc_admin">{tmpl_var name='search_is_muc_admin'}</select></td> + <td class="text-right"> + <button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="mail/xmpp_user_list.php"><span class="icon icon-filter"></span></button> + </td> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr> + <td><a href="#" data-load-content="mail/xmpp_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="jid"}</a></td> + <td><a href="#" data-load-content="mail/xmpp_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="is_domain_admin"}</a></td> + <td><a href="#" data-load-content="mail/xmpp_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="is_muc_admin"}</a></td> + <td class="text-right"> + <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/xmpp_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></button> + </td> + </tr> + </tmpl_loop> + <tmpl_unless name="records"> + <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td colspan="4">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + </tr> + </tmpl_unless> + </tbody> + <tfoot> + <tr> + <td colspan="4"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> +</div> + + \ No newline at end of file diff --git a/interface/web/mail/xmpp_user_list.php b/interface/web/mail/xmpp_user_list.php new file mode 100644 index 0000000..ea44e4d --- /dev/null +++ b/interface/web/mail/xmpp_user_list.php @@ -0,0 +1,39 @@ +<?php +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/xmpp_user.list.php"; + +/****************************************** +* End Form configuration +******************************************/ + +//* Check permissions for module +$app->auth->check_module_permissions('mail'); + +$app->load('listform_actions'); + + +class list_action extends listform_actions { + + function onShow() { + global $app, $conf; + + $app->uses('getconf'); + $global_config = $app->getconf->get_global_config('xmpp'); + + parent::onShow(); + } + +} + +$list = new list_action; +$list->SQLOrderBy = 'ORDER BY xmpp_user.jid'; +$list->onLoad(); + + +?> -- Gitblit v1.9.1