From 13eb42365c0ca5c3edaaa9d0a272182ae31af422 Mon Sep 17 00:00:00 2001 From: dwk2 Date: Thu, 14 Feb 2013 10:07:11 -0500 Subject: [PATCH] Normalize line endings --- .gitattributes | 22 + auth.cfg.php.sample | 10 +- classes/auth_LDAP.class.php | 36 +- doc/actions.txt | 1142 ++++++++--------- doc/architecture.txt | 110 +- doc/mockups/_BASE.html | 44 +- doc/mockups/account_mgt.html | 160 +-- doc/mockups/eq_group.html | 250 ++-- doc/mockups/eq_item.html | 128 +- doc/mockups/main_logged_in_false.html | 66 +- doc/mockups/main_logged_in_true.html | 154 +-- doc/mockups/manage_entities.html | 278 ++-- doc/mockups/mockup_list.txt | 28 +- doc/mockups/mockup_style.css | 142 +- doc/mockups/view_reservation.html | 130 +- head.php | 54 +- .../TestOfAuth_Base.class.php | 60 +- .../TestOfAuth_LDAP.class.php | 60 +- .../TestOfDB_Linked.class.php | 18 +- tests/phpinfo.php | 4 +- tests/simpletest/test/autorun_test.php | 44 +- 21 files changed, 1481 insertions(+), 1459 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/auth.cfg.php.sample b/auth.cfg.php.sample index 875e3d5..21b97e9 100644 --- a/auth.cfg.php.sample +++ b/auth.cfg.php.sample @@ -1,5 +1,5 @@ - \ No newline at end of file diff --git a/doc/actions.txt b/doc/actions.txt index 0505fe4..838b3af 100755 --- a/doc/actions.txt +++ b/doc/actions.txt @@ -1,571 +1,571 @@ -Equipment Reserve Actions - -A list of actions that the people using the system can take, and the role(s) necessary to take each action. - -GENERAL DESIGN/IMPLEMENTATION NOTE: - all data manipulation actions should be implemented as ajax calls when possible, - but navigation uses full page reloads - ------------------------------------- -ALL USERS ------------------------------------- - -View index page w/ log in form - reqs: - currently in an unauthenticated session - effects: - WEB: - display tool title & other relevant public info - display log in form (https) - -Log in - reqs: - has an LDAP account - currently in an unauthenticated session - effects: - WEB: - establish an authenticated session - DB: - if no eqreserve users table entry, create one and associated groups (if needed) and link_users_groups - else update users table, groups, and link_users_groups - LOG?: - track user log in event - -Log out - reqs: - currently in an authenticated session - effects: - WEB: - unauthenticate the session - LOG?: - track user log out event - -View index page w/ tool active - reqs: - currently in an authenticated session - effects: - WEB: - show list of allowed system actions - show list of eq_groups, indicating level of access for each one - LOG?: - track user index view - -See available groups - reqs: - currently in an authenticated session - effects: - WEB: - show list of eq_groups for which the current user has access - direct, via user id - indirect, via group membership - indicate role in each group, and from whence the role derives) - DB: - selects against - users - inst_groups - link_users_inst_groups - link_entities_roles_eq_groups - LOG?: - track user action - -See reservations list - reqs: - currently in an authenticated session - notes: this is driven by the user_id and grouped by the block_group - effects: - WEB: - show list of reservations the user has made - flag manager_reservations - show a single entry per block_group, with a list of the items/entities that are tied together in that block group - DB: - selects - LOG?: - track user action - ------------------------------------- -ADMINS ------------------------------------- - -System action: create user - reqs: - currently in an authenticated session - current user has admin role - notes: needs an LDAP search feature - effects: - WEB: display a user creation form - DB: create a users record, or update it if one already exists - LOG?: - track user action - -System action: look up user or institutional (LDAP) group - reqs: - currently in an authenticated session - current user has admin role - effects: - WEB: - display a search form - display result set w/ record summaries for 2+ results - w/ links to single user or inst group view/edit - visual cue users vs inst groups - jump directly to single user or inst_group view/edit if 1 result - ??? if no local user, jump to LDAP search? - DB: select set of users based on criteria - LOG?: - track user action - -System action: view/edit base user info - reqs: - currently in an authenticated session - current user has admin role - effects: - WEB: - display user info, with each field that can be edited in an editable form - display user roles - direct - via user id - indirect - via group membership - DB: retrieve and update a single users record - LOG?: - track user action - -System action: view/edit institutional (LDAP) group info - reqs: - currently in an authenticated session - current user has admin role - effects: - WEB: display inst_group info, with each field that can be edited in an editable form - DB: retrieve and update a single inst_groups record - LOG?: - track user action - -System action: globally ban a user or institutional (LDAP) group - reqs: - currently in an authenticated session - current user has admin role - effects: - WEB: a button/check on the edit user page - DB: flip the flag_is_banned field for the user - LOG?: - track user action - -System action: edit user/inst_group roles for eq_groups - reqs: - currently in an authenticated session - current user has admin role - notes: - editing access / roles from a group perspective is described / handled in the Group actions below - 'banned' has the same effects as 'none', but can be reported on and is actively indicative of state - effects: - WEB: - select a user or entity from a list / search result, or from the view / edit form for that user / inst_group - for a given user or group entity, list all eq groups, with current role for each group (banned, none, customer, manager) - allow changing of roles - DB: - adds, or deletes (or updates - maybe? might just do ti all w/ adds/deletes) link_entity_roles_eq_groups records - LOG?: - track user action - -System action: create equipment group - reqs: - currently in an authenticated session - current user has admin role - effects: - WEB: displays form for creating an equipment group - DB: eq_groups record created - LOG?: - track user action - -NOTE: editing an equipment group is described / handled in the Group actions below - -Group action: delete equipment group - reqs: - currently in an authenticated session - current user has admin role - effects: - WEB: - list all equipment groups - confirm action check - 'delete' selected one - DB: - mark appropriate eq_group record(s) as deleted - LOG?: - track user action - ------------------------------------- -MANAGERS (and ADMINS? might just require an admin to grant themselves manager role for the relevant group) ------------------------------------- - -Group action: view/edit group info - reqs: - currently in an authenticated session - current user has manager role for this group - notes: there are many actions associated with groups and which would appear on main group view page, these are detailed below - effects: - WEB: - display eq group info, with each field that can be edited in an editable form - DB: - retrieve and update a single eq_groups record - LOG?: - track user action - -Group action: (sub-action of view/edit group) manage entity roles for this group - reqs: - currently in an authenticated session - current user has manager role for this group - effects: - WEB: - show list of entities that have roles in the group (sortable by entity type, name, and role) - see DKC's work w/ sortable tables - quick-form (ajax-y) for adding a new entity role - include on-the-fly entity creation? - DB: - adds, or deletes (or updates - maybe? might just do ti all w/ adds/deletes) link_entity_roles_eq_groups records - LOG?: - track user action - -Group action: (sub-action of view/edit group) make scheduling rules for this group - reqs: - currently in an authenticated session - current user has manager role for this group - effects: - WEB: - show scheduling rule, and allow editing there-of - DB: - retrieve and update a single scheduling_rules record - LOG?: - track user action - -Group action: (sub-action of view/edit group) create availability block for this group - reqs: - currently in an authenticated session - current user has manager role for this group - this group has a scheduling rule - effects: - WEB: - show overview of scheduling/reservations for the group - calendar format (days horizontally and items (sub-grouped) vertically?) - list format - DB: - create availability block(s) - LOG?: - track user action - -Group action: (sub-action of view/edit group) create an manager reserve block for this group - reqs: - currently in an authenticated session - current user has manager role for this group - this group has a scheduling rule - effects: - WEB: - show overview of scheduling/reservations for the group - calendar format (days horizontally and items (sub-grouped) vertically?) - list format - DB: - create manager reserve block(s) for the group - LOG?: - track user action - -Group action: (sub-action of view/edit group) view and re-order sub-groups and items for this group - reqs: - currently in an authenticated session - current user has manager role for this group - notes: this can also be done individually by editing specific sub-groups, but this is conceptually a separate action - effects: - WEB: - list eq sub-groups and eq items, appropriately organized - DB: - alter the ordering values for the relevant record(s) - LOG?: - track user action - -Group action: (sub-action of view/edit group) create sub-group for this group - reqs: - currently in an authenticated session - current user has manager role for this group - effects: - WEB: - show add button at top and/or bottom of sub-group list - show sub-group creation form in-place (i.e. no page reload) - hide form on creation - dynamically add new sub-group info on creation / form hiding - DB: - create eq_subgroups record - LOG?: - track user action - -Group action: REPORTS on eq_group - reqs: - currently in an authenticated session - current user has manager role for this group - effects: - WEB: - over all activity, per item - # users - % in use - ???? - specific users and times - filter by time - all - historical - upcoming/future - DB: various SELECTs - LOG?: - track user action - -------------------- - -THIS IS HANDLED AT THE GROUP LEVEL -XGroup action: edit sub-group info -X reqs: -X currently in an authenticated session -X current user has manager role for this group -X effects: -X WEB: -X in-place editing form -X DB: -X update eq_subgroups record -X LOG?: -X track user action - -THIS IS HANDLED AT THE GROUP LEVEL -XGroup action: delete sub-group -X reqs: -X currently in an authenticated session -X current user has manager role for this group -X effects: -X WEB: -X delete button -X confirm action check -X DB: -X mark eq_subgroups record as deleted -X LOG?: -X track user action - -[Group action: make scheduling rules for this sub-group -[ reqs: -[ currently in an authenticated session -[ current user has manager role for this group -[ notes: -[ fail back to group level rule -[ effects: -[ WEB: -[ DB: -[ LOG?: -[ track user action - -[Group action: create availability block for this sub-group -[ reqs: -[ currently in an authenticated session -[ current user has manager role for this group -[ notes: -[ fail back to group level availability -[ effects: -[ WEB: -[ DB: -[ LOG?: -[ track user action - -[Group action: create an manager reserve block for this sub-group -[ reqs: -[ currently in an authenticated session -[ current user has manager role for this group -[ this group has a scheduling rule -[ effects: -[ WEB: -[ show overview of scheduling/reservations for the group -[ calendar format (days horizontally and items (sub-grouped) vertically?) -[ list format -[ DB: -[ create manager reserve block(s) for the sub-group -[ LOG?: -[ track user action - -THIS IS HANDLED AT THE GROUP LEVEL -XGroup action: re-order items within this sub-group -X reqs: -X currently in an authenticated session -X current user has manager role for this group -X notes: this can also be done individually by editing specific items, but this is conceptually a separate action -X effects: -X WEB: -X DB: -X LOG?: -X track user action - -THIS IS HANDLED AT THE GROUP LEVEL -XGroup action: create item -X reqs: -X currently in an authenticated session -X current user has manager role for this group -X effects: -X WEB: -X DB: -X LOG?: -X track user action - -THIS IS HANDLED AT THE GROUP LEVEL -XGroup action: edit item -X reqs: -X currently in an authenticated session -X current user has manager role for this group -X effects: -X WEB: -X DB: -X LOG?: -X track user action - -THIS IS HANDLED AT THE GROUP LEVEL -XGroup action: delete item -X reqs: -X currently in an authenticated session -X current user has manager role for this group -X effects: -X WEB: -X DB: -X LOG?: -X track user action - -[Group action: make scheduling rules for this item -[ reqs: -[ currently in an authenticated session -[ current user has manager role for this group -[ notes: -[ fail back to group level availability -[ effects: -[ WEB: -[ DB: -[ LOG?: -[ track user action - -[Group action: create availability block for this item -[ reqs: -[ currently in an authenticated session -[ current user has manager role for this group -[ effects: -[ WEB: -[ DB: -[ LOG?: -[ track user action - -Group action: create an manager reserve block for this item - reqs: - currently in an authenticated session - current user has manager role for this group - this group has a scheduling rule - notes: the UI for this is the same as consumer reservation, but there's a checkbox to make it a manager reservation; ALSO, the back-end implementation is the same, except- conflicts do not cause an abort, over-rides of non-manager reservations send an alert to the person that made the other reservation, and the other reservation is removed/deleted - effects: - WEB: - show overview of scheduling/reservations for the group - calendar format (days horizontally and items (sub-grouped) vertically?) - list format - DB: - create manager reserve block(s) for the sub-group - LOG?: - track user action - ------------------------------------- -CONSUMERS (and MANAGERS and ADMINS? might require them to grant themselves the consumer role for the group...) ------------------------------------- - -Consumer action: see group info - reqs: - currently in an authenticated session - current user has consumer role for the group (direct or indirect) - this group has a scheduling rule - effects: - WEB: - show eq_group info - show eq_subgroups - mouse over for descr - show eq_items - mouse over for descr and image (if the latter exists) - show overview of scheduling/reservations for the group - calendar format (days horizontally and items (sub-grouped) vertically?) - list format - DB: - many selects - LOG?: - track user action - -Consumer action: specify a reservation - reqs: - currently in an authenticated session - current user has consumer role for the group (direct or indirect) - this group has a scheduling rule - notes: there's a complex interplay between choosing items and choosing times- as items are chosen, various times become unavailable, and as times are chosen various items become unavailable. Try to make UI handle this in a flexible manner... - effects: - WEB: - show overview of scheduling/reservations for the group - calendar format (days horizontally and items (sub-grouped) vertically?) - list format - user chooses eq_items - limited by availability - user specifies time block (start, end) - limited by scheduling rules and availability - DB: - many selects - LOG?: - track user action - -Consumer action: (related to the above) create/make a reservations - reqs: - currently in an authenticated session - current user has consumer role for the group (direct or indirect) - reservation spec-ed by above process - this group has a scheduling rule - notes: - effects: - WEB: - post-creation, jump to the reservation view page - DB: - create the relevant time blocks, linked with a unique block_group identifier - LOG?: - track user action - -Consumer action: see reservation details - reqs: - currently in an authenticated session - user is the creator/owner of the reservation - effects: - WEB: - show eq_group, eq_subgroups, eq_items, and time_blocks - DB: - selects - LOG?: - track user action - - -THIS IS HANDLED ON THE VIEW RESERVATION PAGE -XConsumer action: delete a reservations -X reqs: -X currently in an authenticated session -X current user has consumer role for the group (direct or indirect) -X reservation spec-ed by above process -X notes: handled by a button on the view page -X effects: -X WEB: -X confirm action check -X post delete head to either the reservations list or the group info page, depending on where the user last visited -X DB: -X mark the relvant time blocks as deleted -X LOG?: -X track user action - - -[NOT SURE HOW / IF TO HANDLE THIS... certainly easier to have user just delete and re-create -[ - also relatively simple to allow reductive edits (remove items, shrink times) -[ - adding items is tricky -[ - altering times (extending and/or shifting) is tricky -[Consumer action: edit reservation -[ reqs: -[ currently in an authenticated session -[ user is the creator/owner of the reservation -[ effects: -[ WEB: -[ show reservation details -[ show other eq_group info -[ sub-groups and items -[ calendar / time list -[ allow alteration of time blocks -[ allow addition of items -[ allow removal of items -[ DB: -[ create, alter, or delete time blocks -[ LOG?: -[ track user action - - +Equipment Reserve Actions + +A list of actions that the people using the system can take, and the role(s) necessary to take each action. + +GENERAL DESIGN/IMPLEMENTATION NOTE: + all data manipulation actions should be implemented as ajax calls when possible, + but navigation uses full page reloads + +------------------------------------ +ALL USERS +------------------------------------ + +View index page w/ log in form + reqs: + currently in an unauthenticated session + effects: + WEB: + display tool title & other relevant public info + display log in form (https) + +Log in + reqs: + has an LDAP account + currently in an unauthenticated session + effects: + WEB: + establish an authenticated session + DB: + if no eqreserve users table entry, create one and associated groups (if needed) and link_users_groups + else update users table, groups, and link_users_groups + LOG?: + track user log in event + +Log out + reqs: + currently in an authenticated session + effects: + WEB: + unauthenticate the session + LOG?: + track user log out event + +View index page w/ tool active + reqs: + currently in an authenticated session + effects: + WEB: + show list of allowed system actions + show list of eq_groups, indicating level of access for each one + LOG?: + track user index view + +See available groups + reqs: + currently in an authenticated session + effects: + WEB: + show list of eq_groups for which the current user has access + direct, via user id + indirect, via group membership + indicate role in each group, and from whence the role derives) + DB: + selects against + users + inst_groups + link_users_inst_groups + link_entities_roles_eq_groups + LOG?: + track user action + +See reservations list + reqs: + currently in an authenticated session + notes: this is driven by the user_id and grouped by the block_group + effects: + WEB: + show list of reservations the user has made + flag manager_reservations + show a single entry per block_group, with a list of the items/entities that are tied together in that block group + DB: + selects + LOG?: + track user action + +------------------------------------ +ADMINS +------------------------------------ + +System action: create user + reqs: + currently in an authenticated session + current user has admin role + notes: needs an LDAP search feature + effects: + WEB: display a user creation form + DB: create a users record, or update it if one already exists + LOG?: + track user action + +System action: look up user or institutional (LDAP) group + reqs: + currently in an authenticated session + current user has admin role + effects: + WEB: + display a search form + display result set w/ record summaries for 2+ results + w/ links to single user or inst group view/edit + visual cue users vs inst groups + jump directly to single user or inst_group view/edit if 1 result + ??? if no local user, jump to LDAP search? + DB: select set of users based on criteria + LOG?: + track user action + +System action: view/edit base user info + reqs: + currently in an authenticated session + current user has admin role + effects: + WEB: + display user info, with each field that can be edited in an editable form + display user roles + direct - via user id + indirect - via group membership + DB: retrieve and update a single users record + LOG?: + track user action + +System action: view/edit institutional (LDAP) group info + reqs: + currently in an authenticated session + current user has admin role + effects: + WEB: display inst_group info, with each field that can be edited in an editable form + DB: retrieve and update a single inst_groups record + LOG?: + track user action + +System action: globally ban a user or institutional (LDAP) group + reqs: + currently in an authenticated session + current user has admin role + effects: + WEB: a button/check on the edit user page + DB: flip the flag_is_banned field for the user + LOG?: + track user action + +System action: edit user/inst_group roles for eq_groups + reqs: + currently in an authenticated session + current user has admin role + notes: + editing access / roles from a group perspective is described / handled in the Group actions below + 'banned' has the same effects as 'none', but can be reported on and is actively indicative of state + effects: + WEB: + select a user or entity from a list / search result, or from the view / edit form for that user / inst_group + for a given user or group entity, list all eq groups, with current role for each group (banned, none, customer, manager) + allow changing of roles + DB: + adds, or deletes (or updates - maybe? might just do ti all w/ adds/deletes) link_entity_roles_eq_groups records + LOG?: + track user action + +System action: create equipment group + reqs: + currently in an authenticated session + current user has admin role + effects: + WEB: displays form for creating an equipment group + DB: eq_groups record created + LOG?: + track user action + +NOTE: editing an equipment group is described / handled in the Group actions below + +Group action: delete equipment group + reqs: + currently in an authenticated session + current user has admin role + effects: + WEB: + list all equipment groups + confirm action check + 'delete' selected one + DB: + mark appropriate eq_group record(s) as deleted + LOG?: + track user action + +------------------------------------ +MANAGERS (and ADMINS? might just require an admin to grant themselves manager role for the relevant group) +------------------------------------ + +Group action: view/edit group info + reqs: + currently in an authenticated session + current user has manager role for this group + notes: there are many actions associated with groups and which would appear on main group view page, these are detailed below + effects: + WEB: + display eq group info, with each field that can be edited in an editable form + DB: + retrieve and update a single eq_groups record + LOG?: + track user action + +Group action: (sub-action of view/edit group) manage entity roles for this group + reqs: + currently in an authenticated session + current user has manager role for this group + effects: + WEB: + show list of entities that have roles in the group (sortable by entity type, name, and role) - see DKC's work w/ sortable tables + quick-form (ajax-y) for adding a new entity role + include on-the-fly entity creation? + DB: + adds, or deletes (or updates - maybe? might just do ti all w/ adds/deletes) link_entity_roles_eq_groups records + LOG?: + track user action + +Group action: (sub-action of view/edit group) make scheduling rules for this group + reqs: + currently in an authenticated session + current user has manager role for this group + effects: + WEB: + show scheduling rule, and allow editing there-of + DB: + retrieve and update a single scheduling_rules record + LOG?: + track user action + +Group action: (sub-action of view/edit group) create availability block for this group + reqs: + currently in an authenticated session + current user has manager role for this group + this group has a scheduling rule + effects: + WEB: + show overview of scheduling/reservations for the group + calendar format (days horizontally and items (sub-grouped) vertically?) + list format + DB: + create availability block(s) + LOG?: + track user action + +Group action: (sub-action of view/edit group) create an manager reserve block for this group + reqs: + currently in an authenticated session + current user has manager role for this group + this group has a scheduling rule + effects: + WEB: + show overview of scheduling/reservations for the group + calendar format (days horizontally and items (sub-grouped) vertically?) + list format + DB: + create manager reserve block(s) for the group + LOG?: + track user action + +Group action: (sub-action of view/edit group) view and re-order sub-groups and items for this group + reqs: + currently in an authenticated session + current user has manager role for this group + notes: this can also be done individually by editing specific sub-groups, but this is conceptually a separate action + effects: + WEB: + list eq sub-groups and eq items, appropriately organized + DB: + alter the ordering values for the relevant record(s) + LOG?: + track user action + +Group action: (sub-action of view/edit group) create sub-group for this group + reqs: + currently in an authenticated session + current user has manager role for this group + effects: + WEB: + show add button at top and/or bottom of sub-group list + show sub-group creation form in-place (i.e. no page reload) + hide form on creation + dynamically add new sub-group info on creation / form hiding + DB: + create eq_subgroups record + LOG?: + track user action + +Group action: REPORTS on eq_group + reqs: + currently in an authenticated session + current user has manager role for this group + effects: + WEB: + over all activity, per item + # users + % in use + ???? + specific users and times + filter by time + all + historical + upcoming/future + DB: various SELECTs + LOG?: + track user action + +------------------- + +THIS IS HANDLED AT THE GROUP LEVEL +XGroup action: edit sub-group info +X reqs: +X currently in an authenticated session +X current user has manager role for this group +X effects: +X WEB: +X in-place editing form +X DB: +X update eq_subgroups record +X LOG?: +X track user action + +THIS IS HANDLED AT THE GROUP LEVEL +XGroup action: delete sub-group +X reqs: +X currently in an authenticated session +X current user has manager role for this group +X effects: +X WEB: +X delete button +X confirm action check +X DB: +X mark eq_subgroups record as deleted +X LOG?: +X track user action + +[Group action: make scheduling rules for this sub-group +[ reqs: +[ currently in an authenticated session +[ current user has manager role for this group +[ notes: +[ fail back to group level rule +[ effects: +[ WEB: +[ DB: +[ LOG?: +[ track user action + +[Group action: create availability block for this sub-group +[ reqs: +[ currently in an authenticated session +[ current user has manager role for this group +[ notes: +[ fail back to group level availability +[ effects: +[ WEB: +[ DB: +[ LOG?: +[ track user action + +[Group action: create an manager reserve block for this sub-group +[ reqs: +[ currently in an authenticated session +[ current user has manager role for this group +[ this group has a scheduling rule +[ effects: +[ WEB: +[ show overview of scheduling/reservations for the group +[ calendar format (days horizontally and items (sub-grouped) vertically?) +[ list format +[ DB: +[ create manager reserve block(s) for the sub-group +[ LOG?: +[ track user action + +THIS IS HANDLED AT THE GROUP LEVEL +XGroup action: re-order items within this sub-group +X reqs: +X currently in an authenticated session +X current user has manager role for this group +X notes: this can also be done individually by editing specific items, but this is conceptually a separate action +X effects: +X WEB: +X DB: +X LOG?: +X track user action + +THIS IS HANDLED AT THE GROUP LEVEL +XGroup action: create item +X reqs: +X currently in an authenticated session +X current user has manager role for this group +X effects: +X WEB: +X DB: +X LOG?: +X track user action + +THIS IS HANDLED AT THE GROUP LEVEL +XGroup action: edit item +X reqs: +X currently in an authenticated session +X current user has manager role for this group +X effects: +X WEB: +X DB: +X LOG?: +X track user action + +THIS IS HANDLED AT THE GROUP LEVEL +XGroup action: delete item +X reqs: +X currently in an authenticated session +X current user has manager role for this group +X effects: +X WEB: +X DB: +X LOG?: +X track user action + +[Group action: make scheduling rules for this item +[ reqs: +[ currently in an authenticated session +[ current user has manager role for this group +[ notes: +[ fail back to group level availability +[ effects: +[ WEB: +[ DB: +[ LOG?: +[ track user action + +[Group action: create availability block for this item +[ reqs: +[ currently in an authenticated session +[ current user has manager role for this group +[ effects: +[ WEB: +[ DB: +[ LOG?: +[ track user action + +Group action: create an manager reserve block for this item + reqs: + currently in an authenticated session + current user has manager role for this group + this group has a scheduling rule + notes: the UI for this is the same as consumer reservation, but there's a checkbox to make it a manager reservation; ALSO, the back-end implementation is the same, except- conflicts do not cause an abort, over-rides of non-manager reservations send an alert to the person that made the other reservation, and the other reservation is removed/deleted + effects: + WEB: + show overview of scheduling/reservations for the group + calendar format (days horizontally and items (sub-grouped) vertically?) + list format + DB: + create manager reserve block(s) for the sub-group + LOG?: + track user action + +------------------------------------ +CONSUMERS (and MANAGERS and ADMINS? might require them to grant themselves the consumer role for the group...) +------------------------------------ + +Consumer action: see group info + reqs: + currently in an authenticated session + current user has consumer role for the group (direct or indirect) + this group has a scheduling rule + effects: + WEB: + show eq_group info + show eq_subgroups - mouse over for descr + show eq_items - mouse over for descr and image (if the latter exists) + show overview of scheduling/reservations for the group + calendar format (days horizontally and items (sub-grouped) vertically?) + list format + DB: + many selects + LOG?: + track user action + +Consumer action: specify a reservation + reqs: + currently in an authenticated session + current user has consumer role for the group (direct or indirect) + this group has a scheduling rule + notes: there's a complex interplay between choosing items and choosing times- as items are chosen, various times become unavailable, and as times are chosen various items become unavailable. Try to make UI handle this in a flexible manner... + effects: + WEB: + show overview of scheduling/reservations for the group + calendar format (days horizontally and items (sub-grouped) vertically?) + list format + user chooses eq_items - limited by availability + user specifies time block (start, end) - limited by scheduling rules and availability + DB: + many selects + LOG?: + track user action + +Consumer action: (related to the above) create/make a reservations + reqs: + currently in an authenticated session + current user has consumer role for the group (direct or indirect) + reservation spec-ed by above process + this group has a scheduling rule + notes: + effects: + WEB: + post-creation, jump to the reservation view page + DB: + create the relevant time blocks, linked with a unique block_group identifier + LOG?: + track user action + +Consumer action: see reservation details + reqs: + currently in an authenticated session + user is the creator/owner of the reservation + effects: + WEB: + show eq_group, eq_subgroups, eq_items, and time_blocks + DB: + selects + LOG?: + track user action + + +THIS IS HANDLED ON THE VIEW RESERVATION PAGE +XConsumer action: delete a reservations +X reqs: +X currently in an authenticated session +X current user has consumer role for the group (direct or indirect) +X reservation spec-ed by above process +X notes: handled by a button on the view page +X effects: +X WEB: +X confirm action check +X post delete head to either the reservations list or the group info page, depending on where the user last visited +X DB: +X mark the relvant time blocks as deleted +X LOG?: +X track user action + + +[NOT SURE HOW / IF TO HANDLE THIS... certainly easier to have user just delete and re-create +[ - also relatively simple to allow reductive edits (remove items, shrink times) +[ - adding items is tricky +[ - altering times (extending and/or shifting) is tricky +[Consumer action: edit reservation +[ reqs: +[ currently in an authenticated session +[ user is the creator/owner of the reservation +[ effects: +[ WEB: +[ show reservation details +[ show other eq_group info +[ sub-groups and items +[ calendar / time list +[ allow alteration of time blocks +[ allow addition of items +[ allow removal of items +[ DB: +[ create, alter, or delete time blocks +[ LOG?: +[ track user action + + diff --git a/doc/architecture.txt b/doc/architecture.txt index d7524fc..4c6efcf 100644 --- a/doc/architecture.txt +++ b/doc/architecture.txt @@ -1,55 +1,55 @@ -Equipment Reserve - -This is a system / application to enable efficient use of limited resources via scheduling. - -The file structure is -- app root : license, readme, config files, primary php files - ## index.php - ## institution.cfg.php - this file has all the institution specific and/or sensitive info (e.g. db connection strings) - ## auth.cfg.php - local config info specifically related to the authentication system that the app uses - + classes : various PHP class files - + css : all the style sheets - ## style.css - general styling of HTML elements and web page layout - ## calendar.css - making a calendar look good - ## ui.css - styling specific to interactivity - + db_setup : files / documents relating to setting up the database, but unused once the app is up and running - ## schema.sql - the sql code necessary to create the table structure for this app - + doc : documentation for/about the system - ## architecture.txt - an overview of how the app is organized - + js : local javascript; there's a jquery dir here, but only as a palce to organize plugins as the main jquerylibrary will be loaded form a cdn source - ## app.js - general javascript for the application - * jquery - % plugins : has sub-folders for each plugin - + tests : automated tests (unit, functional, integration) - * simpletest : the SimpleTest php unit testing framework - - - -The general approach is individual PHP pages for primary navigation / functional grouping: - index/login/landing - group - own account - item details - reservation details - -Within each functional grouping individual functions are implemented as ajax calls and/or other in-place behavior (i.e. whenever DB info/interaction is not needed then there's no reason for a call to the server). - -The classes fall into 2 general categories: data objects, and application infrastructure. - -The data object classes are all based on a root db_linked class which handles all basic MySQL DB IO and also has some static methods that handle some basic library-like DB methods (e.g. automatically correctly quote a constant, build pre-set sections of queries, etc.). - -The app infrastructure classes are: - Session - a basic session handling wrapper, with sugar methods to make other code easier to read (e.g. session.isAuthenticated) - AuthRoot - defines an interface that any auth module must support - AuthLDAP - a simple implementation of AuthRoot that uses LDAP as the authority - - -The PHP pages use a general approach of - - +Equipment Reserve + +This is a system / application to enable efficient use of limited resources via scheduling. + +The file structure is +- app root : license, readme, config files, primary php files + ## index.php + ## institution.cfg.php - this file has all the institution specific and/or sensitive info (e.g. db connection strings) + ## auth.cfg.php - local config info specifically related to the authentication system that the app uses + + classes : various PHP class files + + css : all the style sheets + ## style.css - general styling of HTML elements and web page layout + ## calendar.css - making a calendar look good + ## ui.css - styling specific to interactivity + + db_setup : files / documents relating to setting up the database, but unused once the app is up and running + ## schema.sql - the sql code necessary to create the table structure for this app + + doc : documentation for/about the system + ## architecture.txt - an overview of how the app is organized + + js : local javascript; there's a jquery dir here, but only as a palce to organize plugins as the main jquerylibrary will be loaded form a cdn source + ## app.js - general javascript for the application + * jquery + % plugins : has sub-folders for each plugin + + tests : automated tests (unit, functional, integration) + * simpletest : the SimpleTest php unit testing framework + + + +The general approach is individual PHP pages for primary navigation / functional grouping: + index/login/landing + group + own account + item details + reservation details + +Within each functional grouping individual functions are implemented as ajax calls and/or other in-place behavior (i.e. whenever DB info/interaction is not needed then there's no reason for a call to the server). + +The classes fall into 2 general categories: data objects, and application infrastructure. + +The data object classes are all based on a root db_linked class which handles all basic MySQL DB IO and also has some static methods that handle some basic library-like DB methods (e.g. automatically correctly quote a constant, build pre-set sections of queries, etc.). + +The app infrastructure classes are: + Session - a basic session handling wrapper, with sugar methods to make other code easier to read (e.g. session.isAuthenticated) + AuthRoot - defines an interface that any auth module must support + AuthLDAP - a simple implementation of AuthRoot that uses LDAP as the authority + + +The PHP pages use a general approach of + + diff --git a/doc/mockups/_BASE.html b/doc/mockups/_BASE.html index a09f38a..3a414d3 100644 --- a/doc/mockups/_BASE.html +++ b/doc/mockups/_BASE.html @@ -1,23 +1,23 @@ - - - MOCK UP EqReserve: - - - - - - -
general user
-
system admin
-
equipment mananger
-
consumer
-
-

