Commit Graph

128 Commits

Author SHA1 Message Date
Marien Fressinaud
a47ce4f6af Fix including extensions for actualize_script
Extensions could be included multiple times. It resulted in an error.
2015-01-29 10:17:29 +01:00
Marien Fressinaud
22d7e0d638 Simplify code for cookie dir
See https://github.com/FreshRSS/FreshRSS/issues/700
See eec95ffb6a
2015-01-21 16:28:29 +01:00
Marien Fressinaud
eec95ffb6a Fix bug related to cookie path
Fix https://github.com/FreshRSS/FreshRSS/issues/700
2015-01-21 15:43:25 +01:00
Alexandre Alapetite
211569ef85 Minz: missing URL key/param encoding
Caused searches such as "intitle:&" to fail after paging, and
possible XSS vulnerabilities.
Discovered during https://github.com/FreshRSS/FreshRSS/issues/754
2015-01-21 00:44:26 +01:00
Alexandre Alapetite
12081f7ba2 Quick fix cron actualization due to problematic FreshRSS constructor/init
https://github.com/FreshRSS/FreshRSS/issues/759
Suggestion: the static objects should be user-independent (or at least
with the possibility to be re-set), while the FreshRSS object and its
attributes should be user-dependent.
2015-01-20 23:29:04 +01:00
Alexandre Alapetite
d30b3becfa Addressed warnings when reading from new files
There were warnings when reading extensions (trying to use e.g. README
and .gitignore as directories), and when reading update file.
https://github.com/FreshRSS/FreshRSS/issues/733
2015-01-19 13:54:57 +01:00
Marien Fressinaud
d91a92434f Fix Minz_Error and error_Controller
- Error code and logs was not propagated from Minz_Error to the controller
- header was bad (200 instead of 404 or 403)

Related to https://github.com/FreshRSS/FreshRSS/issues/751
2015-01-18 11:47:16 +01:00
Marien Fressinaud
2039710d12 Avoid "PHP Strict Standards" error
A "Only variables should be passed by reference" error was raised in the
extension->getFileUrl() method.
2015-01-15 13:43:05 +01:00
Marien Fressinaud
13cf8b5f9f Improve hook calls and add post_update hook
- To the hook is associated a method signature (OneToOne or NoneToNone for now) so
  it is easier to call hooks correctly
- post_update hook is called during the post update moment.
2015-01-15 12:02:42 +01:00
Marien Fressinaud
789d9fc6c8 Fix coding style in extension manager
Yep, same as 8968288...
2015-01-14 23:40:18 +01:00
Marien Fressinaud
8968288600 Fix extension API (coding style)
is_enabled() becomes isEnabled(). Sorry for this coding style mistake :s
2015-01-14 22:22:30 +01:00
Marien Fressinaud
ade1524d43 Fix valid extension entry points.
Add possibility to use underscores (_) in entrypoints.
2015-01-14 21:59:53 +01:00
Marien Fressinaud
806b4de54f Add mechanism at (un)install of an extension
Test if the install or uninstall has been successfully performed.
If these methods return true, all is ok but if a string is returned,
the string must explain the problem. This problem is stored in log file.

A feedback is given to explain to check log file.

This commit fix a problem in the english translation of
feedback.sub.feed.internal_problem.
2015-01-14 21:38:35 +01:00
Marien Fressinaud
b23fc3187c Fix translation bug
A path registered after initialization must be loaded.
2015-01-08 21:32:21 +01:00
Marien Fressinaud
19dfef8b49 Fix bug with Minz_Translate
When a path was registered before initialization, it was not considered unless
by calling reset() method.

This is fixed now.
2015-01-08 16:32:13 +01:00
Marien Fressinaud
85ea5e548a Fix install.php script (choice of lang)
Fix a bug in Minz_Translate too
2015-01-08 15:16:32 +01:00
Marien Fressinaud
8f04cb9d9d Change Minz_Translate::reset() behaviour
- Don't reset the path list (use init() instead)
- init() accept a null lang_name. To use i18n, you'll have to use reset() later.
  It is helpful to load the list of available language before choosing one of them.
