- You can modify, lock or remove any account or reset the
- account's password by clicking on the
- corresponding command next to the account.
-
-
- If the account is marked as locked, that means that the
- user's password needs to be reset. Please note
- that newly created accounts are automatically locked until
- the password is changed.
-
- ]]>
-
-
-
- P2_TITLE
- Create or modify
-
-
- CREATE_MODIFY_DESC
-
-
- The account name should contain only lower-case
- letters, numbers, hyphens, periods, underscores and should start with a
- lower-case letter. For example "betty",
- "hjohnson", and "mary-jane" are all valid account names,
- but "3friends", "John Smith", and "henry_miller" are not.
-
-
- Note that two special pseudonyms will be created for each
- new account. These pseudonyms provide the ability to have
- alternative mail accounts for that
- user which include their first name and last name
- separated with a period (.) and underscore (_). So, for
- the account "betty" with first name "Betty" and
- last name "Rubble" two pseudonyms are created as
- betty.rubble and betty_rubble.
-
-
- The directory information (department, company, etc.)
- can be changed from the defaults shown below. The
- changes will apply only to this user.
-
-
- The Calendar Free/Busy URL needs to be in the following format:
- https://www.domain.com/horde/kronolith/fb.php?u=user%40domain.com. Note:
- %40 translates to the @ character.
-
- ]]>
-
-
-
- MODIFY_ADMIN_TITLE
- Modify the admin account
-
-
- MAX_USERS_EXCEEDED
- ERROR: Unable to add user account. You have reached the
- maximum number of users for which you have licenses. You
- need to either delete an existing user account or contact
- your authorized reseller to purchase
- additional user licenses.
-
-
-
- USER_CREATED
- Successfully created user account.
-
-
- USER_MODIFIED
- Successfully modified user account.
-
-
- CANNOT_MODIFY_USER
- Error: an internal error occurred while attempting to modify
- the user "{$acctName}".
-
-
-
- CANNOT_MODIFY_USER_GROUPS
- Error: an internal error occurred while attempting to modify
- the group "{$group}" for user "{$acctName}".
-
-
-
- TAINTED_USER
- The account name "{$acctName}" contains invalid characters.
-
-
- ACCOUNT_NAME
- Account name
-
-
- ACTION
- Action
-
-
- FIRSTNAME
- First name
-
-
- LASTNAME
- Last name
-
-
- DEPARTMENT
- Department
-
-
- COMPANY
- Company
-
-
- STREET_ADDRESS
- Street address
-
-
- DEPARTMENT
- Department
-
-
- CITY
- City
-
-
- PHONE_NUMBER
- Phone number
-
-
- EMAIL_DELIVERY
- Email delivery
-
-
- DELIVER_EMAIL_LOCALLY
- Deliver email locally
-
-
- FORWARD_EMAIL
- Forward email to address below
-
-
- DELIVER_AND_FORWARD
- Both deliver locally and forward
-
-
- FORWARDING_ADDRESS
- Forwarding address
-
-
- FREEBUSY_URL
- Calendar Free/Busy URL
-
-
- GROUP_MEMBERSHIPS
- Group memberships
-
-
- ACCOUNT
- Account
-
-
- USER_NAME
- User name
-
-
- SAVE
- Save
-
-
- ADD
- Add
-
-
-
- PASSWORD1
- New password
-
-
- PASSWORD2
- New password (verify)
-
-
- PASSWORD_VERIFY_ERROR
- The passwords you entered did not match.
-
-
- RESET_DESC
- You are about to change the password for the user account
-
-
- RESET_DESC2
- Enter the new password in the fields below
-
-
- RESET_PASSWORD_TITLE
- Reset user password
-
-
- ERR_OCCURRED_MODIFYING_PASSWORD
- An error occurred while updating the password
-
-
- PASSWORD_CHANGE_SUCCEEDED
- Successfully changed password for user "{$acctName}".
-
-
- LOCK_DESC
- You are about to lock the user account
-
-
- LOCKED_ACCOUNT
- Successfully locked account for user "{$acctName}".
-
-
- NO_SUCH_USER
- Error: the user account "{$acctName}" does not exist.
-
-
- PSEUDONYM_CLASH
- Error: the pseudonym "{$pseudonym}" is already taken by the
- existing user account "{$clashName}". To differentiate, add
- initials to this field."
-
-
- MODIFY
- Modify
-
-
- RESET_PASSWORD
- Reset password
-
-
- LOCK_ACCOUNT
- Lock account
-
-
- REMOVE
- Remove
-
-
- LOCK_ACCOUNT_TITLE
- Lock user account
-
-
- LOCK_DESC2
-
-
-
- Are you sure you wish to lock this account?
- ]]>
-
-
-
- REMOVE_ACCOUNT_TITLE
- Remove user account
-
-
- REMOVE_DESC
- You are about to remove the user account
-
-
- REMOVE_DESC2
-
-
-
- Are you sure you wish to remove this account?
- ]]>
-
-
-
- LOCK
- Lock
-
-
- NO_USER_ACCOUNTS
- There are no user accounts on this system.
-
-
- ACCOUNT_IS_LOCKED
- Account is locked
-
-
- Collaboration
- Collaboration
-
-
- Users
- Users
-
-
- ACCT_NAME_HAS_INVALID_CHARS
- The account name "{$acctName}" contains invalid characters.
- Account names must start with a lower case letter and contain
- only lower case letters, numbers, hyphens, periods and underscores.
-
-
-
- ACCOUNT_TOO_LONG
- Error: account name is too long. The maximum is {$maxLength}
- characters.
-
-
-
- ACCOUNT_CONFLICT
- Error: the account "{$account}" can't be created because
- there is already a {$type} account of that name.
-
-
- ERR_OCCURRED_CREATING
- An error occurred creating the user.
-
-
- CANNOT_CONTAIN_WHITESPACE
- This field cannot contain white-space
-
-
- UNACCEPTABLE_CHARS
-
- This field must contain only letters, numbers, dots, hypens and
- underscores and start with a letter
-
-
-
- MEMBER
- Member?
-
-
- GROUP
- Group
-
-
- DESCRIPTION
- Description
-
-
- VPN_CLIENT_ACCESS
- VPN Client Access
-
-
- YES
- Yes
-
-
- NO
- No
-
-
-
- SYSTEM_PASSWORD_FORM_TITLE
- Change system password
-
-
- SYSTEM_PASSWORD_DESCRIPTION
-
-
-
-
-
- SYSTEM_PASSWORD_UNPRINTABLES_IN_PASS
- Password must contain only printable characters
-
-
- SYSTEM_PASSWORD_VERIFY_ERROR
- The two passwords are not identical.
-
-
- SYSTEM_PASSWORD_AUTH_ERROR
- The current password is incorrect.
-
-
- SYSTEM_PASSWORD_CHANGED
-
- immediately
- be prompted for the new system password if you try to continue.
- ]]>
-
-
-
- SYSTEM_PASSWORD_CHANGE_SUCCEEDED
- Thse system password has been changed
-
-
- CURRENT_SYSTEM_PASSWORD
- Current system password
-
-
- NEW_SYSTEM_PASSWORD
- New system password
-
-
- NEW_SYSTEM_PASSWORD_VERIFY
- New system password (verify)
-
-
- LABEL_IPSECRW_DOWNLOAD
- Download digital certificate to IPSec client
-
-
- BUTTON_IPSECRW_DOWNLOAD
- Download
-
-
- ERR_OCCURRED_DELETING
-
- An error occurred while trying to delete the user.
-
-
-
diff -Nur -x '*.orig' -x '*.rej' smeserver-kronolith-1.1.sme/root/etc/e-smith/web/functions/advuseraccounts smeserver-kronolith-1.1/root/etc/e-smith/web/functions/advuseraccounts
--- smeserver-kronolith-1.1.sme/root/etc/e-smith/web/functions/advuseraccounts 2006-09-14 21:13:05.000000000 -0600
+++ smeserver-kronolith-1.1/root/etc/e-smith/web/functions/advuseraccounts 1969-12-31 17:00:00.000000000 -0700
@@ -1,284 +0,0 @@
-#!/usr/bin/perl -wT
-
-# vim: ft=xml ts=4 sw=4 et:
-#----------------------------------------------------------------------
-# heading : Collaboration
-# description : Advanced User Management
-# navigation : 2000 2105
-#----------------------------------------------------------------------
-#----------------------------------------------------------------------
-# copyright (C) 2002 Mitel Networks Corporation
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# Technical support for this program is available from Mitel Networks
-# Please visit our web site www.mitel.com/sme/ for details.
-#----------------------------------------------------------------------
-
-use strict;
-use esmith::TestUtils;
-use esmith::FormMagick::Panel::advuseraccounts;
-
-my $fm = esmith::FormMagick::Panel::advuseraccounts->new();
-
-# XXX: need to print custom http headers, so bypass FormMagick
-use CGI;
-my $q = new CGI;
-if ($q->param('action') && $q->param('action') eq 'getCert')
-{
- $q->delete('action');
- $fm->get_ipsec_client_cert($q);
-}
-else
-{
- $fm->display();
-}
-
-=pod
-
-=head1 NAME
-
-advuseraccounts -- create/modify/delete user accounts
-
-=head2 DESCRIPTION
-
-This screen allows the administrator to create, modify or delete user
-accounts on the system.
-
-=begin testing
-
-use esmith::FormMagick::Tester;
-use esmith::TestUtils;
-use esmith::ConfigDB;
-use esmith::AccountsDB;
-
-my $panel = $Original_File;
-my $ua = esmith::FormMagick::Tester->new();
-
-my $c = esmith::ConfigDB->open();
-my $a = esmith::AccountsDB->open();
-
-is (mode($panel), '4755', "Check permissions on script");
-ok ($ua->get_panel($panel), "ABOUT TO RUN L10N TESTS");
-is ($ua->{status}, 200, "200 OK");
-like($ua->{content}, qr/FORM_TITLE/, "Saw untranslated form title");
-ok ($ua->set_language("en-us"), "Set language to U.S. English");
-ok ($ua->get_panel($panel), "Get panel");
-is ($ua->{status}, 200, "200 OK");
-like($ua->{content}, qr/User accounts/, "Saw translated form title");
-
-
-#
-# Testing creating users
-#
-
-ok ($ua->get_panel($panel), "ABOUT TO TEST CREATING USER");
-ok ($ua->follow("Click here"), "Follow 'create user' link");
-is ($ua->{status}, 200, "200 OK");
-like($ua->{content}, qr/Account name/, "Saw form fields");
-
-#
-# Check that address details are picked up from LDAP
-#
-
-my $ldap_record = $c->get('ldap');
-my $city = $ldap_record->prop('DefaultCity');
-
-like($ua->{content}, qr/$city/, "Pick up address from LDAP");
-
-#
-# Creating a new user
-#
-
-my $new_username = new_random_username();
-
-can_ok($ua, "field");
-ok ($ua->{form}->find_input('acctName'),
- "Find acctName field to fill in");
-$ua->field("acctName" => $new_username);
-ok ($ua->click("Save"), "Click Save");
-is ($ua->{status}, 200, "200 OK");
-like($ua->{content}, qr/must not be left blank/, "Saw validation messages");
-
-$ua->field("FirstName" => "Fred");
-$ua->field("LastName" => "Foonly");
-
-ok ($ua->click("Save"), "Click Save");
-is ($ua->{status}, 200, "200 OK");
-
-#
-# Testing modify user
-#
-
-ok ($ua->get_panel($panel), "ABOUT TO TEST MODIFYING A USER");
-is ($ua->{status}, 200, "200 OK");
-ok ($ua->follow('Modify'), "Follow modify link");
-is ($ua->{status}, 200, "200 OK");
-like($ua->{content}, qr/value="Save"/, "Saw 'Save' on the button");
-
-#
-# Testing removal of a user
-#
-
-ok ($ua->get_panel($panel), "ABOUT TO TEST USER REMOVAL");
-is ($ua->{status}, 200, "200 OK");
-ok ($ua->follow('Remove'), "Follow remove link");
-is ($ua->{status}, 200, "200 OK");
-like($ua->{content}, qr/Remove/, "Saw 'Remove'");
-like($ua->{content}, qr/value="Remove"/, "Saw 'Remove' on the button");
-
-#
-# Testing password reset
-#
-
-ok ($ua->get_panel($panel), "ABOUT TO TEST PASSWORD RESET");
-is ($ua->{status}, 200, "200 OK");
-ok ($ua->follow('Reset password'), "Follow reset password link");
-like($ua->{content}, qr/Reset password/,"Saw 'Reset password'");
-
-SKIP:
-{
- skip 3, "Unsafe!" unless destruction_ok();
- $ua->field(password1 => "test");
- $ua->field(password2 => "test");
- ok($ua->click('Save'), "Set password to 'test', click Save");
- is($ua->{status}, 200, "200 OK");
- like($ua->{content}, qr/Click here/, "Returned to first page");
-}
-
-=end testing
-
-=cut
-
-
-__DATA__
-
diff -Nur -x '*.orig' -x '*.rej' smeserver-kronolith-1.1.sme/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/advuseraccounts.pm smeserver-kronolith-1.1/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/advuseraccounts.pm
--- smeserver-kronolith-1.1.sme/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/advuseraccounts.pm 2006-09-14 21:13:05.000000000 -0600
+++ smeserver-kronolith-1.1/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/advuseraccounts.pm 1969-12-31 17:00:00.000000000 -0700
@@ -1,1291 +0,0 @@
-#!/usr/bin/perl -w
-
-#----------------------------------------------------------------------
-# $Id: advuseraccounts.pm,v 1.108 2004/11/11 20:05:56 charlieb Exp $
-#----------------------------------------------------------------------
-# copyright (C) 1999-2006 Mitel Networks Corporation
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#----------------------------------------------------------------------
-package esmith::FormMagick::Panel::advuseraccounts;
-
-use strict;
-
-use esmith::FormMagick;
-use esmith::AccountsDB;
-use esmith::ConfigDB;
-use esmith::cgi;
-use esmith::util;
-use File::Basename;
-use Exporter;
-use Carp qw(verbose);
-
-our @ISA = qw(esmith::FormMagick Exporter);
-
-our @EXPORT = qw(
- print_user_table
- print_acctName_field
- print_groupMemberships_field
- print_page_description
- get_ldap_value
- username_clash
- pseudonym_clash
- checkMaxUsers
- handle_user_accounts
- modify_admin
- emailforward
- verifyPasswords
- lock_account
- remove_account
- reset_password
- check_password
- print_save_or_add_button
- get_pptp_value
- print_ipsec_client_section
-
- system_password_compare
- system_valid_password
- system_change_password
- system_check_password
- system_authenticate_password
-);
-
-our $VERSION = sprintf '%d.%03d', q$Revision: 1.108 $ =~ /: (\d+).(\d+)/;
-
-our $accountdb = esmith::AccountsDB->open();
-our $configdb = esmith::ConfigDB->open();
-
-=pod
-
-=head1 NAME
-
-esmith::FormMagick::Panels::advuseraccounts - useful panel functions
-
-=head1 SYNOPSIS
-
-use esmith::FormMagick::Panels::useraccount;
-
-my $panel = esmith::FormMagick::Panel::useraccount->new();
-$panel->display();
-
-=head1 DESCRIPTION
-
-
-=head2 new();
-
-Exactly as for esmith::FormMagick
-
-=begin testing
-
-$ENV{ESMITH_ACCOUNT_DB} = "10e-smith-base/accounts.conf";
-$ENV{ESMITH_CONFIG_DB} = "10e-smith-base/configuration.conf";
-
-open DATA, "echo ''|";
-use_ok('esmith::FormMagick::Panel::advuseraccounts');
-use vars qw($panel);
-ok($panel = esmith::FormMagick::Panel::advuseraccounts->new(),
-"Create panel object");
-close DATA;
-isa_ok($panel, 'esmith::FormMagick::Panel::advuseraccounts');
-$panel->{cgi} = CGI->new();
-$panel->parse_xml();
-
-{ package esmith::FormMagick::Panel::advuseraccounts;
-our $accountdb;
-::isa_ok($accountdb, 'esmith::AccountsDB');
-}
-
-=end testing
-
-=cut
-
-sub new {
- shift;
- my $self = esmith::FormMagick->new();
- $self->{calling_package} = (caller)[0];
- bless $self;
- return $self;
-}
-
-=head1 HTML GENERATION ROUTINES
-
-Routines for generating chunks of HTML needed by the panel.
-
-=head2 print_user_table
-
-Prints out the user table on the front page.
-
-=for testing
-$panel->print_user_table;
-like($_STDOUT_, qr/bart/, "Found usernames in user table output");
-like($_STDOUT_, qr/ff0000/, "Found red 'reset password' output");
-
-=cut
-
-sub print_user_table {
- my $self = shift;
- my $q = $self->{cgi};
- my $account = $self->localise('ACCOUNT');
- my $acctName = $self->localise('USER_NAME');
-
- my $modify = $self->localise('MODIFY');
- my $resetpw = $self->localise('RESET_PASSWORD');
- my $lock = $self->localise('LOCK_ACCOUNT');
- my $account_locked = $self->localise('ACCOUNT_IS_LOCKED');
- my $remove = $self->localise('REMOVE');
-
- my @users = $accountdb->get('admin');
- push @users, $accountdb->users();
-
- unless ( scalar @users )
- {
- print $q->Tr($q->td($self->localise('NO_USER_ACCOUNTS')));
- return "";
- }
- print "
\n);
-
- return "";
-}
-
-=head2 print_acctName_field
-
-This subroutine is used to generate the Account name field on the form in
-the case of "create user", or to make it a plain uneditable string in the case
-of "modify user".
-
-=begin testing
-
-my $self = esmith::FormMagick::Panel::advuseraccounts->new();
-$self->{cgi} = CGI->new("");
-print_acctName_field($self);
-like($_STDOUT_, qr/text.*acctName/, "print text field if acctName not set");
-like($_STDOUT_, qr/create/, "action=create if acctName not set");
-$self->{cgi}->param(-name => 'acctName', -value => 'foo');
-$self->{cgi}->param(-name => 'action', -value => 'modify');
-print_acctName_field($self);
-like($_STDOUT_, qr/hidden.*acctName/, "print hidden field if acctName is set");
-like($_STDOUT_, qr/modify/, "action=modify if acctName already set");
-
-=end testing
-
-=cut
-
-sub print_acctName_field {
- my $self = shift;
- my $cgi = $self->{cgi};
- my $an = $cgi->param('acctName') || '';
- print qq(
) . $self->localise('ACCOUNT_NAME') . qq(
\n);
- my $action = $cgi->param('action') || '';
- if ( $action eq 'modify') {
- print qq(
-
$an
-
-
-
- );
- # if there's no CGI data, fill in the fields with the account db
- # data for this user
- my $rec = $accountdb->get($an);
- my $fn = $cgi->param('FirstName') ?
- $cgi->param('FirstName') :
- ($rec ? ($rec->prop('FirstName')) : '');
- my $ln = $cgi->param('LastName') ?
- $cgi->param('LastName') :
- ($rec ? ($rec->prop('LastName')) : '');
- my $dept = $cgi->param('Dept') ?
- $cgi->param('Dept') :
- ($rec ? ($rec->prop('Dept')) : '');
- my $company = $cgi->param('Company') ?
- $cgi->param('Company') :
- ($rec ? ($rec->prop('Company')) : '');
- my $street = $cgi->param('Street') ?
- $cgi->param('Street') :
- ($rec ? ($rec->prop('Street')) : '');
- my $city = $cgi->param('City') ?
- $cgi->param('City') :
- ($rec ? ($rec->prop('City')) : '');
- my $phone = $cgi->param('Phone') ?
- $cgi->param('Phone') :
- ($rec ? ($rec->prop('Phone')) : '');
- my $emf = $cgi->param('EmailForward') ?
- $cgi->param('EmailForward') :
- ($rec ? ($rec->prop('EmailForward')) : 'local');
- my $fwd = $cgi->param('ForwardAddress') ?
- $cgi->param('ForwardAddress') :
- ($rec ? ($rec->prop('ForwardAddress')) : '');
- my $fb = $cgi->param('FreeBusy') ?
- $cgi->param('FreeBusy') :
- ($rec ? ($rec->prop('FreeBusy')) : '');
- my $pptp = $cgi->param('VPNClientAccess') ?
- $cgi->param('VPNClientAccess') :
- ($rec ? ($rec->prop('VPNClientAccess')) : 'no');
- # now that we're down with the 411, let's set the values
- $cgi->param(-name=>'FirstName', -value=>$fn);
- $cgi->param(-name=>'LastName', -value=>$ln);
- $cgi->param(-name=>'Dept', -value=>$dept);
- $cgi->param(-name=>'Company', -value=>$company);
- $cgi->param(-name=>'Street', -value=>$street);
- $cgi->param(-name=>'City', -value=>$city);
- $cgi->param(-name=>'Phone', -value=>$phone);
- $cgi->param(-name=>'EmailForward', -value=>$emf);
- $cgi->param(-name=>'ForwardAddress', -value=>$fwd);
- $cgi->param(-name=>'FreeBusy', -value=>$fb);
- $cgi->param(-name=>'VPNClientAccess', -value=>$pptp);
- } else {
- print qq(
-
-
-
- );
- }
-
- print qq(
\n);
- return undef;
-
-}
-
-=head2 print_groupMemberships_field()
-
-Builds a list of groups for the create/modify user screen.
-
-=begin testing
-
-my $self = esmith::FormMagick::Panel::advuseraccounts->new();
-$self->{cgi} = CGI->new("");
-$self->print_groupMemberships_field();
-like($_STDOUT_, qr/simpsons/, "Found simpsons in group list");
-like($_STDOUT_, qr/flanders/, "Found flanders in group list");
-$self->{cgi}->param(-name => 'acctName', -value => 'rod');
-$self->print_groupMemberships_field();
-like($_STDOUT_, qr/checked value="flanders"/, "Checked flanders group for user rod");
-
-=end testing
-
-=cut
-
-sub print_groupMemberships_field {
- my ($self) = @_;
- my $q = $self->{cgi};
- my $user = $q->param('acctName');
-
- if (my @groups = $accountdb->groups()) {
-
- print "