page, state

- -

MOCK UP EqReserve:

- -
You are logged in as Violet Bovinea.
-
- - + + + MOCK UP EqReserve: + + + + + + +
general user
+
system admin
+
equipment mananger
+
consumer
+
+

page, state

+ +

MOCK UP EqReserve:

+ +
You are logged in as Violet Bovinea.
+
+ + \ No newline at end of file diff --git a/doc/mockups/account_mgt.html b/doc/mockups/account_mgt.html index 38aa017..5b5ba5d 100755 --- a/doc/mockups/account_mgt.html +++ b/doc/mockups/account_mgt.html @@ -1,81 +1,81 @@ - - - MOCK UP EqReserve: account management - - - - - - -
general user
-
system admin
-
equipment mananger
-
consumer
-
-

account managment, logged in

- -

MOCK UP EqReserve: account management

-
You are logged in as Violet Bovinea.
-
- -

all managers and system admins can also see the content on this page; admins can edit it (and in fact can edit any field, not just the ones show below for the general user to manage their own account)

-
- -Username: vcb1
-First name: Violet
-Last name: Bovinea
-Screen name:
-Email: Violet.C.Bovinea@williams.edu
-Phone:
- -Williams groups:
- Student
- 13S-BIOL-750
- 13S-ECON-101
- 13S-CSCI-371
- 13S-ARTS-300
- -
-
- -Notes/comments:
-
-
- -
- -

