summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPatrick Brown <ptbrown@whoopdedo.org>2015-05-07 14:27:00 -0400
committerPatrick Brown <ptbrown@whoopdedo.org>2015-05-07 14:27:00 -0400
commit699e3c4900f2d6cc860a3587a05798cd23b7944d (patch)
tree896cdac4eb8a7b448d4c73d314bba9d20f21f896 /lib
parent1bd6bbdebc26f9cd916f8f287cd2cabc07bee8d1 (diff)
downloadrpg-699e3c4900f2d6cc860a3587a05798cd23b7944d.tar.gz
rpg-699e3c4900f2d6cc860a3587a05798cd23b7944d.tar.bz2
Use io_replaceInFile for updating auth
Diffstat (limited to 'lib')
-rw-r--r--lib/plugins/acl/admin.php11
-rw-r--r--lib/plugins/authplain/auth.php11
2 files changed, 5 insertions, 17 deletions
diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php
index 814bbfe9c..2dfdbbda5 100644
--- a/lib/plugins/acl/admin.php
+++ b/lib/plugins/acl/admin.php
@@ -682,7 +682,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
*/
function _acl_add($acl_scope, $acl_user, $acl_level){
global $config_cascade;
- $acl_config = file_get_contents($config_cascade['acl']['default']);
$acl_user = auth_nameencode($acl_user,true);
// max level for pagenames is edit
@@ -692,9 +691,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
$new_acl = "$acl_scope\t$acl_user\t$acl_level\n";
- $new_config = $acl_config.$new_acl;
-
- return io_saveFile($config_cascade['acl']['default'], $new_config);
+ return io_saveFile($config_cascade['acl']['default'], $new_config, true);
}
/**
@@ -704,15 +701,11 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
*/
function _acl_del($acl_scope, $acl_user){
global $config_cascade;
- $acl_config = file($config_cascade['acl']['default']);
$acl_user = auth_nameencode($acl_user,true);
$acl_pattern = '^'.preg_quote($acl_scope,'/').'[ \t]+'.$acl_user.'[ \t]+[0-8].*$';
- // save all non!-matching
- $new_config = preg_grep("/$acl_pattern/", $acl_config, PREG_GREP_INVERT);
-
- return io_saveFile($config_cascade['acl']['default'], join('',$new_config));
+ return io_deleteFromFile($config_cascade['acl']['default'], "/$acl_pattern/", true);
}
/**
diff --git a/lib/plugins/authplain/auth.php b/lib/plugins/authplain/auth.php
index b31c02fc8..35cf7a802 100644
--- a/lib/plugins/authplain/auth.php
+++ b/lib/plugins/authplain/auth.php
@@ -185,14 +185,9 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
$userline = $this->_createUserLine($newuser, $userinfo['pass'], $userinfo['name'], $userinfo['mail'], $userinfo['grps']);
- if(!$this->deleteUsers(array($user))) {
- msg('Unable to modify user data. Please inform the Wiki-Admin', -1);
- return false;
- }
-
- if(!io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) {
- msg('There was an error modifying your user data. You should register again.', -1);
- // FIXME, user has been deleted but not recreated, should force a logout and redirect to login page
+ if(!io_replaceInFile($config_cascade['plainauth.users']['default'], '/^'.$user.':/', $userline, true)) {
+ msg('There was an error modifying your user data. You may need to register again.', -1);
+ // FIXME, io functions should be fail-safe so existing data isn't lost
$ACT = 'register';
return false;
}