Commit Graph
36 Commits
Author SHA1 Message Date
Andy Staudacher c01ac42c46 Refactor all calls of p::clean() to SafeString::of() and p::purify() to SafeString::purify().
Removing any p::clean() calls for arguments to t() and t2() since their args are wrapped in a SafeString anyway.
2009-08-29 12:48:40 -07:00
Andy Staudacher 020281d932 Adding SafeString which is going to replace p::clean() and p::purify().
Refactoring of Xss_Security_Test.
t() and t2() return a SafeString instance.

TODO:
 - Update all code to use SafeString where appropriate.
 - Update golden fole of Xss_Security_Test
 - Stop reporting CLEAN vars in Xss_Security_Test
2009-08-29 10:45:47 -07:00
Bharat Mediratta 80f48b084a In the logout link, urlencode the continue url so that ampersands, etc
don't break encapsulation.  In the logout controller, don't run the
url through url::redirect because that uses url::site().  Just set the
Location header directly.

This fixes ticket #483.
2009-07-21 13:02:20 -07:00
Bharat Mediratta 050c82cf80 Escape bare & symbols so that we use valid entities. Fixes ticket #577. 2009-07-21 11:09:23 -07:00
Bharat Mediratta 51dca582cd More thorough fix for #421. Create User_Model::display_name() which
uses the full name if there is one, or falls back to the name if
that's all we have.
2009-07-19 16:50:35 -07:00
Bharat Mediratta 277d72d9fa Fix formatting. 2009-06-06 12:50:38 -07:00
Bharat Mediratta 43abcd9386 Security pass over all controller code. Mostly adding CSRF checking
and verifying user permissions, but there are several above-the-bar
changes:

1) Server add is now only available to admins.  This is a hard
   requirement because we have to limit server access (eg:
   server_add::children) to a user subset and the current permission
   model doesn't include that.  Easiest fix is to restrict to admins.
   Got rid of the server_add permission.

2) We now know check permissions at every level, which means in
   controllers AND in helpers.  This "belt and suspenders" approach will
   give us defense in depth in case we overlook it in one area.

3) We now do CSRF checking in every controller method that changes the
   code, in addition to the Forge auto-check.  Again, defense in depth
   and it makes scanning the code for security much simpler.

4) Moved Simple_Uploader_Controller::convert_filename_to_title to
   item:convert_filename_to_title

5) Fixed a bug in sending notification emails.

6) Fixed the Organize code to verify that you only have access to your
   own tasks.  In general, added permission checks to organize which had
   pretty much no validation code.

I did my best to verify every feature that I touched.
2009-06-01 22:40:22 -07:00
Bharat Mediratta 9369ccab7f Run all variables that come from user-entered data through p::clean() 2009-05-31 01:02:51 -07:00
Bharat Mediratta 1344bd7009 Use the name field if the full_name field is empty. 2009-05-13 03:36:06 +00:00
Andy Staudacher 6fae077b52 Fix i18n for "Logged in as" string 2009-04-17 02:04:25 +00:00
Chad Kieffer 542ab6db1f Combined "Logged in as..." and "Modify Profile" to by just "Logged in as FullName" 2009-03-16 04:54:00 +00:00
Bharat Mediratta 736d74d05f Clean up the login, maintenance login and required-top-level-login code.
We now have two clear and separate login approaches:
  login/ajax
  login/html

Choose the one that's appropriate.  Totally simplified the maintenance
page to be separate from the theme and dead simple, and use login/html
approach there.  Totally simplified the top level login
(login_page.html.php) to just be a login page, not the rest of the
chrome on the page and use the login/ajax approach there.

Don't use access::required in albums and then catch the exception,
instead use access::can and check the return code.

Improve the text for maintenance mode.
2009-03-16 04:33:45 +00:00
Tim Almdal 4d5679b749 Fix ticket #119. Display the full name of the user in the same block
as the Modify profile and logout links.
2009-03-11 15:00:57 +00:00
Chad Kieffer ad80e86208 Indent fixes. 2009-02-09 02:11:59 +00:00
Andy Staudacher a631fe29f3 i18n refactoring: Rename all _() (reserved by gettext) calls to t().
- And refactor printf to our string interpolation / pluralization syntax
- Also, a slight change to the translations_incomings table, using binary(16) instead of char(32) as message key.
2009-01-08 17:13:06 +00:00
Chad Kieffer a57ede2f96 Added default user avatar. Comment thread updates, including display of avatar. Sidebar block display white space updates. Combined gLoginMenu and gCredits css. 2009-01-03 01:11:20 +00:00
Bharat Mediratta cd1d023754 Change the preamble for views in two ways:
1) drop unnecessary semicolon
2) start with <?php for extra security in the case that the server itself doesn't
   have short_tags enabled (the app won't work, but we need to make sure that we're
   still secure)