Alert Preferences

- - - - -
equipmentupcoming reservation reminderon reservations madeon cancellations
other things
- -
- -
-
- -
- -

Upcoming Reserves

- - - - -
timeequipment
2013/02/17 9:00PM-11:00PMlasers : diffuser, refractor, reflector
- -
-
- -

Historical Reserves

- - - - -
timeequipment
2012/11/22 3:00PM-8:00PMlasers : nose cone B, tray A, computer A
- -
- - + + + MOCK UP EqReserve: account management + + + + + + +
general user
+
system admin
+
equipment mananger
+
consumer
+
+

account managment, logged in

+ +

MOCK UP EqReserve: account management

+
You are logged in as Violet Bovinea.
+
+ +

all managers and system admins can also see the content on this page; admins can edit it (and in fact can edit any field, not just the ones show below for the general user to manage their own account)

+
+ +Username: vcb1
+First name: Violet
+Last name: Bovinea
+Screen name:
+Email: Violet.C.Bovinea@williams.edu
+Phone:
+ +Williams groups:
+ Student
+ 13S-BIOL-750
+ 13S-ECON-101
+ 13S-CSCI-371
+ 13S-ARTS-300
+ +
+
+ +Notes/comments:
+
+
+ +
+ +

Alert Preferences

+ + + + +
equipmentupcoming reservation reminderon reservations madeon cancellations
other things
+ +
+ +
+
+ +
+ +

