Portable PHP/Mysql Corporate Intranet System
PHP C++ CSS
Failed to load latest commit information.
help Initial commit. PPCIS in an unfinished state. Sep 12, 2006
languages Tidy up user deletion. Nov 5, 2011
AUTHORS AUTHORS update Feb 5, 2012
COPYING Initial commit. PPCIS in an unfinished state. Sep 12, 2006
INSTALL Initial commit. PPCIS in an unfinished state. Sep 12, 2006
README Updated an extremely out of date email address Jun 9, 2011
UPGRADE Initial commit. PPCIS in an unfinished state. Sep 12, 2006
admin.php mysqli conversion (moving through files alphabetically) Jul 3, 2016
auth.php Implement more secuire password hashing and salting, fixes #2 Jul 10, 2016
colorful.css Initial commit. PPCIS in an unfinished state. Sep 12, 2006
dbcheck.php mysqli conversion (moving through files alphabetically) Jul 3, 2016
deleteuser.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
directory.php Initial commit. PPCIS in an unfinished state. Sep 12, 2006
directoryadmin.inc Initial commit. PPCIS in an unfinished state. Sep 12, 2006
directoryadminlist.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
directorydetail.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
directorylist.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
dropdowns.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
extdiradmin.inc Initial commit. PPCIS in an unfinished state. Sep 12, 2006
extdiradminedit.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
extdiradminlist.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
extdirdetail.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
extdirlist.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
faqadmin.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
fetchfile.php Don't unconditionally die there, either. That's also bad. Jul 4, 2016
filebrowser.inc Variable re-use broke the files area Jul 4, 2016
filedetails.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
files.php Initial commit. PPCIS in an unfinished state. Sep 12, 2006
filesearch.inc Initial commit. PPCIS in an unfinished state. Sep 12, 2006
folder.png Initial commit. PPCIS in an unfinished state. Sep 12, 2006
folder_open.png Initial commit. PPCIS in an unfinished state. Sep 12, 2006
head.inc Give showerror() a boolean return value Jul 3, 2016
helpdesk.php mysqli conversion (moving through files alphabetically) Jul 3, 2016
helpdeskcats.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
helpdeskfaq.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
helpsearch.inc Initial commit. PPCIS in an unfinished state. Sep 12, 2006
helpsearchresults.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
index.php Initial commit. PPCIS in an unfinished state. Sep 12, 2006
license.php Initial commit. PPCIS in an unfinished state. Sep 12, 2006
logcall.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
login.php Committing minor changes made over last weeks Feb 8, 2007
missing.php Committing minor changes made over last weeks Feb 8, 2007
modules.inc Initial commit. PPCIS in an unfinished state. Sep 12, 2006
news.php Front page now working Jul 3, 2016
newsadmin.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
newsarchive.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
newscurrent.inc Front page now working Jul 3, 2016
newsprint.php Add showerror() Jul 4, 2016
newssubmit.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
newstopics.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
newuser.inc New user page needs to use new password hashing too Jul 10, 2016
no_admin.inc Initial commit. PPCIS in an unfinished state. Sep 12, 2006
online-help.php Initial commit. PPCIS in an unfinished state. Sep 12, 2006
password.php Implement more secuire password hashing and salting, fixes #2 Jul 10, 2016
photo.php mysqli conversion (moving through files alphabetically) Jul 3, 2016
ppcis.css Initial commit. PPCIS in an unfinished state. Sep 12, 2006
ppcis.jpg Initial commit. PPCIS in an unfinished state. Sep 12, 2006
ppcis_create.sql New password hashing Jul 10, 2016
ppcis_upgrade.sql Added some stripslashes Feb 15, 2007
ppcis_upgrade_password.sql Password field needs to be longer Jul 10, 2016
preferences.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
rss.php mysqli conversion (moving through files alphabetically) Jul 3, 2016
searchresults.inc Variable re-use broke the files area Jul 3, 2016
settings-dev.inc Initial commit. PPCIS in an unfinished state. Sep 12, 2006
settings.inc Revert accidental inclusion of config from testing environment Jul 11, 2016
tail.inc Ported header, footer and authorisation file to mysqli (#1) Jun 30, 2016
template.php Initial commit. PPCIS in an unfinished state. Sep 12, 2006
usermanager.inc Initial commit. PPCIS in an unfinished state. Sep 12, 2006
usermanageredit.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
usermanagerflags.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
usermanagerlist.inc Correct the GROUP BY from 16a24dd Jul 10, 2016
usermanagerpass.inc Implement more secuire password hashing and salting, fixes #2 Jul 10, 2016
usermanagerteams.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
version.inc Change the year, finishing mysqli conversion. Closes #1. Jul 3, 2016
viewcalldetail.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
viewcalllist.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
viewcalls.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
webcategories.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
webdirectory.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
weblinksadmin.inc mysqli conversion (moving through files alphabetically) Jul 3, 2016
welcome.inc Initial commit. PPCIS in an unfinished state. Sep 12, 2006

README

Copyright 2002-2005 Brian Ronald.  All rights reserved.
Portable PHP/MySQL Corporate Intranet System

Read INSTALL for installation instructions.


This intranet system is divided up into modules.  These can be
selectively enabled or disabled with modules.conf.  A module is
defined as any PHP file that includes head.inc at the start and
tail.inc at the end.

The system will only show news articles to people who are not
logged in to the system.  The login box at the top of the page
disappears once logged in, to be replaced with a change
password button and a log out button.

   The default user is admin and the password is istrator

-== MODULES ==-

NEWS

The news module displays news items, in much the manner that
any news site would.  News articles are submitted by users on
the system, and by default must be authorised by a news admin.

Only the ten most recent news articles are displayed in the
Current News screen - the rest are displayed as headlines only
in the Archived News screen.  Users can filter their view of
the news by topic, and if they do, the ten most recent articles
under that topic will be displayed.

The Submit New screen allows a user to compose a new article,
and to preview it whenever they want.  HTML tags <i> and <b>
are allowed, and carriage returns are retained as <br> tags.
Once submitted, the user cannot edit their article again unless
they are a news admin.

DIRECTORY

The internal directory lists all the users on the system that
have a directory record.  Only users can be added to this
directory.  It can be filtered by first name and/or last name,
team and the plain-text information field.  Photographs can be
uploaded if desired.

The external directory is a seperate list, for listing contact
details of people who are not users.  It can be filtered on
first name, last name, company and/or contact type.

The web directory is a table of web links.  It is categorised,
and can be filtered on the category.  The links launch in the
same window by default.

HELPDESK

The helpdesk is intended to be able to service all types of
helpdesk call, not necesarily calls for help, but also requests
for information, or to request resources.

The manage calls screen is the default screen for users who are
not helpdesk staff.  It shows all the calls logged by the user,
and allows them to click on the call number to view the details.
There are a number of filtering options, and it's possible for
any user to type in the call number of any call and to view the
contents of that call.

Helpdesk staff have two similar screens - Manage Calls and
Assigned Calls.  They are the same, except Assigned Calls only
lists calls that have been assigned to the helpdesk staff in
question.  Also, the Managed Calls list shows calls logged by
any user, and is filterable on the user.

When a specific call is opened, the user can see the basic
information about that call (date it was logged, the category
it's in, and their initial problem).  They can also see the
priority which has been assigned to it by helpdesk staff (the
default is "waiting").  They can see who's been assigned to the
call, and any information which has been added since the call
was logged, in the form of "history".

The owner can alter the location of the call, they can add
information of their own to the history, and they can close the
call.

In addition to this, helpdesk staff can alter the owner,
priority and category of any call.  They can assign helpdesk
staff the call, and can remove them.  They can also add history
to any call.

There are two "apply changes" buttons on a calldetails screen.
They are the same, and it doesn't matter which is used.

The "Log a new call" screen is a simple submission form, where
the user selects a call category, a location, and describes the
nature of the query as best they can.  Helpdesk staff also have
the option to choose an owner for the call; this facilitates
logging of calls by telephone or by other means.

The FAQ screen is quite similar to the News screen.  It is
filterable on category, and simple word searches are possible.
Users can also type in the number of a call to jump directly
to it.  If they explicitly choose a call number, the other
filters are ignored.

The FAQ edit screen lists the FAQs, and allows helpdesk staff
to modify or delete existing FAQs and to add new ones.

ADMIN

The admin module changes in appearance depending on the rights
of the logged in user.

A user admin has access to:
   User Manager
   New User
   Teams and Locations

A news admin has access to:
   News admin
   News topics

A directory admin has access to:
   Directory Admin
   External directory admin
   Teams and locations
   Website admin
   Website and contact categories

A helpdesk staff has access to:
   Helpdesk categories
   Teams and Locations

Regular users have access to:
   Change directory
   Preferences

Guest users are denied access to all admin pages.

The user manager screen shows a list of all current users,
filterable on first name or last name.  There is an alphabet
of links to filter on lastname initial.

Each record on this screen has three options.

Firstly, the user's directory details can be altered or removed.
Removing a user from the directory destroys any data that would
be available in the directory (eg, email address, telephone
numbers) but does not destroy the user's real name.

Secondly, the user's rights can be altered.  Changes to the
rights must be saved.  At least one user on the system should
have user admin rights and the right to log in.  There are no
special privileges available to the default user "admin".

Thirdly, the user's password can be changed.  Note that on this
screen, the user's username can be changed at the same time.
Blank passwords are accepted.  You can't change a user's
username without changing their password, although this will
be altered in a future release.

Fourthly, the user can be deleted.  This takes you to a
confirmation screen.  Clicking delete again on the confirmation
screen will remove the user's record, their rights record and
their directory record.  Be warned, removing a user will cause
their name to vanish from news articles and helpdesk calls that
they have submitted.  You might want to just disable their login
right for a time, if they have current news articles or calls.

The new user screen allows new users to be created.  Giving a
real name or a password isn't absolutely necessary, but not
having a name can make some screens look a little untidy.  If
a password is entered, it must be entered twice to ensure that
there is no typographical error.

The Teams and Locations screen allows teams and locations to be
added, renamed and removed.  There is no confirmation on this
screen, so beware when removing items.  If you remove, for example,
a team, and then add another with the same name, the users who
were in that team will not be in the new one until you change them
all individually.

The directory admin screen is the same as the user manager screen,
except that only the directory modification option is available.

The external directory admin screen lists all the contacts in the
external directory.  It is filterable on name or company.  New
records can be added, and existing records added or removed.  The
interface is a very simplistic form.  In the future, there will
also be a category list, and external contacts will be able to
be assigned to a category for better filtering.

The website admin page allows you to add, edit and remove the web
links in the website directory.  You can only alter one at a time;
attempting to alter more will result in only one record being
changed (the one with the update button that was clicked).

The Website and Contact Categories screen allows website categories
and contact types to be added, renamed and removed.  There is no
confirmation on this screen, so beware when removing items.  If you
remove, for example, a category, and then add another with the same
name, the sites that were in that category will not be in the new
one until you change them all individually.

The News Admin screen allows news admins to review all of the news
articles that have been submitted to the system.  Articles awaiting
authorisation have the submitter's name enclosed in square brackets
and made italic.  By clicking DETAILS the news admin can review,
edit, preview, delete and authorise news articles.  The HTML tags
<i> and <b> are allowed.  Carriage returns are retained as <br>
tags.

The News Topics screen allows news topics to be added, renamed and
removed.  There is no confirmation on this screen, so beware when
removing items.  If you remove, for example, a topic, and then add
another with the same name, the articles that were in that topic
will not be in the new one until you change them all individually.

The Helpdesk Categories screen allows call types and faq categories
to be added, renamed and removed.  There is no confirmation on this
screen, so beware when removing items.  If you remove, for example,
a call category, and then add another with the same name, the
helpdesk calls that were in that category will not be in the new
one until you change them all individually.

LIBRARY

The library is a file storage system.  Files are stored in folders,
which are arranged hierarchically.  Files admin always have an
upload form for adding new files, and can make new folders or adjust
the current ones.

Each file in a folder is listed as a row in a table.  The download
option attempts to send the file to the client (using a mime type of
*/*).  This works for many files, but there are exceptions - Windows
users with Office will find that Word files will be opened in Word
regardless.  This option is not shown if a user does not have access
to this file.

The open option starts the file in a new browser window, and sends
the mimetype that was originally sent by the browser that uploaded
the file.  When using proprietary file types, such as MS Office
files, it's a good idea to make sure that files are uploaded from a
machine that has the application installed, so that the mime type is
correctly set.  This option is not shown is a user does not have
access to this file.

The details option shows the file's details, including which teams
have access to the file, if it's secured, and the description. Files
admin users can alter the description, the security details and the
mime type, as well as which folder the file is in.

The security on files is team based.  If there are no teams listed,
the file is open to all and can be downloaded by any user.  If there
are teams listed, then the file can only be downloaded by logged in
members of those teams.  The security can only be adjusted by files
admin users, so it's important to be aware that they must be trusted.

At the bottom of the screen are two zoom buttons, where users can type
in the unique number of any file or folder, and be taken straight to
its info screen.  Each folder and file info screen has its unique
number displayed on it.

ONLINE HELP

Clicking Online Help when in a module with a help file brings up a HTML
based page describing what everything on that screen does.  It's
context sensitive.

All questions and comments can be emailed to the author, Brian Ronald:
   brian@ppcis.org

The latest version (and my public gpg key) should be available from:
   http://www.ppcis.org/