2009-01-01 00:23:29 +00:00
Bharat Mediratta fdc0f83024 Big round of normalization of the way that our controllers
communicate.  Almost all controllers now use JSON to speak to the
theme when we're dealing with form processing.  This means tht we only
send the form back and forth, but we use a JSON protocol to tell the
browser success/error status as well as the location of any newly
created resources, or where the browser should redirect the user.

Lots of small changes:
1) Admin -> Edit Profile is gone.  Instead I fixed the "Modify Profile" link
   in the top right corner to be a modal dialog

2) We use json_encode everywhere.  No more Atom/XML for now.  We can bring those
   back later, though.  For now there's a lot of code duplication but that'll be
   easy to clean up.

3) REST_Controller is no longer abstract.   All methods its subclasses should create
   throw exceptions, which means that subclasses don't have to implement stubs for
   those methods.

4) New pattern: helper method get_add_form calls take an Item_Model,
   not an id since we have to load the Item_Model in the controller
   anyway to check permissions.

5) User/Groups REST resources are separate from User/Group in the site
   admin.  They do different things, we should avoid confusing overlap.
2008-12-25 05:12:46 +00:00
Bharat Mediratta 0cf07fbeec Fix indentation. 2008-12-19 03:02:58 +00:00
Chad Kieffer c2598fe4d8 Dialog polishing. They now resize their height. Updated form styles in the context of dialog display (don't show legends, fieldset border, or submit button).
Let's make sure that all forms generated are complete and well formed and then use JS and CSS to control their display and behavior in different contexts.
2008-12-18 02:50:40 +00:00
Chad Kieffer 119344d9db Switched login display from display in the header to a dialog. Validation errors don't display on first failed attempt, will fix later. Moved jquery js, images, css out to respective folders. 2008-12-15 02:45:50 +00:00
Bharat Mediratta 2cf3233f54 Get rid of all pseudo users and pseudo groups, while preserving all
other functionality.  This makes our user/group and access code
fully consistent.
2008-12-12 00:59:30 +00:00
Chad Kieffer 26a512c352 Grouped inline form styles. No longer using gInline class in favor of specific form IDs that can be styled differently depending on which container they appear. Added gDescription class, dropped gUnderState for semantics. CSS cleanup. 2008-12-01 01:55:50 +00:00
Chad Kieffer e85282b709 Make login form JS unobtrusive. Needs work. 2008-11-24 00:27:45 +00:00
Chad Kieffer ac9df35d8a Cleanup of header to normalize margins and white space. Improved display of user login form. Added gHide, gShowBlock, gShowInline, gClose classes to handle show and hide functions. Half-baked idea which will need refinement. 2008-11-22 20:36:46 +00:00
Tim Almdal 4f5e3ad6d5 Use the new block mechanism to insert user related content into the html pages 2008-11-21 20:46:25 +00:00
Bharat Mediratta ae7839ffaa Revise the user login code.
* Remove user registration link and popup from the theme; this
  shouldn't be done in a popup. Use ajaxform to simplify the way
  that we load the login popup.

* Create form.html.php, this is a template for Forge based forms.

* Move user validation rules into User_Model and let forms
  populate the rules into their forms as useful.

* Undo r18688's changes regarding the REST code.  We should never
  accept a null resource, this breaks the REST abstraction.

* Change login and user controllers to use Forge which lets us delete
  login.html.php and user.html.php since those now are generated by
  the theme-owned form template
2008-11-15 06:23:09 +00:00
Tim Almdal d7745f2ad8 Add the name attr to the input fields and use the form.serialize() method to generate the post data 2008-11-14 17:23:10 +00:00
Tim Almdal ed90edfa96 Remove class="gInline" and set the css as suggested by thumb in -devel 2008-11-14 16:56:17 +00:00
Bharat Mediratta 5a2fe6bb0b Internationalize all strings 2008-11-14 08:22:53 +00:00
Chad Kieffer c63ddc3432 Major updates to form CSS. Now using unordered lists for layouts. Added .gInline for forms like login, search, tags. Updated comment, login, search, and tagging forms. All form styles live in screen.css now. Still a lot to do, but this is a good foundation. 2008-11-13 03:39:18 +00:00
Tim Almdal 74216a3c63 The login processing is starting to take shape. Login_Form is gone. The html for the login form is retrieve via an ajax call when the user clicks on login. Can't login with a valid id yet, but you certainly get error messages when things are wrong :-) 2008-11-12 21:42:40 +00:00
Tim Almdal 2a9f8b5bcd Added a legend to the fieldset 2008-11-12 18:13:59 +00:00
Tim Almdal 91b149adbf Generate the login view using fieldsets and an un order list 2008-11-12 17:48:04 +00:00
Jozef Selesi 31bea40e2e Set svn:eol-style LF on a new file and add the standard preamble to some files. 2008-11-12 07:07:13 +00:00
Tim Almdal 1da2428183 More updates for user management. The controllers don't work yet. But the login link in the header wil open up a login box like the mockup 2008-11-12 03:40:49 +00:00