Upcoming Reserves

+ + + + +
timeequipment
2013/02/17 9:00PM-11:00PMlasers : diffuser, refractor, reflector
+ +
+
+ +

Historical Reserves

+ + + + +
timeequipment
2012/11/22 3:00PM-8:00PMlasers : nose cone B, tray A, computer A
+ +
+ + \ No newline at end of file diff --git a/doc/mockups/eq_group.html b/doc/mockups/eq_group.html index 9a19217..2d50707 100755 --- a/doc/mockups/eq_group.html +++ b/doc/mockups/eq_group.html @@ -1,126 +1,126 @@ - - - MOCK UP EqReserve: Equipment Group - - - - - - -
general user
-
system admin
-
equipment mananger
-
consumer
-
-

Equipment Group, logged in and has access to the group

- -

MOCK UP EqReserve: Equipment Group

- -
You are logged in as Violet Bovinea.
-
- -

Lasers

- -

Description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description

- -Managed by: Prof. Rumina
-
-

Reservation Rules

-Reservations must start and end on one of these minutes of the hour: 0,30
-The minumum length of time that can be reserved: 30 minutes
-The maximum length of time that can be reserved: 24 hours
- -
-

manager have the above replaced with a form

-

Reservation Rules

-Reservations must start and end on one of these minutes of the hour:
-The minumum length of time that can be reserved:
-The maximum length of time that can be reserved:
-
-
-
schedule display controls

