Commit Graph

1861 Commits

Author SHA1 Message Date
Michael 4a1f9a9bdd Improved url detection for redirects 2018-11-30 11:27:17 +00:00
Hypolite Petovan 663ba65f17 Remove "all" value for nets parameter 2018-11-30 05:43:07 -05:00
Michael 4f9f86e310 We are now escaping many template fields 2018-11-25 18:56:26 +00:00
Hypolite Petovan 4b8af10561 Fix display of Connect/Disconnect links on contact page 2018-11-23 11:09:43 -05:00
Tobias Diekershoff 6be831fd32 Add link to user groups from /contact
There was no way to get to the contact group editor from the contact overview.

Additionally the documentation about the used accesskeys was updated.
2018-11-17 18:33:12 +01:00
Michael 5f258dac22 Make feeds look more like feeds 2018-11-15 13:21:58 +00:00
Michael 268862dd7c Just some notice again 2018-11-14 10:54:42 +00:00
Michael e1875cf206 Fixes notice "PHP Notice: Undefined index: return_path" 2018-11-13 18:10:37 +00:00
Michael 8844bb690d Issue 6100: The AS object should be fetchable for every original post 2018-11-10 23:56:11 +00:00
Adam Magness 218f0734be Rename removeTags to escapeTags
rename function and update calls.
2018-11-09 13:29:42 -05:00
Adam Magness 063f0e9cb0 Rename escapeTags to escapeHtml
rename function and update calls.
2018-11-09 13:27:58 -05:00
Adam Magness ffc406d819 normalise_link calls
implement normaliseLink function
2018-11-08 11:28:29 -05:00
Adam Magness 6fc9c6de3b base64url calls
implement base64UrlEncode and base64UrlDecode functions
2018-11-08 10:37:08 -05:00
Adam Magness 0efcbe5d15 protect_sprintf calls
implement protectSprintf function
2018-11-08 10:30:45 -05:00
Adam Magness 916b3e551e format_network_name calls
implement formatNetworkName function
2018-11-08 10:24:47 -05:00
Adam Magness 0e01568ccd escape_tags calls
implement escapeTags function
2018-11-08 10:20:03 -05:00
Adam Magness a0f65ca7a1 notags calls
implement removeTags function
2018-11-08 10:14:37 -05:00
Adam Magness 991f259ecb random_string calls
implement getRandomHex function
2018-11-08 08:45:46 -05:00
Tobias Diekershoff e12942ce7f
Merge pull request #6058 from JonnyTischbein/issue_contact_batch_archive
[frio] Fix unarchive contact batch action
2018-11-01 06:41:05 +01:00
Jonny Tischbein 76c9d37006 Fix not working unarchive contact batch action 2018-10-31 21:20:44 +01:00
vinzv fc2b81d0dd
Update Install.php
Please update messages.po at Transifex as well.
2018-10-31 21:03:32 +01:00
Adam Magness 70f01d6c00 Template Engine and props to Renderer
move methods and props from App to Renderer
2018-10-31 13:25:38 -04:00
Adam Magness 35abc4bb64 get markup template
implement getMarkupTemplate function
2018-10-31 10:44:06 -04:00
Adam Magness 91facd2d0a replace macros
implement new replaceMacros function
2018-10-31 10:35:50 -04:00
Adam Magness 50da89d861 Logger Levels
update logger levels in calls
2018-10-30 09:58:45 -04:00
Adam Magness 14fde5dc9b Log function
implement log() function.
2018-10-30 09:57:14 -04:00
Philipp Holzer cf39c9df81
Bugfixings
- moved testargs.php to util directory
- Switch Environment check before config at automatic install
- checkPHP() is now finding the PHP binary too
- Bugfixing checkPHP() & required returned wrong status
- removing not used $_POST['phpath'] in web installer
2018-10-30 11:30:19 +01:00
Philipp Holzer f0382ab919
Refactoring Installation
- centralized installation
- renamed Core\Install to Core\Installer
- avoid using $a->data[] for states
- removed unnecessary code
2018-10-29 18:44:39 +01:00
Philipp Holzer cfae736660
Code Standards 2018-10-29 14:39:09 +01:00
Philipp Holzer abb50fbf62
Install to Module
- Move Install to Module
- Some Bugfixings
2018-10-29 14:10:45 +01:00
Hypolite Petovan 7c0b591043 Move itemCount parameter from constructor to renderFull()
- Remove Pager->itemCount property and Pager->setItemCount() method
- Update usage
2018-10-25 00:07:16 -04:00
Hypolite Petovan 14237a9599 Move $pager and $page_offset out of App
- Move infinite scroll data output in a module hook
- Use Pager instead of paginate() and alt_pager()
2018-10-25 00:07:15 -04:00
Philipp Holzer 48535c0959
Bugfixing redirects
- Adding App->redirect if both redirects are possible
2018-10-24 20:18:46 +02:00
vinzv cb75c40f4e adapted profile pic resize to 300px for whole system 2018-10-23 16:36:57 +02:00
Hypolite Petovan e511790d62 Move NULL_DATE from boot.php to DBA::NULL_DATETIME
- Add DBA::NULL_DATE constant
2018-10-22 16:50:55 -04:00
Philipp Holzer 32af52842b
adding defaults in mod/redir.php 2018-10-22 22:13:41 +02:00
Philipp Holzer 34989480e1
removed unnecessary System use 2018-10-22 22:13:39 +02:00
Philipp Holzer 3edad1591e
replaced $return_url to $return_path to make it more clear that it is a relative path to the Friendica baseurl 2018-10-22 22:13:37 +02:00
Philipp Holzer d00ddc01af
Split goaway to System::externalRedirectTo() and App->internalRedirect() 2018-10-22 22:13:35 +02:00
Philipp Holzer 2ef81108b3
Renamed System::redirect() to $a->redirect() 2018-10-22 22:13:22 +02:00
Hypolite Petovan ec0d3a6eac
Merge pull request #5946 from JonnyTischbein/move_include_security
Move and Split include/security
2018-10-19 08:55:08 -04:00
Hypolite Petovan d0681075bf Add itemsource module 2018-10-18 22:49:25 -04:00
Jonny Tischbein f3fc1f36ca Renaming functions + moving functions from security to Model/Item and BaseModule + fix multiline comments 2018-10-17 21:30:41 +02:00
Jonny Tischbein ce2b1f5715 Rename function Authentication::authenticate_success to Authentication::success 2018-10-17 18:45:32 +02:00
Jonny Tischbein 45e5a7f59f remove unsed require_onces of security.php 2018-10-17 18:39:27 +02:00
Jonny Tischbein 05be2db725 Move include/security tp /src/Core/Authentication and /src/Util/Security 2018-10-17 14:19:58 +02:00
Hypolite Petovan aa8039373a Update formatting of Module\Contact
- Replace double quotes with single
- Align array declarations
- Replace q() call with Model\User::getOwnerDataById()
2018-10-14 18:30:02 -04:00
Hypolite Petovan a883a99fe6 Replace string fields by array in Module\Contact 2018-10-14 18:27:24 -04:00
Hypolite Petovan 12ddb3bb54 Replace unwarranted uses of $a->data['contact'] 2018-10-14 18:25:44 -04:00
Hypolite Petovan 57e8fb5cb1 Normalize uses of defaults() in Module\Contact
- Remove uses without default value
- Add relevant uses
2018-10-14 18:24:02 -04:00
Hypolite Petovan 756a4f1111 Fix remaining instances of "contacts" 2018-10-14 18:02:54 -04:00
Hypolite Petovan 74c5f1f684
Merge pull request #5891 from JonnyTischbein/move_module_contacts
Move module contacts
2018-10-14 16:42:50 -04:00
Jonny Tischbein e41c59b193 Fix batch action choice - All Actions for one contact were taken before 2018-10-14 21:38:38 +02:00
Jonny Tischbein d54e56c659 Fix batch action query + Fix Namespace import 2018-10-14 21:14:32 +02:00
Jonny Tischbein 5fd4402074 code standards + fixing navigation links to /contact/... 2018-10-14 20:03:22 +02:00
Philipp Holzer 753f61f633
FollowUp Acctlink move 2018-10-14 10:31:11 +02:00
Philipp Holzer 3f729df258
Renamed AcctLink to Acctlink 2018-10-13 19:03:38 +02:00
Philipp Holzer 508032cf9a
Move Module AcctLink 2018-10-13 18:32:14 +02:00
Jonny Tischbein bfa05156ca change links from /contacts to /contact 2018-10-13 13:29:56 +02:00
Jonny Tischbein 738cb4ace6 finish refactoring to Module\Contact 2018-10-13 11:35:51 +02:00
Jonny Tischbein cdbddd0103 Renaming functions and class 2018-10-13 11:23:52 +02:00
Jonny Tischbein 93ab82b7f0 Rename Contacts:content function 2018-10-11 23:45:01 +02:00
Jonny Tischbein ba95487abf Upate Contacts module file 2018-10-11 23:41:27 +02:00
Jonny Tischbein 80ea86113d Move mod Contacts to /src/Module 2018-10-11 23:14:12 +02:00
Philipp Holzer ffbc688797
Curl Response Refactoring
- refactored Network::getCurl()
- replaced every Network::getCur() execution with a Curl Response
2018-10-10 21:50:13 +02:00
Philipp Holzer 2dec8895a9
Curl Response Refactoring
- extended Curl to parse Curl Response
- refactored Network::curl()
- replaced every Network::curl() execution with the new Curl container
2018-10-10 21:08:43 +02:00
Philipp Holzer 307286fc47
parameters and getURLpath to getURLPath 2018-10-10 01:18:47 +02:00
Philipp Holzer 5a02e39a65
Rename App Methods
- renamed a lot of App methods to CamelCase
- replaced direct public variables with get-/set-Methods
2018-10-10 00:16:06 +02:00
Jonny Tischbein 2db2b79bfa Give Login Form previous URL to return to. SESSION var is empty if invalid page. empty args is catched by function 2018-10-09 21:38:17 +02:00
Jonny Tischbein 28456de249 Save return_url before login. Add login mask to many sites if not logged in. 2018-10-07 16:34:08 +02:00
Hypolite Petovan 743e7d3ecb
Merge pull request #5815 from annando/ap2
The ActivityPub functionality is now split into 4 files
2018-10-04 09:10:17 -04:00
Jonny Tischbein ee32459358 goaway with argument 2018-10-03 18:28:04 +02:00
Jonny Tischbein 3c9b33176f Static reason for login failure to prevent bruteforce 2018-10-03 14:32:16 +02:00
Jonny Tischbein 3ecabe0291 Fix goaway url when login failed + using info to display message 2018-10-03 13:10:49 +02:00
Michael 3ab837f3c7 Functionality is now split 2018-10-03 09:15:38 +00:00
Michael 4d2e5c2bbe AP class will be split in processor, receiver and transmitter 2018-10-03 06:15:07 +00:00
Michael 76cdc9e594 Renamed class 2018-10-02 20:14:28 +00:00
Michael 518d461a8f Issue 5811: "objects" instead of "object" 2018-10-02 20:12:38 +00:00
Michael a8b776c189 There is now "rawContent" for technical endpoints 2018-09-30 13:15:10 +00:00
Michael cb44aa83c7 Object instead of Display 2018-09-30 12:21:57 +00:00
Michael 82987d018a Some changes for better code quality 2018-09-30 07:21:57 +00:00
Michael 5e3f71680c Disabled logging 2018-09-24 21:47:10 +00:00
Michael 8c7e5bb776 all endpoints are now working 2018-09-23 17:29:31 +00:00
Michael c083ae047c Merge remote-tracking branch 'upstream/2018.08-rc' into ap1 2018-09-22 15:18:53 +00:00
Michael b44fc62708 Improvements to signature check, private posts do work now again 2018-09-21 22:31:33 +00:00
Michael 11310f4cf0 Relocated AP signature functions, reduced magic auth functions 2018-09-20 18:16:14 +00:00
Michael 91d1b4de5d We now use the conversation data with AP 2018-09-17 05:51:05 +00:00
Michael 699a4140f9 Now sending does finally work - and some AP standards are improved as well 2018-09-16 20:12:48 +00:00
Hypolite Petovan 9d0a6f90b6 Update "mrpetovan" email address
- Fix Tobias' email address
- Fix copypasted doc block in Console/PostUpdate
2018-09-15 19:28:38 -04:00
Michael 96f575fe28 Processing of personal inbox enabled 2018-09-15 10:14:56 +00:00
Michael 61e2c7d20d Added AP to many network conditions / enabling inbox processing 2018-09-14 16:51:32 +00:00
Michael f7b03bc5f3 Missing $ 2018-09-12 21:33:44 +00:00
Michael 67fa0ed433 Signature check added 2018-09-12 21:30:10 +00:00
Michael 8c07baf54b Better http answers 2018-09-12 06:01:28 +00:00
Michael 0a5476591d Activitity pub - first commit with much test code 2018-09-10 21:07:25 +00:00
Michael e9a73e4480 Fix fatal error due to missing "use" 2018-09-06 13:27:03 +00:00
Michael 380eeaab88 Still there had been notices - must have a good camouflage 2018-08-31 05:08:22 +00:00
Michael 2079caea14 Issue 3501: Mail contacts can be added again 2018-08-26 19:49:39 +00:00
Michael Vogel 7f3fb34c24 Some easy to replace "q" calls have been replaced by "DBA" calls (#5632)
* Some easy to replace "q" calls have been replaced by "DBA" calls

* Simplified the GUID creation

* And one in the API ...

* And OStatus has got some DBA calls more

* Just some more replaced database calls

* The event query is now simplified

* Events are now shown again

* subthread is now using the DBA calls as well

* Some more replaced database calls

* And some more replaced database calls and prevented notices

* Better use gravity

* Some more replaced database stuff

* Some more replaced database calls in DFRN.php

* The gcontact class now has got the new DBA functions as well

* The Contact class is now changed to new database functions as well

* Small correction

* We can now delete without cascade

* One more functionality is safe for future changes
2018-08-19 12:46:10 +00:00
Michael Vogel c72c64a6d8 Notices again (#5543)
* And again notices

* Notices in the directory

* Much more places

* Fix some double $

* Notice in ping

* Missing field

* Fix: We now remove deleted users from the directory

* Some more stuff

* Notices when removing users

* Added logging

* More logging

* Two more
2018-08-02 07:21:01 +02:00
Roland Häder 4d39164c1e [WIP] Rewrite to Proxy class: (#5507)
* Rewrite to Proxy class:
- introduced new Friendica\Network\Proxy class for in exchange of proxy_*()
  functions
- moved also all PROXY_* constants there as Proxy::*
- removed now no longer needed mod/proxy.php loading as composer's auto-load
  will do this for us
- renamed those proxy_*() functions to better names:
  + proxy_init()           -> Proxy::init()         (public)
  + proxy_url()            -> Proxy::proxifyUrl()   (public)
  + proxy_parse_html()     -> Proxy::proxifyHtml()  (public)
  + proxy_is_local_image() -> Proxy::isLocalImage() (private)
  + proxy_parse_query()    -> Proxy::parseQuery()   (private)
  + proxy_img_cb()         -> Proxy::replaceUrl()   (private)

* Ops, need to set $a here ...

* CR request:
- moved Proxy class to Friendica\Module
- extended BaseModule

* Ops, no need for own instance of $a when self::getApp() is around.

* Proxy-rewrite:
- proxy_url() and proxy_parse_html() are both non-module functions (now
  methods)
- so they must be splitted into a seperate class
- also the SIZE_* and DEFAULT_TIME constants are both not relevant to module

* No instances from utility classes

* Fixed error:
- proxify*() is now located in `Friendica\Util\ProxyUtils`

* Moved back to original place, ops? How did they move here? Well, it was not
intended by me.

* Removed duplicate (left-over from split) constants and static array. Thank to
MrPetovan finding it.

* Renamed ProxyUtils -> Proxy and aliased it back to ProxyUtils.
2018-07-30 22:06:22 -04:00
Hypolite Petovan ecea7425f8 Rename DBA::is_result to DBA::isResult 2018-07-23 11:04:14 -04:00
Hypolite Petovan 0ec44f3e8a Rename DBM method calls to DBA method calls 2018-07-23 11:02:24 -04:00
Hypolite Petovan af6dbc654f Rename Friendica\Database\dba to Friendica\Database\DBA 2018-07-20 08:19:26 -04:00
Hypolite Petovan daa1177e3a Update use statement lists with new Friendica\Database\dba class
- Remove unused use statement
- Remove superfluous use statements (classes in the same namespace)
- Add missing use statements
2018-07-19 22:15:21 -04:00
Hypolite Petovan 67dc08d120 Enforce systen.register_policy value type 2018-07-16 19:38:19 -04:00
Hypolite Petovan 762a786611 Replace direct accesses to App->config by Config::get/set calls 2018-07-16 19:38:16 -04:00
Hypolite Petovan e952d6677b Rename App->path to App->urlpath 2018-07-16 19:38:13 -04:00
Michael Vogel 0360f7197a Several more warnings ... (#5340)
* Some more warnings removed

* Even more warnings ...

* Will it ever end? ;-)

* Avoid warning in dbstructure

* Origin and OStatus ...

* There are more warnings solved ... yeah!

* And again ...

* We are not done yet

* And more ...

* And some new places ...

* And more in the feeds

* Avoid some more

* And some backend stuff

* Notifications cleared

* Some more stuff

* and again ...

* It's getting fewer ...

* Some warnings had been hidden in the notifications

* Fix the fix

* And another missing one ...

* We need the owner here, not the user

* Forgotten user

* And more ...

* And some more warnings disappeared ...

* Some more frontend warnings

* Some backend warnings removed

* Fixed sidebar for "vier"

* And more ...

* Some more ...

* And something for "remote self"

* Am I stuck in an endless loop?

* Fix: Clear tag and file field on update

* Preset page content
2018-07-10 08:27:56 -04:00
rabuzarus 04fe3acb69 port hubzillas OpenWebAuth - fix method call 2018-06-20 23:29:36 +02:00
rabuzarus e4aaf8eb16 port hubzillas OpenWebAuth - fix some code standards violations 2018-06-20 19:32:26 +02:00
rabuzarus 149142b4bc port hubzillas OpenWebAuth - rename Verify class to OpenWebAuthToken 2018-06-20 19:24:02 +02:00
rabuzarus f0235c4a98 port hubzillas OpenWebAuth - rename some methods and classes 2018-06-20 18:38:23 +02:00
rabuzarus b65e4b278b port hubzillas OpenWebAuth - use Contact::getIdForURL to query for contact entry 2018-06-19 16:15:28 +02:00
rabuzarus 9195ea26b1 port hubzillas OpenWebAuth - add some notes to the doxygen to refer to hubzilla's source code 2018-06-19 13:30:55 +02:00
rabuzarus 1c7f4e3c63 port hubzillas OpenWebAuth - remote authentification 2018-06-18 23:05:44 +02:00
Tobias Diekershoff f7c24a20ae cite: just some small styling thing 2018-05-20 08:43:43 +02:00
Tobias Diekershoff 2798d4ea4d missing sign 2018-05-19 19:08:50 +02:00
Tobias Diekershoff 4f8530070b removed one line too much 2018-05-19 19:07:13 +02:00
Tobias Diekershoff e02093c7ea text of the priv. statement can now be shown outside of the module 2018-05-19 18:55:29 +02:00
Roland Häder 6129eb1623
OpenId possibly fixed:
- The LightOpenId class' constructor now requires the hostname from where the
  requested started, added it now
- sometimes need to invoke get_app() as $a was not around

Signed-off-by: Roland Häder <roland@mxchange.org>
2018-05-17 00:24:25 +02:00
Tobias Diekershoff 72a2896d1f profile data is transmitted to other nodes 2018-04-16 09:27:16 +02:00
Tobias Diekershoff 4b7014d367 move the tos module to src/Module 2018-04-03 16:33:10 +02:00
Hypolite Petovan a5bb8f4e7d Strip strtolower from Module\Hashtag 2018-03-29 00:47:14 -04:00
rabuzarus c209853e1d add dependencies (require_once) to hashtag module 2018-03-16 14:44:51 +01:00
rabuzarus 86d84e5f31 fix code standards 2018-03-16 14:27:04 +01:00
rabuzarus 96c086ea13 hashtag autocomplete 2018-03-16 13:55:26 +01:00
Michael Vogel 25fbdd21c5
Merge pull request #4429 from MrPetovan/bug/4426-handle-auth-exceptions
Handle authentication exceptions in Login module
2018-02-09 19:03:52 +01:00
Hypolite Petovan 8a9917857e Handle authentication exceptions in Login module
- Break down large methods into smaller ones
- Add more authentication exception
- Add a legacy User::authenticate method
2018-02-09 00:08:01 -05:00
Michael 15a857e411 Line endings are converted to unix style 2018-02-09 03:49:49 +00:00
Hypolite Petovan f020292408 Remove references to include/datetime 2018-02-03 20:47:37 -05:00
Hypolite Petovan 5e7285b9ba Move Temporal::convert() to DateTimeFormat::convert() 2018-02-03 08:56:55 -05:00
Hypolite Petovan 35d06bd9eb Add Temporal::utc() shorthand to Temporal::convert() 2018-02-03 08:56:53 -05:00
Hypolite Petovan 8aff8a76eb Add Temporal::utcNow() 2018-02-03 08:56:52 -05:00
Hypolite Petovan dc366bf1f7 Refactor datetime_convert into Temporal::convert
- Changed parameter order to save space
- Refactor select_timezone into Temporal::getTimezoneSelect
- Refactor field_timezone into Temporal::getTimezoneField
2018-02-03 08:56:51 -05:00
Hypolite Petovan 236616995b Remove references to library/openid 2018-01-27 18:28:04 -05:00
Adam Magness 9b8599b619 Move functions to system
move some functions to system
2018-01-27 11:59:10 -05:00
Adam Magness f04d40a37e Review update
Rename function, move others
2018-01-27 11:13:41 -05:00
Adam Magness 1eb7c19c1e Move multiple functions
move multiple smaller functions
2018-01-26 23:51:41 -05:00
Adam Magness cd3643d174 Move xml_status and http_status_exit
move functions
2018-01-26 23:37:55 -05:00
Adam Magness b4d0df18c5 Remove old file and requires
Remove pgettext.php and remove require_once calls
2018-01-22 18:03:26 -05:00
Adam Magness 07d306aa37 Finish t() for src
Update t() calls in src folder
2018-01-22 18:03:26 -05:00
Adam Magness d49f986d1e Many t() calls
modify many t() calls.
2018-01-22 18:03:26 -05:00
Adam Magness b86b04a81a Change plugin to addon
change the use of plugin to addon where appropriate.
2018-01-20 07:48:22 -05:00
Adam Magness 11cf36105c Update Addon functions and calls
Update function names and calls for Addon class.
2018-01-20 07:48:22 -05:00
Sandro Santilli 032c87d718 Do not "pollute" global namespace with LightOpenID symbol 2018-01-16 13:11:38 +01:00
Sandro Santilli 6bc096b150 Fix LightOpenID usage
otherwise failing with:
PHP Fatal error: Class 'Friendica\\Module\\LightOpenID' not found in src/Module/Login.php on line 68
2018-01-16 10:48:59 +01:00
Hypolite Petovan e36f2bb1fb Use short form array syntax everywhere
- Add short form array syntax to po2php.php generation
2018-01-15 14:07:17 -05:00
rabuzarus 1bce1b57eb convert line endings 2018-01-11 01:06:00 +01:00
rabuzarus d123a6523d I shouldn't try to code today 2018-01-10 23:18:04 +01:00
rabuzarus b1ae8151c2 fix a silly mistake 2018-01-10 22:57:27 +01:00
rabuzarus 4d5581a9d1 use self::getApp()->contact 2018-01-10 22:39:42 +01:00
rabuzarus 186b6330b9 Bugfix: getApp() in sessionAuth() 2018-01-10 22:21:22 +01:00
Hypolite Petovan ae66bcaff3 Rename selectOne to selectFirst 2018-01-10 12:57:21 -05:00
Hypolite Petovan da60893590 Replace dba::select(limit => 1) by dba::selectOne
- Convert array declarations to new style
2018-01-10 12:57:21 -05:00
Hypolite Petovan 0aea615995 Add float casting back to dfrn_poll
- Add new line at end of new module files
2018-01-02 19:37:17 -05:00
Hypolite Petovan 9a3e773a9a Merge branch 'develop' into task/3954-move-auth-to-src 2018-01-02 19:30:41 -05:00
Michael Vogel a86ffd878d
Merge pull request #4152 from MrPetovan/task/4137-add-posts-only-feed
Add posts only feed
2018-01-02 10:14:56 +01:00
Hypolite Petovan e7c53af6fa Add Module\Oembed and Content\OEmbed 2017-12-31 20:58:09 -05:00
Hypolite Petovan a75a27e08f Add Feed module
- Update profile alternate links
2017-12-30 00:32:45 -05:00
Hypolite Petovan 2243a82bb4 Add new Module classes
- Add BaseModule
- Add Login module
- Add Logout module
2017-12-29 21:55:13 -05:00