diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2008-12-07 07:33:18 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2008-12-07 07:33:18 +0000 |
| commit | 8c90ecd98b1b26d9728dea5a2ad0d66fa480ec60 (patch) | |
| tree | a3fefc4ff53d2d634a0d4628b9d855ff11159174 /lib | |
| parent | edb6974f1a503561753dc48754b2b168576683ce (diff) | |
| download | xxv-8c90ecd98b1b26d9728dea5a2ad0d66fa480ec60.tar.gz xxv-8c90ecd98b1b26d9728dea5a2ad0d66fa480ec60.tar.bz2 | |
*USER: display preferences selected by user own settings, at edit user profile by admin
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/XXV/MODULES/USER.pm | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/lib/XXV/MODULES/USER.pm b/lib/XXV/MODULES/USER.pm index 2c8648a..4846b4e 100644 --- a/lib/XXV/MODULES/USER.pm +++ b/lib/XXV/MODULES/USER.pm @@ -208,7 +208,7 @@ sub _init { CREATE TABLE IF NOT EXISTS USER ( Id int(11) unsigned auto_increment NOT NULL, Name varchar(100) NOT NULL default '', - Password varchar(100) NOT NULL, + Password varchar(32) NOT NULL, Level set('admin', 'user', 'guest' ) NOT NULL, Prefs text default '', UserPrefs text default '', @@ -378,7 +378,7 @@ sub userprefs { push(@$userpref,$modname .'::'. $parameter .'='.$value); } - $data->{UserPrefs} = $userpref ? join('\n', @$userpref) : undef; + $data->{UserPrefs} = $userpref ? join("\n", @$userpref) : undef; $self->_insert($data); $console->message(gettext('User account saved!')); @@ -493,13 +493,25 @@ sub edit { return join(',', @vals); }, }, + 'UserPrefs' => { + def => sub { + my $value = $user->{UserPrefs}; + return gettext('None own settings') unless($value); + my @vals = (ref $value eq 'ARRAY') ? @$value : split(/\n/, $value); + return join(',', @vals); + }, + msg => gettext("Preferences selected by user own settings"), + typ => 'string', + readonly => '1', + }, 'Prefs' => { def => sub { - my $value; - @$value = $user->{Prefs} ? split(/\n/,$user->{Prefs}) : []; - return (ref $value eq 'ARRAY') ? join(',', @$value) : $value; + my $value = $user->{Prefs}; + return '' unless($value); + my @vals = (ref $value eq 'ARRAY') ? @$value : split(/\n/, $value); + return join(',', @vals); }, - msg => gettext("Preferences for this User: ModName::Param=value, "), + msg => gettext("Overwrite preferences for this user: ModName::Param=value, "), typ => 'string', check => sub{ my $value = shift || return; @@ -513,7 +525,7 @@ sub edit { } } } - return join('\n', @vals); + return join("\n", @vals); }, }, 'MaxLifeTime' => { @@ -547,6 +559,7 @@ sub edit { : gettext('Create new user account')), $questions, $data); if(ref $data eq 'HASH') { + delete $data->{UserPrefs}; $self->_insert($data); debug sprintf('%s account with name "%s" is saved%s', @@ -724,7 +737,7 @@ sub applySettings { my $newprefs = shift || return error ('No settings defined!'); my $config = shift || return error ('No config defined!'); - foreach my $pref (split('\n', $newprefs)) { + foreach my $pref (split(/\n/, $newprefs)) { my ($modname, $parameter, $value) = $pref =~ /(\S+)::(\S+)\=(.*)/sg; if($modname and my $mod = main::getModule($modname) and my $cfg = main::getModule('CONFIG')->{config}) { if(exists $mod->{$parameter}) { @@ -738,6 +751,7 @@ sub applySettings { # ------------------ sub allowCommand { + # ------------------ my $self = shift || return error('No object defined!'); my $modCfg = shift || return error('No modul defined!'); |