- causes the form / controls below to appear, and the checkboxes and radio button to appear next to the items below.
-
-
scheduling gui
-enter values or
-user the gui to the right
-start date/time:
-end date/time:
-repeat: not repeated | - daily | - weekly | - monthly
-

repeat rates cause addition ui elements to appear to support specifying days of week, or month, and an end date

-
make this a manager / maintenance reservation
-Notes/comments:
-

-
- - - -
-
- -
-list of reservations (as opposed to calendar / gui view) -
- - -
- -
-user / entity access controls for this eq group -
- -
- -
-reports for this group -
- -
- -
- -
- - + + + MOCK UP EqReserve: Equipment Group + + + + + + +
general user
+
system admin
+
equipment mananger
+
consumer
+
+

Equipment Group, logged in and has access to the group

+ +

MOCK UP EqReserve: Equipment Group

+ +
You are logged in as Violet Bovinea.
+
+ +

Lasers

+ +

Description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description description

+ +Managed by: Prof. Rumina
+
+

Reservation Rules

+Reservations must start and end on one of these minutes of the hour: 0,30
+The minumum length of time that can be reserved: 30 minutes
+The maximum length of time that can be reserved: 24 hours
+ +
+

manager have the above replaced with a form

+

Reservation Rules

+Reservations must start and end on one of these minutes of the hour:
+The minumum length of time that can be reserved:
+The maximum length of time that can be reserved:
+
+
+
schedule display controls

+ causes the form / controls below to appear, and the checkboxes and radio button to appear next to the items below.
+
+
scheduling gui
+enter values or
+user the gui to the right
+start date/time:
+end date/time:
+repeat: not repeated | + daily | + weekly | + monthly
+

