commit c2e8966fe76a30ce976973d6d4856cb6bff1cfc9 Author: Evan Prodromou <evan@status.net> Date: Tue Jul 10 12:20:29 2012 -0400 Do it in ascending date order commit aff18666662e7ba9f23b2d4c30d49347a761cd0a Author: Evan Prodromou <evan@status.net> Date: Tue Jul 10 12:17:30 2012 -0400 smaller year commit 73c92c081c68cee5019adf1b9e813c7830dd8f87 Author: Evan Prodromou <evan@status.net> Date: Tue Jul 10 12:16:39 2012 -0400 Smaller role footprint commit a602733dd6f82415706077218f5735b655e47f70 Author: Evan Prodromou <evan@status.net> Date: Tue Jul 10 12:14:23 2012 -0400 Add the right to view the log commit a5e6cc9791e6ed1ca268b19b6c557ec78bc38e2d Author: Evan Prodromou <evan@status.net> Date: Tue Jul 10 12:10:15 2012 -0400 Change column name from 'grant' to 'is_grant' since 'grant' is a SQL keyword commit 38fbba009cd7ae379583acdc48480829c40c829d Author: Evan Prodromou <evan@status.net> Date: Tue Jul 10 12:05:44 2012 -0400 ModLog::getSchema() -> ModLog::schemaDef() commit 970e05d52a4a82630df6962929079c778c118a8b Author: Evan Prodromou <evan@status.net> Date: Tue Jul 10 12:04:08 2012 -0400 First pass at ModLog plugin
		
			
				
	
	
		
			124 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * StatusNet - the distributed open-source microblogging tool
 | 
						|
 * Copyright (C) 2012, StatusNet, Inc.
 | 
						|
 *
 | 
						|
 * ModLog.php -- data object to store moderation logs
 | 
						|
 * 
 | 
						|
 * PHP version 5
 | 
						|
 *
 | 
						|
 * This program is free software: you can redistribute it and/or modify
 | 
						|
 * it under the terms of the GNU Affero General Public License as published by
 | 
						|
 * the Free Software Foundation, either version 3 of the License, or
 | 
						|
 * (at your option) any later version.
 | 
						|
 *
 | 
						|
 * This program is distributed in the hope that it will be useful,
 | 
						|
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
 * GNU Affero General Public License for more details.
 | 
						|
 *
 | 
						|
 * You should have received a copy of the GNU Affero General Public License
 | 
						|
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
 *
 | 
						|
 * @category  Moderation
 | 
						|
 * @package   StatusNet
 | 
						|
 * @author    Evan Prodromou <evan@status.net>
 | 
						|
 * @copyright 2012 StatusNet, Inc.
 | 
						|
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 | 
						|
 * @link      http://status.net/
 | 
						|
 */
 | 
						|
 | 
						|
if (!defined('STATUSNET')) {
 | 
						|
    exit(1);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Class comment here
 | 
						|
 *
 | 
						|
 * @category Category here
 | 
						|
 * @package  StatusNet
 | 
						|
 * @author   Evan Prodromou <evan@status.net>
 | 
						|
 * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
 | 
						|
 * @link     http://status.net/
 | 
						|
 *
 | 
						|
 * @see      DB_DataObject
 | 
						|
 */
 | 
						|
 | 
						|
class ModLog extends Managed_DataObject
 | 
						|
{
 | 
						|
    public $__table = 'mod_log'; // table name
 | 
						|
 | 
						|
    public $id;           // UUID
 | 
						|
    public $profile_id;   // profile id
 | 
						|
    public $moderator_id; // profile id
 | 
						|
    public $role;         // the role
 | 
						|
    public $grant;        // 1 = grant, 0 = revoke
 | 
						|
    public $created;      // datetime
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get an instance by key
 | 
						|
     *
 | 
						|
     * @param string $k Key to use to lookup (usually 'user_id' for this class)
 | 
						|
     * @param mixed  $v Value to lookup
 | 
						|
     *
 | 
						|
     * @return TagSub object found, or null for no hits
 | 
						|
     *
 | 
						|
     */
 | 
						|
    function staticGet($k, $v=null)
 | 
						|
    {
 | 
						|
        return Managed_DataObject::staticGet('ModLog', $k, $v);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get an instance by compound key
 | 
						|
     *
 | 
						|
     * @param array $kv array of key-value mappings
 | 
						|
     *
 | 
						|
     * @return TagSub object found, or null for no hits
 | 
						|
     *
 | 
						|
     */
 | 
						|
    function pkeyGet($kv)
 | 
						|
    {
 | 
						|
        return Managed_DataObject::pkeyGet('ModLog', $kv);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * The One True Thingy that must be defined and declared.
 | 
						|
     */
 | 
						|
    public static function schemaDef()
 | 
						|
    {
 | 
						|
        return array('description' => 'Log of moderation events',
 | 
						|
                     'fields' => array(
 | 
						|
                                       'id' => array('type' => 'varchar',
 | 
						|
                                                     'length' => 36,
 | 
						|
                                                     'not null' => true,
 | 
						|
                                                     'description' => 'unique event ID'),
 | 
						|
                                       'profile_id' => array('type' => 'int',
 | 
						|
                                                             'not null' => true,
 | 
						|
                                                             'description' => 'profile getting the role'),
 | 
						|
                                       'moderator_id' => array('type' => 'int',
 | 
						|
                                                               'description' => 'profile granting or revoking the role'),
 | 
						|
                                       'role' => array('type' => 'varchar',
 | 
						|
                                                       'length' => 32,
 | 
						|
                                                       'not null' => true,
 | 
						|
                                                       'description' => 'role granted or revoked'),
 | 
						|
                                       'is_grant' => array('type' => 'int',
 | 
						|
                                                           'size' => 'tiny',
 | 
						|
                                                           'default' => 1,
 | 
						|
                                                           'description' => 'Was this a grant or revocation of a role'),
 | 
						|
                                       'created' => array('type' => 'datetime',
 | 
						|
                                                          'not null' => true,
 | 
						|
                                                          'description' => 'date this record was created')
 | 
						|
                                       ),
 | 
						|
                     'primary key' => array('id'),
 | 
						|
                     'foreign keys' => array(
 | 
						|
                                             'mod_log_profile_id_fkey' => array('profile', array('profile_id' => 'id')),
 | 
						|
                                             'mod_log_moderator_id_fkey' => array('user', array('user_id' => 'id'))
 | 
						|
                                             ),
 | 
						|
                     'indexes' => array(
 | 
						|
                                        'mod_log_profile_id_created_idx' => array('profile_id', 'created'),
 | 
						|
                                        ),
 | 
						|
                     );
 | 
						|
    }
 | 
						|
}
 |