2015-01-08 15:05:25 +01:00
Marien Fressinaud
a3f667e586 Fix Minz_Translate::availableLanguages() method 2015-01-08 14:50:21 +01:00
Marien Fressinaud
5bd7997d41 Call handleConfigureAction() even for GET requests
See https://github.com/FreshRSS/FreshRSS/issues/252
2015-01-08 14:30:05 +01:00
Marien Fressinaud
73023bc12b Merge branch 'dev' into 252-extensions
Conflicts:
	app/FreshRSS.php
	app/Models/Configuration.php
	app/views/index/index.phtml
	app/views/index/normal.phtml
	lib/Minz/Configuration.php
	lib/Minz/Translate.php
	lib/lib_rss.php
2015-01-08 14:18:32 +01:00
Marien Fressinaud
fb614ab80c Change way to call configuration setter.
- Add a support($key) method which return if the given key is supported by
  the setter.
- Change handle signature by adding a $data param which must be passed by
  reference.

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07 17:36:29 +01:00
Marien Fressinaud
7f12058fab Add a method to change the configuration setter
See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07 16:09:24 +01:00
Marien Fressinaud
91e2d4936d Add support of configuration_setter
A configuration setter must implement only one method: `handle($key, $value)`.
Before setting a value in configuration, the setter will be called with this
method to check its validity.
If a setter has been assigned to a configuration object, it will be called for
each of its data so be careful to always return a value (or null if you want
to delete the key).

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07 15:57:27 +01:00
Marien Fressinaud
bd199c6170 If a conf param doesn't exist, log and return null
See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07 10:48:47 +01:00
Marien Fressinaud
17a280230f Change Minz_Configuration::parseFile() in load()
See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 21:16:33 +01:00
Marien Fressinaud
addcea9cd4 Fix i18n loading and availableLanguages calls
- Change the way to init i18n
- Add a availableLanguages() method to Minz_Translate

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 21:10:51 +01:00
Marien Fressinaud
d3a93ea290 BREAKING FEATURE: Remove general in config
General attribute has been removed from system config.
Now subattributes (e.g. environment, salt, title, etc.) are directly accessible.

YOU HAVE TO FIX YOUR ./data/config.php file!

- Remove the general array
- Values inside this array must be kept
- To see what it must look like, please have a look to ./data/config.default.php
  (but keep your values!!).

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 18:53:36 +01:00
Marien Fressinaud
51a71ec4b9 New configuration system (not working yet)
- Use only Minz_Configuration
- register() method to load a new configuration file
- get() to get a configuration
- new exceptions related to configuration
- fix a list configuration calls to have FRSS working

Current problems to resolve:

- How to handle configuration param verifications (i.e. check auth_type
  is a value from none, http_auth, persona or form)
- We must use $conf = Minz_Configuration::get('system'); $general_conf = $conf->general;
  to access global system configuration which is quite annoying. How to change that?

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-05 16:54:16 +01:00
Marien Fressinaud
c391ca62f1 Remove all old references to LOG_PATH
See https://github.com/FreshRSS/FreshRSS/issues/729
2014-12-28 18:05:02 +01:00
Marien Fressinaud
b5bee85603 BREAKING FEATURE: move user data
- Create ./data/users/ folder
- Move user configuration to ./data/users/username/config.php
- Move sqlite db to ./data/users/username/db.sqlite
- Move user logs to ./data/users/username/log.txt

See https://github.com/FreshRSS/FreshRSS/issues/729
2014-12-21 13:10:02 +01:00
Marien Fressinaud
26da4aa448 Update Minz_Translation
- Give possibility to register new i18n files
- Add a extension->registerTranslates() method
- extensions can define new strings or override previous ones