repeat rates cause addition ui elements to appear to support specifying days of week, or month, and an end date

+
make this a manager / maintenance reservation
+Notes/comments:
+

+
+ + + +
+
+ +
+list of reservations (as opposed to calendar / gui view) +
+ + +
+ +
+user / entity access controls for this eq group +
+ +
+ +
+reports for this group +
+ +
+ +
+ +
+ + \ No newline at end of file diff --git a/doc/mockups/eq_item.html b/doc/mockups/eq_item.html index 6c102b4..c94e3e8 100755 --- a/doc/mockups/eq_item.html +++ b/doc/mockups/eq_item.html @@ -1,65 +1,65 @@ - - - MOCK UP EqReserve: item details - - - - - - -
general user
-
system admin
-
equipment mananger
-
consumer
-
-

item details - possibly redundant to the summaryinfo int eh eq group page, but it makes a handy place for pseudo-reporting specific to the item

- -

MOCK UP EqReserve: item details

- -
You are logged in as Violet Bovinea.
-
- -

managers get editable versions of the below (e.g text fields instead of just text, spec-url for the image, etc.)

- -

Diffuser

-

or else

- -

This item is in the lasers group.

- -
- -
img url:
-
- -

Description: ffuses two things

-
or else
-Description:
-
- -
- -
- -

Reservations

- -

number of reservation could get overwhelming - consider incremental, ajax-driven, load-on-demand approach

- -

upcoming

- - - - -
whowhenequipment
Violet Bovinea2013/02/17 9:00PM-11:00PMlasers : diffuser, refractor, reflector
- -
- -

historical

- - - - - -
whowhenequipment
Violet Bovinea2012/11/22 3:00PM-8:00PMlasers : diffuser, tray A, computer A
Prof. RuminaMANAGER RESERVE 2012/10/16 12:00AM- 2012/10/22 12:00AMlasers : diffuser, reflector
- - + + + MOCK UP EqReserve: item details + + + + + + +
general user
+
system admin
+
equipment mananger
+
consumer
+
+

item details - possibly redundant to the summaryinfo int eh eq group page, but it makes a handy place for pseudo-reporting specific to the item

+ +

MOCK UP EqReserve: item details

+ +
You are logged in as Violet Bovinea.
+
+ +

managers get editable versions of the below (e.g text fields instead of just text, spec-url for the image, etc.)

+ +

Diffuser

+

or else

+ +

This item is in the lasers group.

+ +
+ +
img url:
+
+ +

Description: ffuses two things

+
or else
+Description:
+
+ +
+ +
+ +

Reservations

+ +

number of reservation could get overwhelming - consider incremental, ajax-driven, load-on-demand approach

+ +

upcoming

+ + + + +
whowhenequipment
Violet Bovinea2013/02/17 9:00PM-11:00PMlasers : diffuser, refractor, reflector
+ +
+ +

historical

+ + + + + +
whowhenequipment
Violet Bovinea2012/11/22 3:00PM-8:00PMlasers : diffuser, tray A, computer A
Prof. RuminaMANAGER RESERVE 2012/10/16 12:00AM- 2012/10/22 12:00AMlasers : diffuser, reflector
+ + \ No newline at end of file diff --git a/doc/mockups/main_logged_in_false.html b/doc/mockups/main_logged_in_false.html index a8c644a..5e65306 100644 --- a/doc/mockups/main_logged_in_false.html +++ b/doc/mockups/main_logged_in_false.html @@ -1,34 +1,34 @@ - - - MOCK UP EqReserve: main page, not logged in - - - - - - -
general user
-
system admin
-
equipment mananger
-
consumer
-
-

main page, not logged in

- -

MOCK UP EqReserve: Home

- -

This page has a brief description of the system, contact info for the admin, and a log in form.

- -
-Username:
-Password:
- -
- -
- -

about

- -
- - + + + MOCK UP EqReserve: main page, not logged in + + + + + + +
general user
+
system admin
+
equipment mananger
+
consumer
+
+

main page, not logged in

+ +

MOCK UP EqReserve: Home

+ +

This page has a brief description of the system, contact info for the admin, and a log in form.

+ +
+Username:
+Password:
+ +
+ +
+ +

about

+ +
+ + \ No newline at end of file diff --git a/doc/mockups/main_logged_in_true.html b/doc/mockups/main_logged_in_true.html index eda3f05..1009efc 100644 --- a/doc/mockups/main_logged_in_true.html +++ b/doc/mockups/main_logged_in_true.html @@ -1,78 +1,78 @@ - - - MOCK UP EqReserve: main page, logged in - - - - - - -
general user
-
system admin
-
equipment mananger
-
consumer
-
-

main page, logged in

- -

MOCK UP EqReserve: Home

- -

This page provides high-level navigation of the eqreserve system. It provides links to all the groups to which the user has access, with an indicaiton of why/how/degree of access. Admins also see admin tools and reports linked on this page. Users also access their prefs on this page (e.g. preferred contact email, displayed name, etc.).

- -
You are logged in as Violet Bovinea.
-
- -

General instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here

- -
- -

Your reservations coming up in the next 3 days

- - - - - -
timeequipment
2013/02/17 9:00PM-11:00PMMANAGER RESERVE lasers : diffuser, refractor, reflector
2013/02/19 11:30AM-4:00PMvery small things : miniscope, microscope, nanoscope
- -
- -
-

Equipment Groups

-

system admins will be able to drag groups to re-order them - a small drag-handle will be shown for them

- -
-
-

On clicking the above, shows in place the creation form:

-
- Name of group:
- Description of group:
- -
- Once created then the link for the group shows up in the list -
-
- -
-

Administration

- -
- - - -
-
- -

HELP | about

- -
- - + + + MOCK UP EqReserve: main page, logged in + + + + + + +
general user
+
system admin
+
equipment mananger
+
consumer
+
+

main page, logged in

+ +

MOCK UP EqReserve: Home

+ +

This page provides high-level navigation of the eqreserve system. It provides links to all the groups to which the user has access, with an indicaiton of why/how/degree of access. Admins also see admin tools and reports linked on this page. Users also access their prefs on this page (e.g. preferred contact email, displayed name, etc.).

+ +
You are logged in as Violet Bovinea.
+
+ +

General instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here general instructions here

+ +
+ +

Your reservations coming up in the next 3 days

+ + + + + +
timeequipment
2013/02/17 9:00PM-11:00PMMANAGER RESERVE lasers : diffuser, refractor, reflector
2013/02/19 11:30AM-4:00PMvery small things : miniscope, microscope, nanoscope
+ +
+ +
+

Equipment Groups

+

system admins will be able to drag groups to re-order them - a small drag-handle will be shown for them

+ +
+
+

On clicking the above, shows in place the creation form:

+
+ Name of group:
+ Description of group:
+ +
+ Once created then the link for the group shows up in the list +
+
+ +
+

Administration

+ +
+ + + +
+
+ +

HELP | about

+ +
+ + \ No newline at end of file diff --git a/doc/mockups/manage_entities.html b/doc/mockups/manage_entities.html index 1ddcdc5..1863b5f 100755 --- a/doc/mockups/manage_entities.html +++ b/doc/mockups/manage_entities.html @@ -1,140 +1,140 @@ - - - MOCK UP EqReserve: manage entities - - - - - - -
general user
-
system admin
-
equipment mananger
-
consumer
-
-

manage entities, system admin

- -

MOCK UP EqReserve: manage entities

-
You are logged in as Violet Bovinea.
-
- -
If the search for the user or group does not find any results in the eq reserve sysem it queries the LDAP system and then creates the user/s and/or group/s in eq reserve if it gets any results from LDAP.
- -Find:
- - -

- -
-

sample multi results - search for 'biol'

- -person: Jared Curbiol
-person: Nin Abiolo
-group: 13S-BIOL-101
-group: 13S-BIOL-105
-group: 13S-BIOL-248
-group: 13S-BIOL-750 Very Advanced Biology
- - -

