tilly-Q 9b8ef022ef In this commit, I have made a few changes and tightened up some of my models
code. I added in two major pieces of functionality: table foundations and a
decorator to confirm whether or not a user is a member of a certain group.

Table Foundations are default rows that should be present in a given table as
soon as the database is initialized. For example, I am using these to populate
the core__groups table with all of the necessary groups ('moderator', 'com-
menter', etc). Right now, this is achieved by adding a dictionary of parameters
(with the parameters as lists) to the constant FOUNDATIONS in
mediagoblin.db.models. The keys to this dictionary are uninstantiated classes.
The classes which require foundations also have must have a constructor so that
the list of parameters can be passed appropriately like so:
        Model(*parameters)
In order to implement these foundations, I added the method populate_table_fou-
-ndations to MigrationManager in mediagoblin.db.migration_tools.

The decorator, called user_in_group, accepts as a parameter a unicode string,
and then decides whether to redirect to 403 or let the user access the page. The
identifier is the Group.group_name string, because I believe that will allow for
the most readable code.

I also added in the simple decorator require_admin_login.

In terms of tightening up my code, I made many minor changes to my use of white
space and made a few small documentation additions. I removed a vestigial class
(ReportForm) from mediagoblin.user_pages.forms. I moved all of my migrations in-
to one registered Migration.

Setting up Foundations
==============================

--\ mediagoblin/db/migration_tools.py
--| created: MigrationManager.populate_table_foundations
--| modified: MigrationManager.init_or_migrate to run
  |     self.populate_table_foundations on init

--\ mediagoblin/db/models.py
--| created: FOUNDATIONS
----| created: group_foundations

Working With Permissions
==============================
--\ mediagoblin/decorators.py
--| created: user_in_group
--| created: require_admin_login

--\ mediagoblin/user_pages/views.py
--| modified: added decorator user_in_group to file_a_report

--\ mediagoblin/admin/views.py
--| modified: added decorator require_admin_login to all views functions

General Code Tidying
=============================

--/ mediagoblin/admin/views.py
--/ mediagoblin/user_pages/forms.py
--/ mediagoblin/db/models.py
--/ mediagoblin/user_pages/lib.py
--/ mediagoblin/user_pages/views.py
--/ mediagoblin/db/migrations.py
2013-06-27 14:13:42 -07:00
2013-04-15 09:51:21 +03:00
2013-04-13 12:10:23 -05:00
2011-12-12 09:53:41 -05:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

========
 README
========

What is GNU MediaGoblin?
========================

* Initially, a place to store all your photos thats as awesome as, if
  not more awesome than, existing network services (Flickr, SmugMug,
  Picasa, etc)
* Customizable!
* A place for people to collaborate and show off original and derived
  creations.  Free, as in freedom.  Were a GNU project after all.
* Later, a place for all sorts of media, such as video, music, etc hosting.
* Later, federated with OStatus!


Is it ready for me to use?
==========================

Yes!  But with caveats.  The software is usable and there are instances
running, but it's still in its early stages.


Can I help/hang out/participate/whisper sweet nothings in your ear?
===================================================================

Yes!  Please join us and hang out!  For more information on where we
hang out, see `our Join page <http://mediagoblin.org/join/>`_


Where is the documentation?
===========================

The beginnings of a site administration manual is located in the ``docs/``
directory in HTML, Texinfo, and source (Restructured Text) forms.  It's
also available online at http://docs.mediagoblin.org/ in HTML form.

Contributor/developer documentation as well as documentation on the
project processes and infrastructure is located on 
`the wiki <http://wiki.mediagoblin.org/>`_.
Description
Testing
Readme 45 MiB
Languages
JavaScript 43.9%
Python 43.2%
HTML 9.1%
CSS 1.4%
Shell 0.9%
Other 1.5%