Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Creating initial repo

  • Loading branch information...
commit caeb8778221c65d632e22cfabb61284f6185e032 0 parents
@chdemko authored
Showing with 5,493 additions and 0 deletions.
  1. +10 −0 README.markdown
  2. +33 −0 build.xml
  3. +7 −0 docs/build.xml
  4. +7 −0 language/build.xml
  5. +7 −0 language/fr-FR/build.xml
  6. +67 −0 server.xml
  7. +36 −0 src/build.xml
  8. +7 −0 src/com_externallogin/admin/access.xml
  9. +18 −0 src/com_externallogin/admin/config.xml
  10. +39 −0 src/com_externallogin/admin/controller.php
  11. +1 −0  src/com_externallogin/admin/controllers/index.html
  12. +90 −0 src/com_externallogin/admin/controllers/server.php
  13. +41 −0 src/com_externallogin/admin/controllers/servers.php
  14. +39 −0 src/com_externallogin/admin/externallogin.php
  15. +18 −0 src/com_externallogin/admin/helpers.php
  16. +115 −0 src/com_externallogin/admin/helpers/externallogin.php
  17. +1 −0  src/com_externallogin/admin/helpers/html/index.html
  18. +101 −0 src/com_externallogin/admin/helpers/html/servers.php
  19. +1 −0  src/com_externallogin/admin/helpers/index.html
  20. +1 −0  src/com_externallogin/admin/index.html
  21. +75 −0 src/com_externallogin/admin/language/en-GB/en-GB.com_externallogin.ini
  22. +17 −0 src/com_externallogin/admin/language/en-GB/en-GB.com_externallogin.sys.ini
  23. +113 −0 src/com_externallogin/admin/models/download.php
  24. +1 −0  src/com_externallogin/admin/models/forms/index.html
  25. +74 −0 src/com_externallogin/admin/models/forms/server.xml
  26. +18 −0 src/com_externallogin/admin/models/forms/upload.xml
  27. +1 −0  src/com_externallogin/admin/models/index.html
  28. +51 −0 src/com_externallogin/admin/models/plugins.php
  29. +202 −0 src/com_externallogin/admin/models/server.php
  30. +168 −0 src/com_externallogin/admin/models/servers.php
  31. +82 −0 src/com_externallogin/admin/models/upload.php
  32. +1 −0  src/com_externallogin/admin/sql/index.html
  33. +30 −0 src/com_externallogin/admin/sql/install.mysql.utf8.sql
  34. +12 −0 src/com_externallogin/admin/sql/uninstall.mysql.utf8.sql
  35. +1 −0  src/com_externallogin/admin/sql/updates/index.html
  36. +9 −0 src/com_externallogin/admin/sql/updates/mysql/2.0.0.sql
  37. +1 −0  src/com_externallogin/admin/sql/updates/mysql/index.html
  38. +1 −0  src/com_externallogin/admin/tables/index.html
  39. +106 −0 src/com_externallogin/admin/tables/server.php
  40. +1 −0  src/com_externallogin/admin/views/about/index.html
  41. +17 −0 src/com_externallogin/admin/views/about/tmpl/default.php
  42. +1 −0  src/com_externallogin/admin/views/about/tmpl/index.html
  43. +68 −0 src/com_externallogin/admin/views/about/view.html.php
  44. +1 −0  src/com_externallogin/admin/views/download/index.html
  45. +58 −0 src/com_externallogin/admin/views/download/view.csv.php
  46. +1 −0  src/com_externallogin/admin/views/index.html
  47. +1 −0  src/com_externallogin/admin/views/plugins/index.html
  48. +21 −0 src/com_externallogin/admin/views/plugins/tmpl/default.php
  49. +1 −0  src/com_externallogin/admin/views/plugins/tmpl/index.html
  50. +61 −0 src/com_externallogin/admin/views/plugins/view.html.php
  51. +1 −0  src/com_externallogin/admin/views/server/index.html
  52. +97 −0 src/com_externallogin/admin/views/server/tmpl/edit.php
  53. +1 −0  src/com_externallogin/admin/views/server/tmpl/index.html
  54. +111 −0 src/com_externallogin/admin/views/server/view.html.php
  55. +1 −0  src/com_externallogin/admin/views/servers/index.html
  56. +58 −0 src/com_externallogin/admin/views/servers/tmpl/default.php
  57. +63 −0 src/com_externallogin/admin/views/servers/tmpl/default_body.php
  58. +40 −0 src/com_externallogin/admin/views/servers/tmpl/default_filter.php
  59. +19 −0 src/com_externallogin/admin/views/servers/tmpl/default_foot.php
  60. +40 −0 src/com_externallogin/admin/views/servers/tmpl/default_head.php
  61. +1 −0  src/com_externallogin/admin/views/servers/tmpl/index.html
  62. +108 −0 src/com_externallogin/admin/views/servers/view.html.php
  63. +1 −0  src/com_externallogin/admin/views/success/index.html
  64. +20 −0 src/com_externallogin/admin/views/success/tmpl/default.php
  65. +1 −0  src/com_externallogin/admin/views/success/tmpl/index.html
  66. +31 −0 src/com_externallogin/admin/views/success/view.html.php
  67. +1 −0  src/com_externallogin/admin/views/upload/index.html
  68. +49 −0 src/com_externallogin/admin/views/upload/tmpl/default.php
  69. +1 −0  src/com_externallogin/admin/views/upload/tmpl/index.html
  70. +65 −0 src/com_externallogin/admin/views/upload/view.html.php
  71. +6 −0 src/com_externallogin/build.xml
  72. +108 −0 src/com_externallogin/externallogin.xml
  73. +29 −0 src/com_externallogin/media/css/administrator/externallogin.css
  74. +1 −0  src/com_externallogin/media/css/administrator/index.html
  75. +1 −0  src/com_externallogin/media/css/index.html
  76. BIN  src/com_externallogin/media/images/administrator/icon-16-externallogin.png
  77. BIN  src/com_externallogin/media/images/administrator/icon-32-users-download.png
  78. BIN  src/com_externallogin/media/images/administrator/icon-32-users-upload.png
  79. BIN  src/com_externallogin/media/images/administrator/icon-48-about.png
  80. BIN  src/com_externallogin/media/images/administrator/icon-48-server-edit.png
  81. BIN  src/com_externallogin/media/images/administrator/icon-48-server-new.png
  82. BIN  src/com_externallogin/media/images/administrator/icon-48-servers.png
  83. +1 −0  src/com_externallogin/media/images/administrator/index.html
  84. +1 −0  src/com_externallogin/media/images/index.html
  85. +1 −0  src/com_externallogin/media/index.html
  86. +1 −0  src/com_externallogin/media/js/index.html
  87. +39 −0 src/com_externallogin/site/controller.php
  88. +30 −0 src/com_externallogin/site/externallogin.php
  89. +16 −0 src/com_externallogin/site/helpers.php
  90. +1 −0  src/com_externallogin/site/index.html
  91. +15 −0 src/com_externallogin/site/language/en-GB/en-GB.com_externallogin.ini
  92. +1 −0  src/com_externallogin/site/models/index.html
  93. +120 −0 src/com_externallogin/site/models/login.php
  94. +96 −0 src/com_externallogin/site/router.php
  95. +1 −0  src/com_externallogin/site/views/index.html
  96. +1 −0  src/com_externallogin/site/views/login/index.html
  97. +23 −0 src/com_externallogin/site/views/login/tmpl/default.php
  98. +72 −0 src/com_externallogin/site/views/login/tmpl/default.xml
  99. +58 −0 src/com_externallogin/site/views/login/tmpl/default_login.php
  100. +48 −0 src/com_externallogin/site/views/login/tmpl/default_logout.php
  101. +1 −0  src/com_externallogin/site/views/login/tmpl/index.html
  102. +65 −0 src/com_externallogin/site/views/login/view.html.php
  103. +47 −0 src/com_externallogin/update.xml
  104. +6 −0 src/mod_externallogin_admin/build.xml
  105. +53 −0 src/mod_externallogin_admin/helper.php
  106. +1 −0  src/mod_externallogin_admin/index.html
  107. +22 −0 src/mod_externallogin_admin/language/en-GB/en-GB.mod_externallogin_admin.ini
  108. +13 −0 src/mod_externallogin_admin/language/en-GB/en-GB.mod_externallogin_admin.sys.ini
  109. 0  src/mod_externallogin_admin/language/en-GB/index.html
  110. 0  src/mod_externallogin_admin/language/index.html
  111. +26 −0 src/mod_externallogin_admin/mod_externallogin_admin.php
  112. +58 −0 src/mod_externallogin_admin/mod_externallogin_admin.xml
  113. +25 −0 src/mod_externallogin_admin/tmpl/alone.php
  114. +40 −0 src/mod_externallogin_admin/tmpl/default.php
  115. +16 −0 src/mod_externallogin_admin/tmpl/disabled.php
  116. +31 −0 src/mod_externallogin_admin/tmpl/form.php
  117. +1 −0  src/mod_externallogin_admin/tmpl/index.html
  118. +20 −0 src/mod_externallogin_admin/tmpl/title.php
  119. +16 −0 src/mod_externallogin_admin/tmpl/zero.php
  120. +49 −0 src/mod_externallogin_admin/update.xml
  121. +6 −0 src/mod_externallogin_site/build.xml
  122. +53 −0 src/mod_externallogin_site/helper.php
  123. +1 −0  src/mod_externallogin_site/index.html
  124. +21 −0 src/mod_externallogin_site/language/en-GB/en-GB.mod_externallogin_site.ini
  125. +13 −0 src/mod_externallogin_site/language/en-GB/en-GB.mod_externallogin_site.sys.ini
  126. 0  src/mod_externallogin_site/language/en-GB/index.html
  127. 0  src/mod_externallogin_site/language/index.html
  128. +26 −0 src/mod_externallogin_site/mod_externallogin_site.php
  129. +58 −0 src/mod_externallogin_site/mod_externallogin_site.xml
  130. +19 −0 src/mod_externallogin_site/tmpl/alone.php
  131. +44 −0 src/mod_externallogin_site/tmpl/default.php
  132. +16 −0 src/mod_externallogin_site/tmpl/disabled.php
  133. +26 −0 src/mod_externallogin_site/tmpl/form.php
  134. +1 −0  src/mod_externallogin_site/tmpl/index.html
  135. +25 −0 src/mod_externallogin_site/tmpl/logout.php
  136. +16 −0 src/mod_externallogin_site/tmpl/zero.php
  137. +49 −0 src/mod_externallogin_site/update.xml
  138. +6 −0 src/plg_authentication_externallogin/build.xml
  139. +122 −0 src/plg_authentication_externallogin/externallogin.php
  140. +39 −0 src/plg_authentication_externallogin/externallogin.xml
  141. +1 −0  src/plg_authentication_externallogin/index.html
  142. +13 −0 src/plg_authentication_externallogin/language/en-GB/en-GB.plg_authentication_externallogin.ini
  143. +13 −0 src/plg_authentication_externallogin/language/en-GB/en-GB.plg_authentication_externallogin.sys.ini
  144. +49 −0 src/plg_authentication_externallogin/update.xml
  145. +6 −0 src/plg_system_caslogin/build.xml
  146. +504 −0 src/plg_system_caslogin/caslogin.php
  147. +47 −0 src/plg_system_caslogin/caslogin.xml
  148. +141 −0 src/plg_system_caslogin/forms/cas.xml
  149. +1 −0  src/plg_system_caslogin/forms/index.html
  150. +1 −0  src/plg_system_caslogin/index.html
  151. +48 −0 src/plg_system_caslogin/language/en-GB/en-GB.plg_system_caslogin.ini
  152. +13 −0 src/plg_system_caslogin/language/en-GB/en-GB.plg_system_caslogin.sys.ini
  153. +1 −0  src/plg_system_caslogin/media/css/index.html
  154. BIN  src/plg_system_caslogin/media/images/administrator/icon-48-caslogin.png
  155. +1 −0  src/plg_system_caslogin/media/images/administrator/index.html
  156. BIN  src/plg_system_caslogin/media/images/cas-logo-150x83.png
  157. +1 −0  src/plg_system_caslogin/media/images/index.html
  158. +1 −0  src/plg_system_caslogin/media/index.html
  159. +1 −0  src/plg_system_caslogin/media/js/index.html
  160. +49 −0 src/plg_system_caslogin/update.xml
  161. +6 −0 src/plg_system_externallogin/build.xml
  162. +99 −0 src/plg_system_externallogin/externallogin.php
  163. +39 −0 src/plg_system_externallogin/externallogin.xml
  164. +1 −0  src/plg_system_externallogin/index.html
  165. +13 −0 src/plg_system_externallogin/language/en-GB/en-GB.plg_system_externallogin.ini
  166. +13 −0 src/plg_system_externallogin/language/en-GB/en-GB.plg_system_externallogin.sys.ini
  167. +49 −0 src/plg_system_externallogin/update.xml
  168. +6 −0 src/tpl_externallogin/build.xml
  169. +15 −0 src/tpl_externallogin/component.php
  170. +15 −0 src/tpl_externallogin/cpanel.php
  171. +1 −0  src/tpl_externallogin/css/index.html
  172. +16 −0 src/tpl_externallogin/css/template.css
  173. +6 −0 src/tpl_externallogin/css/template_rtl.css
  174. +15 −0 src/tpl_externallogin/error.php
  175. BIN  src/tpl_externallogin/favicon.ico
  176. +1 −0  src/tpl_externallogin/html/com_login/index.html
  177. +29 −0 src/tpl_externallogin/html/com_login/login/default.php
  178. +1 −0  src/tpl_externallogin/html/com_login/login/index.html
  179. +1 −0  src/tpl_externallogin/html/index.html
  180. +15 −0 src/tpl_externallogin/html/modules.php
  181. +15 −0 src/tpl_externallogin/html/pagination.php
  182. BIN  src/tpl_externallogin/images/admin/blank.png
  183. BIN  src/tpl_externallogin/images/admin/checked_out.png
  184. BIN  src/tpl_externallogin/images/admin/collapseall.png
  185. BIN  src/tpl_externallogin/images/admin/disabled.png
  186. BIN  src/tpl_externallogin/images/admin/downarrow-1.png
  187. BIN  src/tpl_externallogin/images/admin/downarrow.png
  188. BIN  src/tpl_externallogin/images/admin/downarrow0.png
  189. BIN  src/tpl_externallogin/images/admin/expandall.png
  190. BIN  src/tpl_externallogin/images/admin/featured.png
  191. BIN  src/tpl_externallogin/images/admin/filesave.png
  192. BIN  src/tpl_externallogin/images/admin/filter_16.png
  193. BIN  src/tpl_externallogin/images/admin/icon-16-add.png
  194. BIN  src/tpl_externallogin/images/admin/icon-16-allow.png
  195. BIN  src/tpl_externallogin/images/admin/icon-16-allowinactive.png
  196. BIN  src/tpl_externallogin/images/admin/icon-16-deny.png
  197. BIN  src/tpl_externallogin/images/admin/icon-16-denyinactive.png
  198. BIN  src/tpl_externallogin/images/admin/icon-16-notice-note.png
  199. BIN  src/tpl_externallogin/images/admin/icon-16-protected.png
  200. +1 −0  src/tpl_externallogin/images/admin/index.html
  201. BIN  src/tpl_externallogin/images/admin/menu_divider.png
  202. BIN  src/tpl_externallogin/images/admin/note_add_16.png
  203. BIN  src/tpl_externallogin/images/admin/publish_g.png
  204. BIN  src/tpl_externallogin/images/admin/publish_r.png
  205. BIN  src/tpl_externallogin/images/admin/publish_x.png
  206. BIN  src/tpl_externallogin/images/admin/publish_y.png
  207. BIN  src/tpl_externallogin/images/admin/sort_asc.png
  208. BIN  src/tpl_externallogin/images/admin/sort_desc.png
  209. BIN  src/tpl_externallogin/images/admin/tick.png
  210. BIN  src/tpl_externallogin/images/admin/trash.png
  211. BIN  src/tpl_externallogin/images/admin/uparrow-1.png
  212. BIN  src/tpl_externallogin/images/admin/uparrow.png
  213. BIN  src/tpl_externallogin/images/admin/uparrow0.png
  214. BIN  src/tpl_externallogin/images/arrow.png
  215. BIN  src/tpl_externallogin/images/bg-menu.gif
  216. BIN  src/tpl_externallogin/images/calendar.png
  217. BIN  src/tpl_externallogin/images/header/icon-48-alert.png
  218. BIN  src/tpl_externallogin/images/header/icon-48-apply.png
  219. BIN  src/tpl_externallogin/images/header/icon-48-archive.png
  220. BIN  src/tpl_externallogin/images/header/icon-48-article-add.png
  221. BIN  src/tpl_externallogin/images/header/icon-48-article-edit.png
  222. BIN  src/tpl_externallogin/images/header/icon-48-article.png
  223. BIN  src/tpl_externallogin/images/header/icon-48-banner-categories.png
  224. BIN  src/tpl_externallogin/images/header/icon-48-banner-client.png
  225. BIN  src/tpl_externallogin/images/header/icon-48-banner-tracks.png
  226. BIN  src/tpl_externallogin/images/header/icon-48-banner.png
  227. BIN  src/tpl_externallogin/images/header/icon-48-calendar.png
  228. BIN  src/tpl_externallogin/images/header/icon-48-category-add.png
  229. BIN  src/tpl_externallogin/images/header/icon-48-category.png
  230. BIN  src/tpl_externallogin/images/header/icon-48-checkin.png
  231. BIN  src/tpl_externallogin/images/header/icon-48-clear.png
  232. BIN  src/tpl_externallogin/images/header/icon-48-component.png
  233. BIN  src/tpl_externallogin/images/header/icon-48-config.png
  234. BIN  src/tpl_externallogin/images/header/icon-48-contacts-categories.png
  235. BIN  src/tpl_externallogin/images/header/icon-48-contacts.png
  236. BIN  src/tpl_externallogin/images/header/icon-48-content.png
  237. BIN  src/tpl_externallogin/images/header/icon-48-copy.png
  238. BIN  src/tpl_externallogin/images/header/icon-48-cpanel.png
  239. BIN  src/tpl_externallogin/images/header/icon-48-deny.png
  240. BIN  src/tpl_externallogin/images/header/icon-48-download.png
  241. BIN  src/tpl_externallogin/images/header/icon-48-edit.png
  242. BIN  src/tpl_externallogin/images/header/icon-48-extension.png
  243. BIN  src/tpl_externallogin/images/header/icon-48-featured.png
  244. BIN  src/tpl_externallogin/images/header/icon-48-frontpage.png
  245. BIN  src/tpl_externallogin/images/header/icon-48-generic.png
  246. BIN  src/tpl_externallogin/images/header/icon-48-groups-add.png
  247. BIN  src/tpl_externallogin/images/header/icon-48-groups.png
  248. BIN  src/tpl_externallogin/images/header/icon-48-help-forum.png
  249. BIN  src/tpl_externallogin/images/header/icon-48-help-this.png
  250. BIN  src/tpl_externallogin/images/header/icon-48-help_header.png
  251. BIN  src/tpl_externallogin/images/header/icon-48-inbox.png
  252. BIN  src/tpl_externallogin/images/header/icon-48-info.png
  253. BIN  src/tpl_externallogin/images/header/icon-48-install.png
  254. BIN  src/tpl_externallogin/images/header/icon-48-jupdate-updatefound.png
  255. BIN  src/tpl_externallogin/images/header/icon-48-jupdate-uptodate.png
  256. BIN  src/tpl_externallogin/images/header/icon-48-language.png
  257. BIN  src/tpl_externallogin/images/header/icon-48-levels-add.png
  258. BIN  src/tpl_externallogin/images/header/icon-48-levels.png
  259. BIN  src/tpl_externallogin/images/header/icon-48-links-cat.png
  260. BIN  src/tpl_externallogin/images/header/icon-48-links.png
  261. BIN  src/tpl_externallogin/images/header/icon-48-massmail.png
  262. BIN  src/tpl_externallogin/images/header/icon-48-media.png
  263. BIN  src/tpl_externallogin/images/header/icon-48-menu-add.png
  264. BIN  src/tpl_externallogin/images/header/icon-48-menu.png
  265. BIN  src/tpl_externallogin/images/header/icon-48-menumgr.png
  266. BIN  src/tpl_externallogin/images/header/icon-48-module.png
  267. BIN  src/tpl_externallogin/images/header/icon-48-move.png
  268. BIN  src/tpl_externallogin/images/header/icon-48-new-privatemessage.png
  269. BIN  src/tpl_externallogin/images/header/icon-48-newcategory.png
  270. BIN  src/tpl_externallogin/images/header/icon-48-newsfeeds-cat.png
  271. BIN  src/tpl_externallogin/images/header/icon-48-newsfeeds.png
  272. BIN  src/tpl_externallogin/images/header/icon-48-notice.png
  273. BIN  src/tpl_externallogin/images/header/icon-48-plugin.png
  274. BIN  src/tpl_externallogin/images/header/icon-48-preview.png
  275. BIN  src/tpl_externallogin/images/header/icon-48-print.png
  276. BIN  src/tpl_externallogin/images/header/icon-48-purge.png
  277. BIN  src/tpl_externallogin/images/header/icon-48-read-privatemessage.png
  278. BIN  src/tpl_externallogin/images/header/icon-48-readmess.png
  279. BIN  src/tpl_externallogin/images/header/icon-48-redirect.png
  280. BIN  src/tpl_externallogin/images/header/icon-48-revert.png
  281. BIN  src/tpl_externallogin/images/header/icon-48-search.png
  282. BIN  src/tpl_externallogin/images/header/icon-48-section.png
  283. BIN  src/tpl_externallogin/images/header/icon-48-send.png
  284. BIN  src/tpl_externallogin/images/header/icon-48-static.png
  285. BIN  src/tpl_externallogin/images/header/icon-48-stats.png
  286. BIN  src/tpl_externallogin/images/header/icon-48-themes.png
  287. BIN  src/tpl_externallogin/images/header/icon-48-trash.png
  288. BIN  src/tpl_externallogin/images/header/icon-48-unarchive.png
  289. BIN  src/tpl_externallogin/images/header/icon-48-upload.png
  290. BIN  src/tpl_externallogin/images/header/icon-48-user-add.png
  291. BIN  src/tpl_externallogin/images/header/icon-48-user-edit.png
  292. BIN  src/tpl_externallogin/images/header/icon-48-user-profile.png
  293. BIN  src/tpl_externallogin/images/header/icon-48-user.png
  294. BIN  src/tpl_externallogin/images/header/icon-48-writemess.png
  295. BIN  src/tpl_externallogin/images/header/icon-messaging.png
  296. +1 −0  src/tpl_externallogin/images/header/index.html
  297. +1 −0  src/tpl_externallogin/images/index.html
  298. BIN  src/tpl_externallogin/images/j_arrow.png
  299. BIN  src/tpl_externallogin/images/j_arrow_down.png
  300. BIN  src/tpl_externallogin/images/j_arrow_left.png