- -
-

sample user result

- -Username: pgr1
-First name: Poa
-Last name: Rumina
-
-Is banned?
-
-Screen name:
-Email: Poa.G.Rumina@williams.edu
-Phone:
-
-Williams groups:
- Faculty
- 13S-BIOL-101
- 13S-BIOL-248
- 13S-BIOL-750
- -
-
- -

Access

- - - - - - - - - -
grouptypehow
lasersconsumermember of 13S-BIOL-750 (Very Advanced Biology)
lasersdirect
very small thingsdirect
gargantuan things
funky smellsdirect
other things
- -
-
- -

Upcoming Reserves

- - - - -
timeequipment
2013/02/17 9:00PM-11:00PMvery small things: tweezers A, magnifier B
- -
-
- -

Historical Reserves

- - - - -
timeequipment
2012/11/22 3:00PM-8:00PMvery small things: tweezers B, magnifier C, lights A
- - -

- -
-

sample group result

- -Group: 13S-BIOL-750
- -Screen name:
- -
-
- -

Access

- - - - - - - - -
grouptypehow
lasers
very small things
gargantuan things
funky smells
other things
- -
-
- -

Upcoming Reserves

- - - - -
usertimeequipment
Violet Bovinea2013/02/17 9:00PM-11:00PMlasers : nose cone A, tray B, computer A
- -
-
- -

Historical Reserves

- - - - -
usertimeequipment
Violet Bovinea2012/11/22 3:00PM-8:00PMlasers : nose cone B, tray A, computer A
- - + + + MOCK UP EqReserve: manage entities + + + + + + +
general user
+
system admin
+
equipment mananger
+
consumer
+
+

manage entities, system admin

+ +

MOCK UP EqReserve: manage entities

+
You are logged in as Violet Bovinea.
+
+ +
If the search for the user or group does not find any results in the eq reserve sysem it queries the LDAP system and then creates the user/s and/or group/s in eq reserve if it gets any results from LDAP.
+ +Find:
+ + +

+ +
+

sample multi results - search for 'biol'

+ +person: Jared Curbiol
+person: Nin Abiolo
+group: 13S-BIOL-101
+group: 13S-BIOL-105
+group: 13S-BIOL-248
+group: 13S-BIOL-750 Very Advanced Biology
+ + +

+ +
+

sample user result

+ +Username: pgr1
+First name: Poa
+Last name: Rumina
+
+Is banned?
+
+Screen name:
+Email: Poa.G.Rumina@williams.edu
+Phone:
+
+Williams groups:
+ Faculty
+ 13S-BIOL-101
+ 13S-BIOL-248
+ 13S-BIOL-750
+ +
+
+ +

Access

+ + + + + + + + + +
grouptypehow
lasersconsumermember of 13S-BIOL-750 (Very Advanced Biology)
lasersdirect
very small thingsdirect
gargantuan things
funky smellsdirect
other things
+ +
+
+ +

Upcoming Reserves

+ + + + +
timeequipment
2013/02/17 9:00PM-11:00PMvery small things: tweezers A, magnifier B
+ +
+
+ +

Historical Reserves

+ + + + +
timeequipment
2012/11/22 3:00PM-8:00PMvery small things: tweezers B, magnifier C, lights A
+ + +

+ +
+

sample group result

+ +Group: 13S-BIOL-750
+ +Screen name:
+ +
+
+ +

Access

+ + + + + + + + +
grouptypehow
lasers
very small things
gargantuan things
funky smells
other things
+ +
+
+ +

Upcoming Reserves

+ + + + +
usertimeequipment
Violet Bovinea2013/02/17 9:00PM-11:00PMlasers : nose cone A, tray B, computer A
+ +
+
+ +

Historical Reserves