Fix https://github.com/FreshRSS/FreshRSS/issues/731
2014-12-18 18:59:13 +01:00
Marien Fressinaud
251d5a78ce Fix php interpretation in configure.phtml file
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-18 13:57:25 +01:00
Marien Fressinaud
0b89867800 Merge branch 'dev' into 252-extensions
Conflicts:
	app/i18n/en/admin.php
	app/i18n/en/feedback.php
	app/i18n/en/gen.php
	app/i18n/fr/admin.php
	app/i18n/fr/feedback.php
	app/i18n/fr/gen.php
	app/views/index/normal.phtml
2014-12-17 21:41:33 +01:00
Marien Fressinaud
aa54f43795 Verbose for unvalid key format 2014-12-10 22:57:43 +01:00
Marien Fressinaud
188b517daa Add a feed_before_insert hook
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-08 13:05:56 +01:00
Marien Fressinaud
a79107fb04 Merge branch 'dev' into 252-extensions 2014-12-08 12:53:01 +01:00
Marien Fressinaud
a596385343 Fix a security issue in Minz_Error::error()
Mehtod must redirect automatically by default to avoid code execution after
calling the method.
2014-12-08 12:37:06 +01:00
Marien Fressinaud
c6dfec3ad3 Add behaviour to configure action (extensions)
- Put extension configure view in dir_ext/configure.phtml
- Handle POST action in Extension->handleConfigureAction() method

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-08 12:01:47 +01:00
Marien Fressinaud
198b154064 Fix View files inclusion.
Now, each part of the view (layout, partials, helpers, views) is included based
on the $base_pathnames attribute.
Extensions can now override all of these files.

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-07 15:30:24 +01:00
Marien Fressinaud
5932c3427b Add entry_before_display hook
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-07 14:31:50 +01:00
Marien Fressinaud
08546af75f Add a first draft for hooks
- New Extension->registerHook($hook_name, $hook_function) method to register a new hook
- Only one hook works for the moment: entry_before_insert
- ExtensionManager::callHook will need to evolve based on future hooks

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-06 18:48:00 +01:00
Marien Fressinaud
4c888590e6 Improve system/user types for extensions
- system extensions can only be managed by an administrator
- system extensions are loaded for all users (even if not logged)
- user extensions are loaded for logged users only
- system extensions loading is saved in global config.php file

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-06 16:41:06 +01:00
Marien Fressinaud
2e4682ebd4 Add enable / disable extension features
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-06 16:17:11 +01:00
Marien Fressinaud
a08c382e06 Separate views registration from controllers one.
- Add an Extension->registerViews() method.
- Views are first searched in extension paths, then in APP_PATH.
- It gives a way to override easily existing controllers / views.
- Change include into an include_once in Dispatcher for new controllers.

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-06 15:20:20 +01:00
Marien Fressinaud
c6a682deb9 Extensions can define new views
- View base pathname is set to the extension directory
- An extension can now override an existing controller / view

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-05 15:27:56 +01:00
Marien Fressinaud
f8aa66152f Give possibility to register a new Controller.
- Add a Extension->registerController(name) method
- Controllers must be written in extension_dir/controllers/nameController.php
- Controllers must be named as FreshExtension_name_Controller
- Controllers must extend Minz_ActionController

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-05 14:48:09 +01:00
Marien Fressinaud
9fc60317ee First draft for listing and manipulate extensions
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-05 14:17:02 +01:00
Marien Fressinaud
a2da70fd11 Fix security hole from ext.php script.
Now, ext.php can only serve file under a EXTENSIONS_PATH/ext_dir/static/ directory.
A 400 Bad Request error will be returned for other files.

See https://github.com/FreshRSS/FreshRSS/issues/252
And https://github.com/FreshRSS/FreshRSS/commit/f9b037742a0aeb49cab86782d1a59913c2de47b
2014-12-05 10:54:44 +01:00
Marien Fressinaud
f9b037742a Update ext.php to serve any file from extensions
Add an extension->getFileUrl() method to facilitate url generation
2014-12-04 20:41:01 +01:00
Marien Fressinaud
1086ba4a2b Enable extensions for users 2014-12-04 19:47:43 +01:00