Sorry, we could not display the entire diff because too many files (510) changed.
10 README.markdown
@@ -0,0 +1,10 @@
+External Login
+===============
+
+The *External Login* project...
+
+Requirements
+------------
+
+* Joomla!2.5
+
33 build.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="external-login" default="build" basedir=".">
+ <property name="version" value="2.0.0" />
+ <property name="dist" value="build" />
+
+ <target name="build"
+ depends="src"
+ />
+
+ <target name="src">
+ <ant antfile="src/build.xml" useNativeBasedir="true" />
+ </target>
+
+ <target name="docs">
+ <ant antfile="docs/build.xml" useNativeBasedir="true" />
+ </target>
+
+ <target name="language">
+ <ant antfile="language/build.xml" useNativeBasedir="true" />
+ </target>
+
+ <target name="zip" description="Generate Zip file">
+ <zip destfile="../${dist}/${project-name}-${version}.zip" basedir="${project-name}" excludes="**/*~,build.xml,update.xml" />
+ </target>
+
+ <target name="update" description="Generate Update file">
+ <copy file="${project-name}/update.xml" tofile="../${dist}/update-${project-name}.xml" />
+ </target>
+
+ <target name="clean" description="Clean up">
+ <delete file="../${dist}/${project-name}-${version}.zip" />
+ </target>
+</project>
7 docs/build.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="external-login-docs" default="build" basedir=".">
+
+ <target name="build"
+ depends=""
+ />
+</project>
7 language/build.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="external-login-language" default="build" basedir=".">
+
+ <target name="build"
+ depends="fr-FR"
+ />
+</project>
7 language/fr-FR/build.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="external-login-language-fr-FR" default="build" basedir=".">
+
+ <target name="build"
+ depends=""
+ />
+</project>
67 server.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<extensionset name="External Login" description="External Login">
+ <extension
+ name="Authentication Manager"
+ element="com_externallogin"
+ type="component"
+ client="administrator"
+ version="2.0.0"
+ detailsurl="https://github.com/downloads/chdemko/joomla-external-login/update-com_externallogin.xml"
+ />
+
+ <extension
+ name="External Login Site Module"
+ element="mod_externallogin_site"
+ type="module"
+ client="site"
+ version="2.0.0"
+ detailsurl="https://github.com/downloads/chdemko/joomla-external-login/update-mod_externallogin_site.xml"
+ />
+
+ <extension
+ name="External Login Admin Module"
+ element="mod_externallogin_admin"
+ type="module"
+ client="administrator"
+ version="2.0.0"
+ detailsurl="https://github.com/downloads/chdemko/joomla-external-login/update-mod_externallogin_admin.xml"
+ />
+
+ <extension
+ name="Authentication - External Login"
+ element="externallogin"
+ folder="authentication"
+ type="plugin"
+ version="2.0.0"
+ detailsurl="https://github.com/downloads/chdemko/joomla-external-login/update-plg_authentication_externallogin.xml"
+ />
+
+ <extension
+ name="System - External Login"
+ element="externallogin"
+ folder="system"
+ type="plugin"
+ version="2.0.0"
+ detailsurl="https://github.com/downloads/chdemko/joomla-external-login/update-plg_system_externallogin.xml"
+ />
+
+ <extension
+ name="System - CAS Login"
+ element="caslogin"
+ folder="system"
+ type="plugin"
+ version="2.0.0"
+ detailsurl="https://github.com/downloads/chdemko/joomla-external-login/update-plg_system_caslogin.xml"
+ />
+
+ <extension
+ name="External Login Admin Template"
+ element="externallogin"
+ type="template"
+ client="administrator"
+ version="2.0.0"
+ detailsurl="https://github.com/downloads/chdemko/joomla-external-login/update-tpl_externallogin.xml"
+ />
+
+</extensionset>
+
36 src/build.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="external-login-src" default="build" basedir=".">
+
+ <target name="build"
+ depends="com_externallogin, mod_externallogin_admin, mod_externallogin_site, plg_authentication_externallogin, plg_system_caslogin, plg_system_externallogin, tpl_externallogin"
+ />
+
+ <target name="com_externallogin">
+ <ant antfile="com_externallogin/build.xml" />
+ </target>
+
+ <target name="mod_externallogin_admin">
+ <ant antfile="mod_externallogin_admin/build.xml" />
+ </target>
+
+ <target name="mod_externallogin_site">
+ <ant antfile="mod_externallogin_site/build.xml" />
+ </target>
+
+ <target name="plg_authentication_externallogin">
+ <ant antfile="plg_authentication_externallogin/build.xml" />
+ </target>
+
+ <target name="plg_system_caslogin">
+ <ant antfile="plg_system_caslogin/build.xml" />
+ </target>
+
+ <target name="plg_system_externallogin">
+ <ant antfile="plg_system_externallogin/build.xml" />
+ </target>
+
+ <target name="tpl_externallogin">
+ <ant antfile="tpl_externallogin/build.xml" />
+ </target>
+
+</project>
7 src/com_externallogin/admin/access.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<access component="com_externallogin">
+ <section name="component">
+ <action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" />
+ <action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" />
+ </section>
+</access>
18 src/com_externallogin/admin/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<config>
+
+ <fieldset name="permissions" label="JCONFIG_PERMISSIONS_LABEL" description="JCONFIG_PERMISSIONS_DESC">
+ <field
+ name="rules"
+ type="rules"
+ label="JCONFIG_PERMISSIONS_LABEL"
+ class="inputbox"
+ validate="rules"
+ filter="rules"
+ component="com_externallogin"
+ section="component"
+ />
+ </fieldset>
+
+</config>
+
39 src/com_externallogin/admin/controller.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// import Joomla controller library
+jimport('joomla.application.component.controller');
+
+/**
+ * General Controller of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+class ExternalloginController extends JController
+{
+ /**
+ * @var string The default view for the display method.
+ *
+ * @since 0.0.1
+ *
+ * @see JController::$default_view
+ */
+ protected $default_view = 'servers';
+}
+
1  src/com_externallogin/admin/controllers/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
90 src/com_externallogin/admin/controllers/server.php
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// import Joomla controllerform library
+jimport('joomla.application.component.controllerform');
+
+/**
+ * Server Controller of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+class ExternalloginControllerServer extends JControllerForm
+{
+ /**
+ * Gets the URL arguments to append to an item redirect.
+ *
+ * @param integer $recordId The primary key id for the item.
+ * @param string $urlVar The name of the URL variable for the id.
+ *
+ * @return string The arguments to append to the redirect URL.
+ *
+ * @see JControllerForm::getRedirectToItemAppend
+ *
+ * @since 2.0.0
+ */
+ protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
+ {
+ $plugin = JFactory::getApplication()->input->get('plugin', '');
+ $append = parent::getRedirectToItemAppend($recordId, $urlVar);
+ if (!empty($plugin))
+ {
+ $append.= '&plugin=' . $plugin;
+ }
+ return $append;
+ }
+
+ /**
+ * Download users
+ */
+ public function download()
+ {
+ // Check for request forgeries.
+ JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
+
+ // Initialise variables.
+ $cid = JFactory::getApplication()->input->get('cid', array(), 'array');
+
+ $this->setRedirect(JRoute::_('index.php?option=com_externallogin&view=download&format=csv&id=' . $cid[0], false));
+ return true;
+ }
+
+ /**
+ * Upload users
+ */
+ public function upload()
+ {
+ // Check for request forgeries.
+ JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
+
+ // Initialise variables.
+ $form = JFactory::getApplication()->input->get('jform', array(), 'array');
+ $id = (int) $form['id'];
+
+ $model = $this->getModel();
+ if ($model->upload($form))
+ {
+ $this->setRedirect(JRoute::_('index.php?option=com_externallogin&view=success&tmpl=component', false), JText::_('COM_EXTERNALLOGIN_MSG_UPLOAD_SUCCESS'));
+ }
+ else
+ {
+ $this->setRedirect(JRoute::_('index.php?option=com_externallogin&view=upload&tmpl=component&id=' . $id, false), $model->getError(), 'error');
+ }
+ }
+}
41 src/com_externallogin/admin/controllers/servers.php
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// import Joomla controlleradmin library
+jimport('joomla.application.component.controlleradmin');
+
+/**
+ * Servers Controller of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+class ExternalloginControllerServers extends JControllerAdmin
+{
+ /**
+ * Proxy for getModel.
+ *
+ * @see JController::getModel
+ *
+ * @since 2.0.0
+ */
+ public function getModel($name = 'Server', $prefix = 'ExternalloginModel')
+ {
+ return parent::getModel($name, $prefix, array('ignore_request' => true));
+ }
+}
39 src/com_externallogin/admin/externallogin.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// Access check.
+if (!JFactory::getUser()->authorise('core.manage', 'com_externallogin'))
+{
+ return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
+}
+
+// require helpers file
+require_once dirname(__FILE__) . '/helpers.php';
+
+// Set the submenu
+ExternalloginHelper::addSubmenu(JFactory::getApplication()->input->get('view', 'servers'));
+
+// import joomla controller library
+jimport('joomla.application.component.controller');
+
+// Get an instance of the controller prefixed by Externallogin
+$controller = JController::getInstance('Externallogin');
+
+// Perform the Request task
+$controller->execute(JFactory::getApplication()->input->get('task'));
+
+// Redirect if set by the controller
+$controller->redirect();
18 src/com_externallogin/admin/helpers.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// Register classes to files
+JLoader::register('ExternalloginHelper', dirname(__FILE__) . '/helpers/externallogin.php');
115 src/com_externallogin/admin/helpers/externallogin.php
@@ -0,0 +1,115 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+/**
+ * External Login component helper.
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+abstract class ExternalloginHelper
+{
+ /**
+ * Configure the Linkbar.
+ *
+ * @param string $submenu the name of the current submenu
+ *
+ * @return void
+ *
+ * @since 0.0.1
+ */
+ public static function addSubmenu($submenu = 'servers')
+ {
+ // Addsubmenu
+ JSubMenuHelper::addEntry(JText::_('COM_EXTERNALLOGIN_SUBMENU_SERVERS'), JRoute::_('index.php?option=com_externallogin', false), $submenu == 'servers');
+ JSubMenuHelper::addEntry(JText::_('COM_EXTERNALLOGIN_SUBMENU_ABOUT'), JRoute::_('index.php?option=com_externallogin&view=about', false), $submenu == 'about');
+
+ // set some global property
+ $document = JFactory::getDocument();
+ $document->setTitle(JText::sprintf('COM_EXTERNALLOGIN_PAGETITLE', JFactory::getConfig()->get('sitename'), JText::_('COM_EXTERNALLOGIN_PAGETITLE_' . $submenu)));
+ }
+
+ /**
+ * Get a list of enabled plugins
+ *
+ * @return array array of plugins
+ *
+ * @since 2.0.0
+ */
+ public static function getPlugins()
+ {
+ $app = JFactory::getApplication();
+ return (array) $app->triggerEvent('onGetOption', array('com_externallogin'));
+ }
+
+ /**
+ * Get a list of groups from a string
+ *
+ * @param string $path Group path
+ *
+ * @return array Array of groups
+ */
+ public static function getGroups($path)
+ {
+ // Get the dbo
+ $db = JFactory::getDbo();
+
+ // Split the path
+ $path = explode('/', $path);
+ $count = count($path);
+
+ // Path is correct
+ if ($count && !empty($path[$count - 1]))
+ {
+ // prepare query
+ $query = $db->getQuery(true);
+ $query->select('a' . ($count - 1) . '.id as id');
+ $query->from('#__usergroups AS a' . ($count - 1));
+ $query->where('a' . ($count - 1) . '.title = ' . $db->quote($path[$count - 1]));
+ for ($i = $count - 2; $i >= 0; $i--)
+ {
+ if (empty($path[$i]))
+ {
+ if ($i == 0)
+ {
+ // Path is absolute
+ $query->where('a1.parent_id = 0');
+ }
+ else
+ {
+ // Path is incorrect
+ return null;
+ }
+ }
+ else
+ {
+ $query->leftJoin('#__usergroups AS a' . $i . ' ON a' . $i . '.id = a' . ($i + 1) . '.parent_id');
+ $query->where('a' . $i . '.title LIKE ' . $db->quote($path[$i]));
+
+ }
+ }
+ $db->setQuery($query);
+ return $db->loadColumn();
+ }
+ // Path is incorrect
+ else
+ {
+ return null;
+ }
+ }
+}
1  src/com_externallogin/admin/helpers/html/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
101 src/com_externallogin/admin/helpers/html/servers.php
@@ -0,0 +1,101 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+/**
+ * External Login component Html helper.
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+abstract class ExternalloginHtmlServers
+{
+ /**
+ * Returns a published state on a grid
+ *
+ * @param integer $value The state value.
+ * @param integer $i The row index
+ * @param boolean $enabled An optional setting for access control on the action.
+ *
+ * @return string The Html code
+ *
+ * @see JHtmlJGrid::state
+ *
+ * @since 1.7.1
+ */
+ public static function state($value, $i, $enabled = true)
+ {
+ $states = array(
+ 4 => array(
+ 'unpublish',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_UNINSTALLED',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_UNPUBLISH',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_UNINSTALLED',
+ false,
+ 'expired',
+ 'expired'
+ ),
+ 3 => array(
+ 'unpublish',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_DISABLED',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_UNPUBLISH',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_DISABLED',
+ false,
+ 'warning',
+ 'warning'
+ ),
+ 2 => array(
+ 'publish',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_ARCHIVED',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_PUBLISH',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_ARCHIVED',
+ false,
+ 'archive',
+ 'archive'
+ ),
+ 1 => array(
+ 'unpublish',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_PUBLISHED',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_UNPUBLISH',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_PUBLISHED',
+ false,
+ 'publish',
+ 'publish'
+ ),
+ 0 => array(
+ 'publish',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_UNPUBLISHED',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_PUBLISH',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_UNPUBLISHED',
+ false,
+ 'unpublish',
+ 'unpublish'
+ ),
+ -2 => array(
+ 'unpublish',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_TRASHED',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_UNPUBLISH',
+ 'COM_EXTERNALLOGIN_GRID_SERVER_TRASHED',
+ false,
+ 'trash',
+ 'trash'
+ ),
+ );
+
+ return JHtml::_('jgrid.state', $states, $value, $i, 'servers.', $enabled, true, 'cb');
+ }
+}
1  src/com_externallogin/admin/helpers/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
1  src/com_externallogin/admin/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
75 src/com_externallogin/admin/language/en-GB/en-GB.com_externallogin.ini
@@ -0,0 +1,75 @@
+; @package External Login
+; @subpackage Component
+; @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+; @author Christophe Demko
+; @author Ioannis Barounis
+; @author Alexandre Gandois
+; @link http://www.chdemko.com
+; @license http://www.gnu.org/licenses/gpl-2.0.html
+; @note All ini files need to be saved as UTF-8 - No BOM
+
+COM_EXTERNALLOGIN="External login"
+COM_EXTERNALLOGIN_DESCRIPTION="External Login Manager"
+COM_EXTERNALLOGIN_ABOUT="External login manager was achieved with financial support from the University of Montpellier 2 (France)"
+COM_EXTERNALLOGIN_BUTTON_CANCEL="Cancel"
+COM_EXTERNALLOGIN_BUTTON_UPLOAD="Upload"
+COM_EXTERNALLOGIN_ERROR_CANNOT_DOWNLOAD="Cannot download"
+COM_EXTERNALLOGIN_FIELD_SERVER_AUTOREGISTER_DESC="This automatically registers a new user when he is logged in on the external server."
+COM_EXTERNALLOGIN_FIELD_SERVER_AUTOREGISTER_LABEL="Auto-register"
+COM_EXTERNALLOGIN_FIELD_SERVER_AUTOUPDATE_DESC="This automatically updates each user when he logs in."
+COM_EXTERNALLOGIN_FIELD_SERVER_AUTOUPDATE_LABEL="Auto-update"
+COM_EXTERNALLOGIN_FIELD_SERVER_TITLE_DESC="Unique server title"
+COM_EXTERNALLOGIN_FIELD_SERVER_TITLE_LABEL="Title"
+COM_EXTERNALLOGIN_FIELD_SERVER_USERGROUP_DESC="Default user group for a new user."
+COM_EXTERNALLOGIN_FIELD_SERVER_USERGROUP_LABEL="Default user group"
+COM_EXTERNALLOGIN_FIELDSET_SERVER_DETAILS_DESC=""
+COM_EXTERNALLOGIN_FIELDSET_SERVER_DETAILS_LABEL="Server details"
+COM_EXTERNALLOGIN_FIELDSET_UPLOAD_DETAILS_DESC=""
+COM_EXTERNALLOGIN_FIELDSET_UPLOAD_DETAILS_LABEL="Upload users for <em>%s</em> server"
+COM_EXTERNALLOGIN_FIELD_UPLOAD_FILE_DESC="List of users"
+COM_EXTERNALLOGIN_FIELD_UPLOAD_FILE_LABEL="File"
+COM_EXTERNALLOGIN_FILTER_SEARCH_DESC="Search::Search title. Prefix with ID: to search for a server ID"
+COM_EXTERNALLOGIN_GRID_SERVER_ARCHIVED="Archived"
+COM_EXTERNALLOGIN_GRID_SERVER_DISABLED="Plugin disabled"
+COM_EXTERNALLOGIN_GRID_SERVER_PUBLISHED="Published"
+COM_EXTERNALLOGIN_GRID_SERVER_PUBLISH="Publish"
+COM_EXTERNALLOGIN_GRID_SERVER_TRASHED="Trashed"
+COM_EXTERNALLOGIN_GRID_SERVER_UNINSTALLED="Plugin uninstalled"
+COM_EXTERNALLOGIN_GRID_SERVER_UNPUBLISHED="Unpublished"
+COM_EXTERNALLOGIN_GRID_SERVER_UNPUBLISH="Unpublish"
+COM_EXTERNALLOGIN_HEADING_PLUGIN="Plugin"
+COM_EXTERNALLOGIN_HELP_MANAGER_SERVERS="External_Login_Servers"
+COM_EXTERNALLOGIN_LOGIN_HELP="External_Login_Login_Help"
+COM_EXTERNALLOGIN_MANAGER_ABOUT="About"
+COM_EXTERNALLOGIN_MANAGER_SERVER_EDIT="Servers Manager: Edit"
+COM_EXTERNALLOGIN_MANAGER_SERVER_NEW="Servers Manager: New"
+COM_EXTERNALLOGIN_MANAGER_SERVERS="Servers manager"
+COM_EXTERNALLOGIN_MANAGER_SERVER_VIEW="Servers Manager: View"
+COM_EXTERNALLOGIN_MENU="External login"
+COM_EXTERNALLOGIN_MSG_SERVERS_DELETE="Are you sure to delete all these servers and the associated users?"
+COM_EXTERNALLOGIN_MSG_UPLOAD_SUCCESS="Upload successfully completed"
+COM_EXTERNALLOGIN_N_ITEMS_ARCHIVED_1="1 server archived"
+COM_EXTERNALLOGIN_N_ITEMS_ARCHIVED_MORE="%d servers archived"
+COM_EXTERNALLOGIN_N_ITEMS_CHECKED_IN_1="1 server checked in"
+COM_EXTERNALLOGIN_N_ITEMS_CHECKED_IN_MORE="%d servers checked in"
+COM_EXTERNALLOGIN_N_ITEMS_DELETED_1="1 server deleted"
+COM_EXTERNALLOGIN_N_ITEMS_DELETED_MORE="%d servers deleted"
+COM_EXTERNALLOGIN_N_ITEMS_PUBLISHED_1="1 server published"
+COM_EXTERNALLOGIN_N_ITEMS_PUBLISHED_MORE="%d servers published"
+COM_EXTERNALLOGIN_N_ITEMS_TRASHED_1="1 server trashed"
+COM_EXTERNALLOGIN_N_ITEMS_TRASHED_MORE="%d servers trashed"
+COM_EXTERNALLOGIN_N_ITEMS_UNPUBLISHED_1="1 server unpublished"
+COM_EXTERNALLOGIN_N_ITEMS_UNPUBLISHED_MORE="%d servers unpublished"
+COM_EXTERNALLOGIN_OPTION_SELECT_PLUGIN="- Select Plugin -"
+COM_EXTERNALLOGIN_PAGETITLE_ABOUT="External Login - About"
+COM_EXTERNALLOGIN_PAGETITLE_SERVER="External Login - Server"
+COM_EXTERNALLOGIN_PAGETITLE_SERVERS="External Login - Servers"
+COM_EXTERNALLOGIN_PAGETITLE="%s - %s"
+COM_EXTERNALLOGIN_SUBMENU_ABOUT="About"
+COM_EXTERNALLOGIN_SUBMENU_SERVERS="Servers"
+COM_EXTERNALLOGIN_SUBMENU_USERS="Users"
+COM_EXTERNALLOGIN_TOOLBAR_DOWNLOAD="Download"
+COM_EXTERNALLOGIN_TOOLBAR_UPLOAD="Upload"
+COM_EXTERNALLOGIN_ERROR_BAD_FILE="Bad file format"
+JOPTION_ACCESS_SHOW_ALL_GROUPS="- Select Usergroup -"
+
17 src/com_externallogin/admin/language/en-GB/en-GB.com_externallogin.sys.ini
@@ -0,0 +1,17 @@
+; @package External Login
+; @subpackage Component
+; @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+; @author Christophe Demko
+; @author Ioannis Barounis
+; @author Alexandre Gandois
+; @link http://www.chdemko.com
+; @license http://www.gnu.org/licenses/gpl-2.0.html
+; @note All ini files need to be saved as UTF-8 - No BOM
+
+COM_EXTERNALLOGIN="External login"
+COM_EXTERNALLOGIN_DESCRIPTION="External Login Manager"
+COM_EXTERNALLOGIN_MENU="External login"
+COM_EXTERNALLOGIN_LOGIN_VIEW_DEFAULT_TITLE="Login"
+COM_EXTERNALLOGIN_LOGIN_VIEW_DEFAULT_OPTION="Login"
+COM_EXTERNALLOGIN_LOGIN_VIEW_DEFAULT_DESC="Login description"
+
113 src/com_externallogin/admin/models/download.php
@@ -0,0 +1,113 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// import the Joomla model library
+jimport('joomla.application.component.model');
+
+/**
+ * Download Model of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+class ExternalloginModelDownload extends JModel
+{
+ /**
+ * Method to auto-populate the model state.
+ *
+ * @return void
+ *
+ * @note Calling getState in this method will result in recursion.
+ *
+ * @see JModel::populateState
+ *
+ * @since 2.0.0
+ */
+ protected function populateState()
+ {
+ // Get the pk of the record from the request.
+ $pk = JFactory::getApplication()->input->getInt('id');
+ $this->setState($this->getName() . '.id', $pk);
+ }
+
+ /**
+ * Returns a reference to the a Table object, always creating it.
+ *
+ * @param type The table type to instantiate
+ * @param string A prefix for the table class name. Optional.
+ * @param array Configuration array for model. Optional.
+ *
+ * @return JTable A database object
+ *
+ * @see JModel::getTable
+ *
+ * @since 2.0.0
+ */
+ public function getTable($type = 'Server', $prefix = 'ExternalloginTable', $config = array())
+ {
+ return JTable::getInstance($type, $prefix, $config);
+ }
+
+
+ /**
+ * Get file name
+ *
+ * @return string The file name
+ * @since 1.6
+ */
+ public function getBaseName()
+ {
+ $table = $this->getTable();
+ if ($table->load($this->getState($this->getName() . '.id')))
+ {
+ return JFactory::getConfig()->get('sitename') . '_' . $table->title . '_' . JFactory::getDate();
+ }
+ else
+ {
+ $this->setError(JText::_('COM_EXTERNALLOGIN_ERROR_CANNOT_DOWNLOAD'));
+ return false;
+ }
+ }
+
+ /**
+ * Get the content
+ *
+ * @return string The content.
+ * @since 1.6
+ */
+ public function getContent()
+ {
+ $file = fopen('php://output', 'w');
+ $db = JFactory::getDbo();
+ $query = $db->getQuery(true);
+ $query->select('a.username, a.name, a.email');
+ $query->from('#__users AS a');
+ $query->leftJoin('#__externallogin_users AS e ON e.user_id = a.id');
+ $query->where('e.server_id = ' . (int) $this->getState($this->getName() . '.id'));
+ $query->leftJoin('#__user_usergroup_map AS g ON g.user_id = a.id');
+ $query->group('a.id');
+ $query->select('GROUP_CONCAT(g.group_id SEPARATOR ",")');
+ $db->setQuery($query);
+ $results = $db->loadRowList();
+ foreach ($results as $result)
+ {
+ fputcsv($file, $result);
+ }
+ fclose($file);
+ }
+}
1  src/com_externallogin/admin/models/forms/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
74 src/com_externallogin/admin/models/forms/server.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<form>
+ <fieldset name="details"
+ label="COM_EXTERNALLOGIN_FIELDSET_SERVER_DETAILS_LABEL"
+ description="COM_EXTERNALLOGIN_FIELDSET_SERVER_DETAILS_DESC"
+ >
+ <field
+ name="id"
+ type="hidden"
+ />
+
+ <field
+ name="plugin"
+ type="hidden"
+ readonly="true"
+ />
+
+ <field
+ name="title"
+ type="text"
+ label="COM_EXTERNALLOGIN_FIELD_SERVER_TITLE_LABEL"
+ description="COM_EXTERNALLOGIN_FIELD_SERVER_TITLE_DESC"
+ required="true"
+ size="40"
+ class="inputbox"
+ default=""
+ />
+
+ <field name="published" type="list" label="JSTATUS"
+ description="JFIELD_PUBLISHED_DESC" class="inputbox"
+ filter="intval" size="1" default="1"
+ >
+ <option value="1">JPUBLISHED</option>
+ <option value="0">JUNPUBLISHED</option>
+ <option value="2">JARCHIVED</option>
+ <option value="-2">JTRASHED</option>
+ </field>
+
+ <fields name="params">
+ <field name="autoregister" type="radio"
+ label="COM_EXTERNALLOGIN_FIELD_SERVER_AUTOREGISTER_LABEL"
+ description="COM_EXTERNALLOGIN_FIELD_SERVER_AUTOREGISTER_DESC"
+ class="inputbox"
+ filter="intval"
+ default="0"
+ >
+ <option value="0">JNO</option>
+ <option value="1">JYES</option>
+ </field>
+
+ <field name="autoupdate" type="radio"
+ label="COM_EXTERNALLOGIN_FIELD_SERVER_AUTOUPDATE_LABEL"
+ description="COM_EXTERNALLOGIN_FIELD_SERVER_AUTOUPDATE_DESC"
+ class="inputbox"
+ filter="intval"
+ default="0"
+ >
+ <option value="0">JNO</option>
+ <option value="1">JYES</option>
+ </field>
+
+ <field
+ name="usergroup"
+ type="usergroup"
+ default=""
+ label="COM_EXTERNALLOGIN_FIELD_SERVER_USERGROUP_LABEL"
+ description="COM_EXTERNALLOGIN_FIELD_SERVER_USERGROUP_DESC"
+ >
+ <option value="">COM_EXTERNALLOGIN_OPTION_SELECT_USERGROUP</option>
+ </field>
+
+ </fields>
+ </fieldset>
+</form>
18 src/com_externallogin/admin/models/forms/upload.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<form>
+ <fieldset name="details"
+ label="COM_EXTERNALLOGIN_FIELDSET_UPLOAD_DETAILS_LABEL"
+ description="COM_EXTERNALLOGIN_FIELDSET_UPLOAD_DETAILS_DESC"
+ >
+ <field
+ name="file"
+ type="file"
+ label="COM_EXTERNALLOGIN_FIELD_UPLOAD_FILE_LABEL"
+ description="COM_EXTERNALLOGIN_FIELD_UPLOAD_FILE_DESC"
+ />
+ <field
+ name="id"
+ type="hidden"
+ />
+ </fieldset>
+</form>
1  src/com_externallogin/admin/models/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
51 src/com_externallogin/admin/models/plugins.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// import the Joomla model library
+jimport('joomla.application.component.model');
+
+/**
+ * Plugins Model of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+class ExternalloginModelPlugins extends JModel
+{
+ /**
+ * Get plugins
+ *
+ * @since 2.0.0
+ */
+ public function getItems()
+ {
+ $items = array();
+
+ // Include buttons defined by published external login plugins
+ $app = JFactory::getApplication();
+ $arrays = (array) $app->triggerEvent('onGetIcons', array('com_externallogin'));
+ foreach ($arrays as $response)
+ {
+ foreach ($response as $plugin)
+ {
+ $items[] = $plugin;
+ }
+ }
+ return $items;
+ }
+}
202 src/com_externallogin/admin/models/server.php
@@ -0,0 +1,202 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// import Joomla modeladmin library
+jimport('joomla.application.component.modeladmin');
+
+/**
+ * Server Model of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+class ExternalloginModelServer extends JModelAdmin
+{
+ /**
+ * Stock method to auto-populate the model state.
+ *
+ * @return void
+ *
+ * @since 2.0.0
+ */
+ protected function populateState()
+ {
+ parent::populateState();
+
+ // Get the plugin from the request.
+ $plugin = JFactory::getApplication()->input->get('plugin');
+ $this->setState($this->getName() . '.plugin', $plugin);
+ }
+
+ /**
+ * Returns a reference to the a Table object, always creating it.
+ *
+ * @param type The table type to instantiate
+ * @param string A prefix for the table class name. Optional.
+ * @param array Configuration array for model. Optional.
+ *
+ * @return JTable A database object
+ *
+ * @see JModel::getTable
+ *
+ * @since 2.0.0
+ */
+ public function getTable($type = 'Server', $prefix = 'ExternalloginTable', $config = array())
+ {
+ return JTable::getInstance($type, $prefix, $config);
+ }
+
+ /**
+ * Method to get the record form.
+ *
+ * @param array $data Data for the form.
+ * @param boolean $loadData True if the form is to load its own data (default case), false if not.
+ *
+ * @return mixed A JForm object on success, false on failure
+ *
+ * @see JModelForm::getForm
+ *
+ * @since 2.0.0
+ */
+ public function getForm($data = array(), $loadData = true)
+ {
+ // Get the form.
+ $plugin = isset($data['plugin']) ? $data['plugin'] : $this->getState($this->getName() . '.plugin');
+ if (empty($plugin))
+ {
+ $item = $this->getItem();
+ $plugin = $item->plugin;
+ }
+ $form = $this->loadForm('com_externallogin.server.' . $plugin, 'server', array('control' => 'jform', 'load_data' => $loadData));
+ if (empty($form))
+ {
+ return false;
+ }
+ return $form;
+ }
+
+ /**
+ * Method to get the data that should be injected in the form.
+ *
+ * @return mixed The data for the form.
+ *
+ * @since 2.0.0
+ */
+ protected function loadFormData()
+ {
+ // Check the session for previously entered form data.
+ $data = JFactory::getApplication()->getUserState('com_externallogin.edit.server.data', array());
+ if (empty($data))
+ {
+ $data = (array) $this->getItem();
+ }
+ if (empty($data['plugin']))
+ {
+ $data['plugin'] = $this->getState($this->getName() . '.plugin');
+ }
+ return $data;
+ }
+
+ /**
+ * Method to delete one or more records.
+ *
+ * @param array &$pks An array of record primary keys.
+ *
+ * @return boolean True if successful, false if an error occurs.
+ *
+ * @since 11.1
+ */
+ public function delete(&$pks)
+ {
+ if (parent::delete($pks))
+ {
+ if (!empty($pks))
+ {
+ JArrayHelper::toInteger($pks);
+ $query = $this->_db->getQuery(true);
+ $query->delete();
+ $query->from('#__users AS u');
+ $query->leftJoin('#__externallogin_users AS e ON e.user_id = u.id');
+ $query->where('e.server_id IN (' . implode(',', $pks) . ')');
+ $this->_db->setQuery($query)->query();
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Upload users
+ */
+ public function upload($form)
+ {
+ // TODO To be replaced by JInput (buggy at that time)
+ $files = JRequest::getVar('jform', null, 'files', 'array');
+ $sid = (int)$form['id'];
+ if ($files['type']['file'] == 'text/csv')
+ {
+ $handle = fopen($files['tmp_name']['file'], "r");
+ do
+ {
+ $data = fgetcsv($handle);
+ if ($data && count($data) == 4)
+ {
+ $user = JUser::getInstance();
+ if ($id = intval(JUserHelper::getUserId($data[0])))
+ {
+ $user->load($id);
+ }
+ $user->username = $data[0];
+ $user->name = $data[1];
+ $user->email = $data[2];
+ $user->groups = array();
+ $groups = explode(',', $data[3]);
+ foreach ($groups as $group)
+ {
+ if (is_numeric($group))
+ {
+ $user->groups[] = intval($group);
+ }
+ else
+ {
+ $user->groups = array_merge((array)$user->groups, (array) ExternalloginHelper::getGroups($group));
+ }
+ }
+ if ($user->save())
+ {
+ $db = JFactory::getDbo();
+ $query = $db->getQuery(true);
+ $query->insert('#__externallogin_users')->columns('server_id, user_id')->values((int) $sid . ',' . (int) $user->id);
+ $db->setQuery($query);
+ $db->query();
+ }
+ }
+ } while ($data);
+ fclose($handle);
+ return true;
+ }
+ else
+ {
+ $this->setError('COM_EXTERNALLOGIN_ERROR_BAD_FILE');
+ return false;
+ }
+ }
+}
168 src/com_externallogin/admin/models/servers.php
@@ -0,0 +1,168 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// import the Joomla modellist library
+jimport('joomla.application.component.modellist');
+
+/**
+ * Servers Model of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+class ExternalloginModelServers extends JModelList
+{
+ /**
+ * Valid filter fields or ordering.
+ *
+ * @var array
+ *
+ * @see JModelList::$filter_fields
+ *
+ * @since 2.0.0
+ */
+ protected $filter_fields = array('a.id', 'a.title', 'a.published', 'a.ordering', 'e.ordering');
+
+ /**
+ * Method to auto-populate the model state.
+ *
+ * @return void
+ *
+ * @note Calling getState in this method will result in recursion.
+ *
+ * @see JModelList::populateState
+ *
+ * @since 2.0.0
+ */
+ protected function populateState($ordering = null, $direction = null)
+ {
+ // Adjust the context to support modal layouts.
+ if ($layout = JFactory::getApplication()->input->get('layout')) {
+ $this->context .= '.'.$layout;
+ }
+
+ $search = $this->getUserStateFromRequest($this->context.'.filter.search', 'filter_search');
+ $this->setState('filter.search', $search);
+
+ $published = $this->getUserStateFromRequest($this->context.'.filter.published', 'filter_published', '');
+ $this->setState('filter.published', $published);
+
+ $plugin = $this->getUserStateFromRequest($this->context.'.filter.plugin', 'filter_plugin', '');
+ $this->setState('filter.plugin', $plugin);
+
+ // List state information.
+ parent::populateState('a.title', 'asc');
+ }
+
+ /**
+ * Method to get a JDatabaseQuery object for retrieving the data set from a database.
+ *
+ * @return object A JDatabaseQuery object to retrieve the data set.
+ *
+ * @see JModelList::getListQuery
+ *
+ * @since 2.0.0
+ */
+ protected function getListQuery()
+ {
+ // Create a new query object.
+ $db = JFactory::getDBO();
+ $query = $db->getQuery(true);
+
+ // Select some fields
+ $query->select('a.*');
+
+ // From the externallogin_servers table
+ $query->from($db->quoteName('#__externallogin_servers') . ' as a');
+
+ // Join over the users for the checked out user.
+ $query->join('LEFT', '#__users AS u ON u.id=a.checked_out');
+ $query->select('u.name AS editor');
+
+ // Join over the extensions for enabled plugins.
+ $query->join('LEFT', '#__extensions AS e ON ' .
+ $db->quoteName('e.type') . '=' . $db->quote('plugin') . ' AND ' .
+ $query->concatenate(array($db->quoteName('e.folder'), $db->quoteName('e.element')), '.') . '=' . $db->quoteName('a.plugin')
+ );
+ $query->select('e.enabled AS enabled');
+
+ // Filter by enabled state
+ $enabled = $this->getState('filter.enabled');
+ if ($enabled !== null)
+ {
+ $query->where('e.enabled = ' . (int) $enabled);
+ }
+
+ // Filter by published state
+ $published = $this->getState('filter.published');
+ if (is_numeric($published))
+ {
+ $query->where('a.published = ' . (int) $published);
+ }
+ else if ($published === '')
+ {
+ $query->where('(a.published >= 0)');
+ }
+
+ // Filter by search in title.
+ $search = $this->getState('filter.search');
+ if (!empty($search))
+ {
+ if (stripos($search, 'id:') === 0)
+ {
+ $query->where('a.id = '. (int) substr($search, 3));
+ }
+ else
+ {
+ $search = $db->Quote('%'.$db->getEscaped($search, true).'%');
+ $query->where('a.title LIKE ' . $search);
+ }
+ }
+
+ // Filter by plugin
+ $plugin = $this->getState('filter.plugin');
+ if (!empty($plugin))
+ {
+ $query->where('a.plugin = ' . $db->quote($plugin));
+ }
+
+ // Filter by servers
+ $servers = $this->getState('filter.servers');
+ JArrayHelper::toInteger($servers);
+ if (!empty($servers))
+ {
+ $query->where('a.id IN (' . implode(',', $servers) . ')');
+ }
+
+ // Add the list ordering clause.
+ $orderCol = $this->state->get('list.ordering');
+ $orderDirn = $this->state->get('list.direction');
+ switch ($orderCol)
+ {
+ case 'e.ordering':
+ $query->order($db->getEscaped('e.ordering ' . $orderDirn));
+ $query->order($db->getEscaped('a.ordering ASC'));
+ break;
+ default:
+ $query->order($db->getEscaped($orderCol.' '.$orderDirn));
+ break;
+ }
+
+ return $query;
+ }
+}
82 src/com_externallogin/admin/models/upload.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// import Joomla modeladmin library
+jimport('joomla.application.component.modeladmin');
+
+/**
+ * Upload Model of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+class ExternalloginModelUpload extends JModelAdmin
+{
+ /**
+ * Returns a reference to the a Table object, always creating it.
+ *
+ * @param type The table type to instantiate
+ * @param string A prefix for the table class name. Optional.
+ * @param array Configuration array for model. Optional.
+ *
+ * @return JTable A database object
+ *
+ * @see JModel::getTable
+ *
+ * @since 2.0.0
+ */
+ public function getTable($type = 'Server', $prefix = 'ExternalloginTable', $config = array())
+ {
+ return JTable::getInstance($type, $prefix, $config);
+ }
+
+ /**
+ * Method to get the record form.
+ *
+ * @param array $data Data for the form.
+ * @param boolean $loadData True if the form is to load its own data (default case), false if not.
+ *
+ * @return mixed A JForm object on success, false on failure
+ *
+ * @see JModelForm::getForm
+ *
+ * @since 2.0.0
+ */
+ public function getForm($data = array(), $loadData = true)
+ {
+ // Get the form.
+ $form = $this->loadForm('com_externallogin.upload', 'upload', array('control' => 'jform', 'load_data' => $loadData));
+ if (empty($form))
+ {
+ return false;
+ }
+ return $form;
+ }
+
+ /**
+ * Method to get the data that should be injected in the form.
+ *
+ * @return mixed The data for the form.
+ *
+ * @since 2.0.0
+ */
+ protected function loadFormData()
+ {
+ return $this->getItem();
+ }
+}
1  src/com_externallogin/admin/sql/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
30 src/com_externallogin/admin/sql/install.mysql.utf8.sql
@@ -0,0 +1,30 @@
+-- @package External Login
+-- @subpackage Component
+-- @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+-- @author Christophe Demko
+-- @author Ioannis Barounis
+-- @author Alexandre Gandois
+-- @link http://www.chdemko.com
+-- @license http://www.gnu.org/licenses/gpl-2.0.html
+
+CREATE TABLE IF NOT EXISTS `#__externallogin_servers` (
+ `id` INT(11) NOT NULL AUTO_INCREMENT,
+ `title` VARCHAR(255) NOT NULL,
+ `published` TINYINT(3) NOT NULL,
+ `plugin` VARCHAR(255) NOT NULL,
+ `ordering` INT(11) NOT NULL,
+ `checked_out` INT(11) NOT NULL,
+ `checked_out_time` DATETIME NOT NULL,
+ `params` TEXT NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE (`title`)
+) DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `#__externallogin_users` (
+ `server_id` INT(11) NOT NULL,
+ `user_id` INT(11) NOT NULL,
+ INDEX (`server_id`),
+ INDEX (`user_id`),
+ UNIQUE (`server_id`, `user_id`)
+) DEFAULT CHARSET=utf8;
+
12 src/com_externallogin/admin/sql/uninstall.mysql.utf8.sql
@@ -0,0 +1,12 @@
+-- @package External Login
+-- @subpackage Component
+-- @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+-- @author Christophe Demko
+-- @author Ioannis Barounis
+-- @author Alexandre Gandois
+-- @link http://www.chdemko.com
+-- @license http://www.gnu.org/licenses/gpl-2.0.html
+
+DROP TABLE IF EXISTS `#__externallogin_servers`;
+DROP TABLE IF EXISTS `#__externallogin_users`;
+
1  src/com_externallogin/admin/sql/updates/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
9 src/com_externallogin/admin/sql/updates/mysql/2.0.0.sql
@@ -0,0 +1,9 @@
+-- @package External Login
+-- @subpackage Component
+-- @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+-- @author Christophe Demko
+-- @author Ioannis Barounis
+-- @author Alexandre Gandois
+-- @link http://www.chdemko.com
+-- @license http://www.gnu.org/licenses/gpl-2.0.html
+
1  src/com_externallogin/admin/sql/updates/mysql/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
1  src/com_externallogin/admin/tables/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
106 src/com_externallogin/admin/tables/server.php
@@ -0,0 +1,106 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access
+defined('_JEXEC') or die;
+
+// import Joomla table library
+jimport('joomla.database.table');
+
+/**
+ * Server Table class of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 0.0.1
+ */
+class ExternalloginTableServer extends JTable
+{
+ /**
+ * Constructor
+ *
+ * @param object Database connector object
+ *
+ * @see JTable::__construct
+ *
+ * @since 2.0.0
+ */
+ public function __construct(&$db)
+ {
+ parent::__construct('#__externallogin_servers', 'id', $db);
+ }
+
+ /**
+ * Overloaded load function.
+ *
+ * @param mixed $keys An optional primary key value to load the row by, or an array of fields to match. If not
+ * set the instance property value is used.
+ * @param boolean $reset True to reset the default values before loading the new row.
+ *
+ * @return boolean True on success.
+ *
+ * @see JTable::load
+ *
+ * @since 2.0.0
+ */
+ public function load($keys = null, $reset = true)
+ {
+ if (parent::load($keys, $reset))
+ {
+ if (isset($this->params))
+ {
+ $this->params = new JRegistry($this->params);
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Overloaded store function.
+ *
+ * @param boolean $updateNulls True to update fields even if they are null.
+ *
+ * @return boolean True on success.
+ *
+ * @link http://docs.joomla.org/JTable/store
+ * @since 2.0.0
+ */
+ public function store($updateNulls = false)
+ {
+ if ($this->ordering == 0)
+ {
+ $query = $this->_db->getQuery(true);
+ $query->select('MAX(ordering)');
+ $query->from('#__externallogin_servers');
+ $this->_db->setQuery($query);
+ $this->ordering = $this->_db->loadResult() + 1;
+ }
+ if (is_array($this->params))
+ {
+ $this->params = (string) new JRegistry($this->params);
+ }
+ if (parent::store($updateNulls))
+ {
+ return $this->reorder();
+ }
+ else
+ {
+ return false;
+ }
+ }
+}
1  src/com_externallogin/admin/views/about/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
17 src/com_externallogin/admin/views/about/tmpl/default.php
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+echo JText::_('COM_EXTERNALLOGIN_ABOUT');
1  src/com_externallogin/admin/views/about/tmpl/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
68 src/com_externallogin/admin/views/about/view.html.php
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * @package External Login
+ * @subpackage Component
+ * @copyright Copyright (C) 2008-2012 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved.
+ * @author Christophe Demko
+ * @author Ioannis Barounis
+ * @author Alexandre Gandois
+ * @link http://www.chdemko.com
+ * @license http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+// No direct access to this file
+defined('_JEXEC') or die;
+
+// import Joomla view library
+jimport('joomla.application.component.view');
+
+/**
+ * About View of External Login component
+ *
+ * @package External Login
+ * @subpackage Component
+ *
+ * @since 2.0.0
+ */
+class ExternalloginViewAbout extends JView
+{
+ /**
+ * Execute and display a layout script.
+ *
+ * @param string $tpl The name of the layout file to parse.
+ *
+ * @return void|JError
+ *
+ * @see Overload JView::display
+ *
+ * @since 2.0.0
+ */
+ public function display($tpl = null)
+ {
+ // Set the toolbar
+ $this->addToolBar();
+
+ // Display the template
+ parent::display($tpl);
+ }
+
+ /**
+ * Setting the toolbar
+ *
+ * @since 2.0.0
+ */
+ protected function addToolbar()
+ {
+ // Load specific css component
+ JHtml::_('stylesheet', 'com_externallogin/administrator/externallogin.css', array(), true);
+
+ // Set the title
+ JToolBarHelper::title(JText::_('COM_EXTERNALLOGIN_MANAGER_ABOUT'), 'about');