+ + + + +
usertimeequipment
Violet Bovinea2012/11/22 3:00PM-8:00PMlasers : nose cone B, tray A, computer A
+ + \ No newline at end of file diff --git a/doc/mockups/mockup_list.txt b/doc/mockups/mockup_list.txt index 6681547..5131321 100755 --- a/doc/mockups/mockup_list.txt +++ b/doc/mockups/mockup_list.txt @@ -1,15 +1,15 @@ -X main, not logged in -X main, logged in -X account managment, logged in -X manage entities -X eq group -X eq item details -? make reservation - this seems it can be fully subsumed into the eq_group page -X view reservation - - - - - - +X main, not logged in +X main, logged in +X account managment, logged in +X manage entities +X eq group +X eq item details +? make reservation - this seems it can be fully subsumed into the eq_group page +X view reservation + + + + + + \ No newline at end of file diff --git a/doc/mockups/mockup_style.css b/doc/mockups/mockup_style.css index d4bcee1..b5fc192 100644 --- a/doc/mockups/mockup_style.css +++ b/doc/mockups/mockup_style.css @@ -1,72 +1,72 @@ -html { - background-color: #000; - margin: 0; -} - -body { - font: 14px arial, Helvetica, sans-serif; - margin: 0 auto; - padding: 3px 5px; - width: 960px; - background-color: #ddd; -} - -div { - margin: 3px 6px; - padding: 3px; -} - -h1 { - text-align: center; -} -h2, h3, h4, h5, h6 { - margin: 3px 0 2px 0; -} - -.commentary { - color: #777; - font-style: italic; -} - -.legend { - width: 120px; - height: 40px; - text-align: center; - vertical-align: middle; - padding: 3px 6px; - margin: 3px 12px; - float: left; - border: 1px solid #bbb; -} - -.general_user { - background-color: #ddd; -} - -.admin_user { - background-color: #edd; -} - -.manager_user { - background-color: #ddf; -} - -.consumer_user { - background-color: #ded; -} - -.left { float: left; } -.right { float: right; } -.center { text-align: center; } - -#items_list li { - list-style: none; - clear: both; -} - -.schedule_placeholder { - width: 720px; - height: 18px; - background-color: #999; - text-align: center; +html { + background-color: #000; + margin: 0; +} + +body { + font: 14px arial, Helvetica, sans-serif; + margin: 0 auto; + padding: 3px 5px; + width: 960px; + background-color: #ddd; +} + +div { + margin: 3px 6px; + padding: 3px; +} + +h1 { + text-align: center; +} +h2, h3, h4, h5, h6 { + margin: 3px 0 2px 0; +} + +.commentary { + color: #777; + font-style: italic; +} + +.legend { + width: 120px; + height: 40px; + text-align: center; + vertical-align: middle; + padding: 3px 6px; + margin: 3px 12px; + float: left; + border: 1px solid #bbb; +} + +.general_user { + background-color: #ddd; +} + +.admin_user { + background-color: #edd; +} + +.manager_user { + background-color: #ddf; +} + +.consumer_user { + background-color: #ded; +} + +.left { float: left; } +.right { float: right; } +.center { text-align: center; } + +#items_list li { + list-style: none; + clear: both; +} + +.schedule_placeholder { + width: 720px; + height: 18px; + background-color: #999; + text-align: center; } \ No newline at end of file diff --git a/doc/mockups/view_reservation.html b/doc/mockups/view_reservation.html index b8d66aa..2b3f81b 100755 --- a/doc/mockups/view_reservation.html +++ b/doc/mockups/view_reservation.html @@ -1,66 +1,66 @@ - - - MOCK UP EqReserve: view reservation - - - - - - -
general user
-
system admin
-
equipment mananger
-
consumer
-
-

view reservation, creator or eq manager

- -

MOCK UP EqReserve: View Reservation

- -
You are logged in as Violet Bovinea.
-
- -
-

if this is a management reservation (as opposed to a normal reservation made by someone who has manager role)

-

MANAGER RESERVATION

-
- -Notes/comments:
-
-
- -The following lasers equipment is reserved: - - -

list of time blocks in this time block group, ordered from past to future; past ones grayed out, next upcoming bolded

-For the following times:
- - - + + + MOCK UP EqReserve: view reservation + + + + + + +
general user
+
system admin
+
equipment mananger
+
consumer
+
+

view reservation, creator or eq manager

+ +

MOCK UP EqReserve: View Reservation

+ +
You are logged in as Violet Bovinea.
+
+ +
+

if this is a management reservation (as opposed to a normal reservation made by someone who has manager role)

+

MANAGER RESERVATION

+
+ +Notes/comments:
+
+
+ +The following lasers equipment is reserved: + + +

list of time blocks in this time block group, ordered from past to future; past ones grayed out, next upcoming bolded

+For the following times:
+ + + \ No newline at end of file diff --git a/head.php b/head.php index fc827ab..c6d2956 100755 --- a/head.php +++ b/head.php @@ -1,27 +1,27 @@ -authenticate($_REQUEST['username'],$_REQUEST['password']); -//echo "post authenticate attempt\n"; -//echo 'isAuthenticated = '.$_SESSION['isAuthenticated']."\n"; - } -} - -$DB = new PDO("mysql:host=".DB_SERVER.";dbname=".DB_NAME.";port=3306",DB_USER,DB_PASS); - -?> - - - <?php echo APP_NAME.': '.$pageTitle;?> - - +authenticate($_REQUEST['username'],$_REQUEST['password']); +//echo "post authenticate attempt\n"; +//echo 'isAuthenticated = '.$_SESSION['isAuthenticated']."\n"; + } +} + +$DB = new PDO("mysql:host=".DB_SERVER.";dbname=".DB_NAME.";port=3306",DB_USER,DB_PASS); + +?> + + + <?php echo APP_NAME.': '.$pageTitle;?> + + diff --git a/tests/app_infrastructure_tests/TestOfAuth_Base.class.php b/tests/app_infrastructure_tests/TestOfAuth_Base.class.php index 78fd9cf..4cf6eb2 100755 --- a/tests/app_infrastructure_tests/TestOfAuth_Base.class.php +++ b/tests/app_infrastructure_tests/TestOfAuth_Base.class.php @@ -1,31 +1,31 @@ -assertTrue(1==1); - } - - function testAuthenticateTestUser() { - // no real test - the require at the top of the file is enough - $AUTH = new Auth_Base(); - $this->assertTrue($AUTH->authenticate(TESTINGUSER,TESTINGPASSWORD)); - } - - function testAuthenticateNontestUserFails() { - // no real test - the require at the top of the file is enough - $AUTH = new Auth_Base(); - $this->assertFalse($AUTH->authenticate(TESTINGUSER.'foo',TESTINGPASSWORD)); - } - - function testAuthenticateTestUserBaddPasswordFails() { - // no real test - the require at the top of the file is enough - $AUTH = new Auth_Base(); - $this->assertFalse($AUTH->authenticate(TESTINGUSER,TESTINGPASSWORD.'foo')); - } - -} +assertTrue(1==1); + } + + function testAuthenticateTestUser() { + // no real test - the require at the top of the file is enough + $AUTH = new Auth_Base(); + $this->assertTrue($AUTH->authenticate(TESTINGUSER,TESTINGPASSWORD)); + } + + function testAuthenticateNontestUserFails() { + // no real test - the require at the top of the file is enough + $AUTH = new Auth_Base(); + $this->assertFalse($AUTH->authenticate(TESTINGUSER.'foo',TESTINGPASSWORD)); + } + + function testAuthenticateTestUserBaddPasswordFails() { + // no real test - the require at the top of the file is enough + $AUTH = new Auth_Base(); + $this->assertFalse($AUTH->authenticate(TESTINGUSER,TESTINGPASSWORD.'foo')); + } + +} ?> \ No newline at end of file diff --git a/tests/app_infrastructure_tests/TestOfAuth_LDAP.class.php b/tests/app_infrastructure_tests/TestOfAuth_LDAP.class.php index 50a26c6..18123cc 100755 --- a/tests/app_infrastructure_tests/TestOfAuth_LDAP.class.php +++ b/tests/app_infrastructure_tests/TestOfAuth_LDAP.class.php @@ -1,31 +1,31 @@ -assertTrue(1==1); - } - - function testAuthenticateTestUser() { - // no real test - the require at the top of the file is enough - $AUTH = new Auth_LDAP(); - $this->assertTrue($AUTH->authenticate(TESTINGUSER,TESTINGPASSWORD)); - } - - function testAuthenticateNontestUserFails() { - // no real test - the require at the top of the file is enough - $AUTH = new Auth_LDAP(); - $this->assertFalse($AUTH->authenticate(TESTINGUSER.'foo',TESTINGPASSWORD)); - } - - function testAuthenticateTestUserBaddPasswordFails() { - // no real test - the require at the top of the file is enough - $AUTH = new Auth_LDAP(); - $this->assertFalse($AUTH->authenticate(TESTINGUSER,TESTINGPASSWORD.'foo')); - } - -} +assertTrue(1==1); + } + + function testAuthenticateTestUser() { + // no real test - the require at the top of the file is enough + $AUTH = new Auth_LDAP(); + $this->assertTrue($AUTH->authenticate(TESTINGUSER,TESTINGPASSWORD)); + } + + function testAuthenticateNontestUserFails() { + // no real test - the require at the top of the file is enough + $AUTH = new Auth_LDAP(); + $this->assertFalse($AUTH->authenticate(TESTINGUSER.'foo',TESTINGPASSWORD)); + } + + function testAuthenticateTestUserBaddPasswordFails() { + // no real test - the require at the top of the file is enough + $AUTH = new Auth_LDAP(); + $this->assertFalse($AUTH->authenticate(TESTINGUSER,TESTINGPASSWORD.'foo')); + } + +} ?> \ No newline at end of file diff --git a/tests/app_infrastructure_tests/TestOfDB_Linked.class.php b/tests/app_infrastructure_tests/TestOfDB_Linked.class.php index de83449..08bc376 100755 --- a/tests/app_infrastructure_tests/TestOfDB_Linked.class.php +++ b/tests/app_infrastructure_tests/TestOfDB_Linked.class.php @@ -1,10 +1,10 @@ -assertNotNull($this->DB); - } -} +assertNotNull($this->DB); + } +} ?> \ No newline at end of file diff --git a/tests/phpinfo.php b/tests/phpinfo.php index d2b25e4..968c8df 100755 --- a/tests/phpinfo.php +++ b/tests/phpinfo.php @@ -1,3 +1,3 @@ - \ No newline at end of file diff --git a/tests/simpletest/test/autorun_test.php b/tests/simpletest/test/autorun_test.php index d85ea19..67a884c 100755 --- a/tests/simpletest/test/autorun_test.php +++ b/tests/simpletest/test/autorun_test.php @@ -1,23 +1,23 @@ -addFile(dirname(__FILE__) . '/support/test1.php'); - $this->assertEqual($tests->getSize(), 1); - } - - function testExitStatusOneIfTestsFail() { - exec('php ' . dirname(__FILE__) . '/support/failing_test.php', $output, $exit_status); - $this->assertEqual($exit_status, 1); - } - - function testExitStatusZeroIfTestsPass() { - exec('php ' . dirname(__FILE__) . '/support/passing_test.php', $output, $exit_status); - $this->assertEqual($exit_status, 0); - } -} - +addFile(dirname(__FILE__) . '/support/test1.php'); + $this->assertEqual($tests->getSize(), 1); + } + + function testExitStatusOneIfTestsFail() { + exec('php ' . dirname(__FILE__) . '/support/failing_test.php', $output, $exit_status); + $this->assertEqual($exit_status, 1); + } + + function testExitStatusZeroIfTestsPass() { + exec('php ' . dirname(__FILE__) . '/support/passing_test.php', $output, $exit_status); + $this->assertEqual($exit_status, 0); + } +} + ?> \ No newline at end of file