1+ <?php
2+ include ("DatabaseConnector.php " );
3+ /**
4+ * @author Pavel Vyskočil <[email protected] > 5+ */
6+
7+ class DatabaseCommand
8+ {
9+
10+ public static function insertLogin (&$ request , &$ date )
11+ {
12+ $ databaseConnector = new DatabaseConnector ();
13+ $ conn = $ databaseConnector ->getConnection ();
14+ assert ($ conn != NULL );
15+ $ proxyTableName = $ databaseConnector ->getProxyTableName ();
16+ $ servicesTableName = $ databaseConnector ->getServicesTableName ();
17+ $ sourceIdp = $ request ['saml:sp:IdP ' ];
18+ $ service = $ request ['Destination ' ]['name ' ]['en ' ];
19+
20+ $ sql = "INSERT INTO " .$ proxyTableName ."(year, month, day, sourceIdp, count) VALUES (' " .$ date ->format ('Y ' )."',' " .$ date ->format ('m ' ) ."',' " .$ date ->format ('d ' )."',' " .$ sourceIdp ."','1') ON DUPLICATE KEY UPDATE count = count + 1 " ;
21+ SimpleSAML_Logger::info ($ sql );
22+ if ($ conn ->query ($ sql ) === FALSE ) {
23+ SimpleSAML_Logger::error ("The login log wasn't inserted into the database. " );
24+ }
25+
26+ $ sql = "INSERT INTO " .$ servicesTableName ."(year, month, day, service, count) VALUES (' " .$ date ->format ('Y ' )."',' " .$ date ->format ('m ' ) ."',' " .$ date ->format ('d ' )."',' " .$ service ."','1') ON DUPLICATE KEY UPDATE count = count + 1 " ;
27+ SimpleSAML_Logger::info ($ sql );
28+ if ($ conn ->query ($ sql ) === FALSE ) {
29+ SimpleSAML_Logger::error ("The login log wasn't inserted into the database. " );
30+ }
31+
32+ $ conn ->close ();
33+ }
34+
35+ public static function getLoginCountPerDay ()
36+ {
37+ $ databaseConnector = new DatabaseConnector ();
38+ $ conn = $ databaseConnector ->getConnection ();
39+ assert ($ conn != NULL );
40+ $ table_name = $ databaseConnector ->getProxyTableName ();
41+ $ sql = "SELECT year, month, day, SUM(count) AS count FROM " .$ table_name ." GROUP BY year,month,day " ;
42+ $ result = $ conn ->query ($ sql );
43+ while ($ row = $ result ->fetch_assoc ()) {
44+ echo "[new Date( " .$ row ["year " ].", " . ($ row ["month " ] - 1 ). ", " .$ row ["day " ]."), {v: " .$ row ["count " ]."}], " ;
45+ }
46+ $ conn ->close ();
47+ }
48+
49+
50+ public static function getLoginCountPerDeyPerService ()
51+ {
52+ $ databaseConnector = new DatabaseConnector ();
53+ $ conn = $ databaseConnector ->getConnection ();
54+ assert ($ conn != NULL );
55+ $ table_name = $ databaseConnector ->getProxyTableName ();
56+ $ sql = "SELECT year, month, sourceIdp, SUM(count) AS count FROM " .$ table_name . " GROUP BY year, month, sourceIdp HAVING sourceIdp != '' " ;
57+ $ result = $ conn ->query ($ sql );
58+ while ($ row = $ result ->fetch_assoc ()) {
59+ echo "[new Date( " .$ row ["year " ].", " .($ row ["month " ] - 1 )."),' " .$ row ["sourceIdp " ]."', {v: " .$ row ["count " ]."}], " ;
60+ }
61+ $ conn ->close ();
62+ }
63+
64+ public static function getAccessToServicesPerMonth ()
65+ {
66+ $ databaseConnector = new DatabaseConnector ();
67+ $ conn = $ databaseConnector ->getConnection ();
68+ assert ($ conn != NULL );
69+ $ table_name = $ databaseConnector ->getServicesTableName ();
70+ $ sql = "SELECT year, month, service, SUM(count) AS count FROM " .$ table_name ." GROUP BY year, month, service HAVING service != '' " ;
71+ $ result = $ conn ->query ($ sql );
72+ while ($ row = $ result ->fetch_assoc ()) {
73+ echo "[new Date( " .$ row ["year " ].", " .($ row ["month " ] - 1 )."),' " .$ row ["service " ]."', {v: " .$ row ["count " ]."}], " ; }
74+ $ conn ->close ();
75+ }
76+
77+ public static function getCountOfAllLogins ()
78+ {
79+ $ databaseConnector = new DatabaseConnector ();
80+ $ conn = $ databaseConnector ->getConnection ();
81+ assert ($ conn != NULL );
82+ $ table_name = $ databaseConnector ->getProxyTableName ();
83+ $ sql = "SELECT SUM(count) AS count FROM " . $ table_name ;
84+ $ result = $ conn ->query ($ sql );
85+ while ($ row = $ result ->fetch_assoc ()) {
86+ $ count = $ row ["count " ];
87+ }
88+ $ conn ->close ();
89+ if ($ count === null )
90+ {
91+ $ count = 0 ;
92+ }
93+ echo $ count ;
94+ }
95+
96+ public static function getCountOfAllLoginsForToday ()
97+ {
98+ $ count = 0 ;
99+ $ dateTime = new DateTime ();
100+ $ databaseConnector = new DatabaseConnector ();
101+ $ conn = $ databaseConnector ->getConnection ();
102+ assert ($ conn != NULL );
103+ $ table_name = $ databaseConnector ->getProxyTableName ();
104+ $ sql = "SELECT SUM(count) AS count FROM " . $ table_name ." WHERE year = " .$ dateTime ->format ('Y ' )." AND month= " .$ dateTime ->format ('m ' )." AND day = " .$ dateTime ->format ('d ' );
105+ $ result = $ conn ->query ($ sql );
106+ while ($ row = $ result ->fetch_assoc ()) {
107+ $ count = $ row ["count " ];
108+ }
109+ $ conn ->close ();
110+ if ($ count === null )
111+ {
112+ $ count = 0 ;
113+ }
114+ echo $ count ;
115+ }
116+
117+
118+ public static function getAccessCountPerService ()
119+ {
120+ $ databaseConnector = new DatabaseConnector ();
121+ $ conn = $ databaseConnector ->getConnection ();
122+ assert ($ conn != NULL );
123+ $ table_name = $ databaseConnector ->getServicesTableName ();
124+ $ sql = "SELECT service, SUM(count) AS count FROM " .$ table_name ." GROUP BY service HAVING service != '' " ;
125+ $ result = $ conn ->query ($ sql );
126+ while ($ row = $ result ->fetch_assoc ()) {
127+ echo "[' " .$ row ["service " ]."', " .$ row ["count " ]."], " ;
128+ }
129+ $ conn ->close ();
130+ }
131+
132+ public static function getLoginCountPerIdp ()
133+ {
134+ $ databaseConnector = new DatabaseConnector ();
135+ $ conn = $ databaseConnector ->getConnection ();
136+ assert ($ conn != NULL );
137+ $ table_name = $ databaseConnector ->getProxyTableName ();
138+ $ sql = "SELECT sourceIdp, SUM(count) AS count FROM " .$ table_name ." GROUP BY sourceIdp HAVING sourceIdp != '' " ;
139+ $ result = $ conn ->query ($ sql );
140+ while ($ row = $ result ->fetch_assoc ()) {
141+ echo "[' " .$ row ["sourceIdp " ]."', " .$ row ["count " ]."], " ;
142+ }
143+ $ conn ->close ();
144+ }
145+
146+ public static function getCountOfUsedIdp ()
147+ {
148+ $ databaseConnector = new DatabaseConnector ();
149+ $ conn = $ databaseConnector ->getConnection ();
150+ assert ($ conn != NULL );
151+ $ table_name = $ databaseConnector ->getProxyTableName ();
152+ $ sql = "SELECT COUNT(*) AS count FROM (SELECT DISTINCT sourceIdp FROM " .$ table_name ." ) AS idps WHERE sourceIdp != '' " ;
153+ $ result = $ conn ->query ($ sql );
154+ while ($ row = $ result ->fetch_assoc ()) {
155+ $ count = $ row ["count " ];
156+ }
157+ $ conn ->close ();
158+ if ($ count === null )
159+ {
160+ $ count = 0 ;
161+ }
162+ echo $ count ;
163+ }
164+
165+ public static function getCountOfAccesedServices ()
166+ {
167+ $ databaseConnector = new DatabaseConnector ();
168+ $ conn = $ databaseConnector ->getConnection ();
169+ assert ($ conn != NULL );
170+ $ table_name = $ databaseConnector ->getServicesTableName ();
171+ $ sql = "SELECT COUNT(*) AS count FROM (SELECT DISTINCT service FROM " .$ table_name ." ) AS services WHERE service != '' " ;
172+ $ result = $ conn ->query ($ sql );
173+ while ($ row = $ result ->fetch_assoc ()) {
174+ $ count = $ row ["count " ];
175+ }
176+ $ conn ->close ();
177+ if ($ count === null )
178+ {
179+ $ count = 0 ;
180+ }
181+ echo $ count ;
182+ }
183+ }
0 commit comments