[Customisation Database Commits] r558 - in /trunk/titania: ./ authors/ contributions/ includes/core/ includes/objects/ includes/overlords/ includes/tools/ includes/types/ manage/

Nathan Guse exreaction at phpbb.com
Tue Feb 2 02:28:20 GMT 2010


Author: exreaction
Date: Tue Feb  2 02:28:19 2010
New Revision: 558

Log:
Sorry, another reinstallation of the database this requires :/

Fixing bugs

Having to re-add author_id field as the primary key to the authors table, user_id as unique as otherwise inserting new rows into the authors table with the authors class wouldn't work (the SQL identifier field was always set, so it would try to update instead of submit).

Changing titania moderation permissions to m_titania_ instead of u_titania_ (who knows why I didn't do this in the first place)

Modified:
    trunk/titania/ariel_convert.php
    trunk/titania/authors/index.php
    trunk/titania/authors/manage.php
    trunk/titania/compiled_install.php
    trunk/titania/contributions/faq.php
    trunk/titania/contributions/index.php
    trunk/titania/contributions/manage.php
    trunk/titania/contributions/support.php
    trunk/titania/includes/core/titania.php
    trunk/titania/includes/objects/author.php
    trunk/titania/includes/objects/contribution.php
    trunk/titania/includes/objects/post.php
    trunk/titania/includes/objects/rating.php
    trunk/titania/includes/overlords/posts.php
    trunk/titania/includes/overlords/topics.php
    trunk/titania/includes/tools/sync.php
    trunk/titania/includes/types/mod.php
    trunk/titania/includes/types/style.php
    trunk/titania/install.php
    trunk/titania/manage/queue.php

Modified: trunk/titania/ariel_convert.php
==============================================================================
*** trunk/titania/ariel_convert.php (original)
--- trunk/titania/ariel_convert.php Tue Feb  2 02:28:19 2010
***************
*** 31,36 ****
--- 31,39 ----
  	trigger_error('NO_AUTH');
  }
  
+ // Hopefully this helps
+ @set_time_limit(0);
+ 
  // Hack for local
  phpbb::$config['site_upload_dir'] = (!isset(phpbb::$config['site_upload_dir'])) ? 'ariel_files' : phpbb::$config['site_upload_dir'];
  
***************
*** 411,457 ****
  	// @todo Queue
  
  	case 4 :
! 		$sql = 'SELECT DISTINCT(contrib_user_id) AS user_id FROM ' . TITANIA_CONTRIBS_TABLE;
! 		$result = phpbb::$db->sql_query($sql);
! 		while ($row = phpbb::$db->sql_fetchrow($result))
! 		{
! 			$sql_ary = array(
! 				'user_id'				=> $row['user_id'],
! 				'phpbb_user_id'			=> $row['user_id'],
! 				'author_realname'		=> '',
! 				'author_website'		=> '',
! 				'author_rating'			=> 0,
! 				'author_rating_count'	=> 0,
! 				'author_contribs'		=> 0,
! 				'author_snippets'		=> 0,
! 				'author_mods'			=> 0,
! 				'author_styles'			=> 0,
! 				'author_visible'		=> 1,
! 				'author_desc'			=> '',
! 				'author_desc_bitfield'	=> '',
! 				'author_desc_uid'		=> '',
! 				'author_desc_options'	=> 7,
! 			);
! 
! 			// Count the contribution totals for each user
! 			foreach (titania_types::$types as $type_id => $class)
! 			{
! 				$sql = 'SELECT COUNT(contrib_id) AS cnt FROM ' . TITANIA_CONTRIBS_TABLE . '
! 					WHERE contrib_type = ' . (int) $type_id . '
! 						AND contrib_user_id = ' . (int) $row['user_id'];
! 				phpbb::$db->sql_query($sql);
! 				$cnt = phpbb::$db->sql_fetchfield('cnt');
! 
! 				$sql_ary['author_contribs'] += $cnt;
! 				$sql_ary[$class->author_count] += $cnt;
! 			}
  
! 			// Insert
! 			titania_insert(TITANIA_AUTHORS_TABLE, $sql_ary);
! 		}
! 		phpbb::$db->sql_freeresult($result);
  
! 		$display_message = 'Authors table';
  	break;
  
  	case 5 :
--- 414,424 ----
  	// @todo Queue
  
  	case 4 :
! 		$sync = new titania_sync;
  
! 		$sync->authors('count');
  
! 		$display_message = 'Authors';
  	break;
  
  	case 5 :

Modified: trunk/titania/authors/index.php
==============================================================================
*** trunk/titania/authors/index.php (original)
--- trunk/titania/authors/index.php Tue Feb  2 02:28:19 2010
***************
*** 66,72 ****
  	'manage' => array(
  		'title'		=> 'MANAGE_AUTHOR',
  		'url'		=> titania::$author->get_url('manage'),
! 		'auth'		=> (titania::$author->user_id != phpbb::$user->data['user_id'] && !phpbb::$auth->acl_get('u_titania_author_mod')) ? false : true,
  	),
  );
  
--- 66,72 ----
  	'manage' => array(
  		'title'		=> 'MANAGE_AUTHOR',
  		'url'		=> titania::$author->get_url('manage'),
! 		'auth'		=> (titania::$author->user_id != phpbb::$user->data['user_id'] && !phpbb::$auth->acl_get('m_titania_author_mod')) ? false : true,
  	),
  );
  

Modified: trunk/titania/authors/manage.php
==============================================================================
*** trunk/titania/authors/manage.php (original)
--- trunk/titania/authors/manage.php Tue Feb  2 02:28:19 2010
***************
*** 18,24 ****
  
  titania::$author->load();
  
! if (titania::$author->user_id != phpbb::$user->data['user_id'] && !phpbb::$auth->acl_get('u_titania_author_mod'))
  {
  	trigger_error('NOT_AUTHORISED');
  }
--- 18,24 ----
  
  titania::$author->load();
  
! if (titania::$author->user_id != phpbb::$user->data['user_id'] && !phpbb::$auth->acl_get('m_titania_author_mod'))
  {
  	trigger_error('NOT_AUTHORISED');
  }

Modified: trunk/titania/compiled_install.php
==============================================================================
*** trunk/titania/compiled_install.php (original)
--- trunk/titania/compiled_install.php Tue Feb  2 02:28:19 2010
***************
*** 75,80 ****
--- 75,81 ----
  			)),
  			array(TITANIA_AUTHORS_TABLE, array(
  				'COLUMNS'		=> array(
+ 					'author_id'				=> array('UINT', NULL, 'auto_increment'),
  					'user_id'				=> array('UINT', 0),
  					'phpbb_user_id'			=> array('UINT', 0),
  					'author_realname'		=> array('VCHAR_CI', ''),
***************
*** 91,98 ****
  					'author_desc_uid'		=> array('VCHAR:8', ''),
  					'author_desc_options'	=> array('UINT:11', 7),
  				),
! 				'PRIMARY_KEY'	=> 'user_id',
  				'KEYS'			=> array(
  					'author_rating'			=> array('INDEX', 'author_rating'),
  					'author_contribs'		=> array('INDEX', 'author_contribs'),
  					'author_snippets'		=> array('INDEX', 'author_snippets'),
--- 92,100 ----
  					'author_desc_uid'		=> array('VCHAR:8', ''),
  					'author_desc_options'	=> array('UINT:11', 7),
  				),
! 				'PRIMARY_KEY'	=> 'author_id',
  				'KEYS'			=> array(
+ 					'user_id'				=> array('UNIQUE', 'user_id'),
  					'author_rating'			=> array('INDEX', 'author_rating'),
  					'author_contribs'		=> array('INDEX', 'author_contribs'),
  					'author_snippets'		=> array('INDEX', 'author_snippets'),
***************
*** 396,414 ****
  		'permission_add' => array(
  			'u_titania_',
  
! 			'u_titania_author_mod',			// Can moderate author profiles
  
  			'u_titania_contrib_submit',		// Can submit contrib items
- 			'u_titania_contrib_mod',		// Can moderate contrib items (manage them globally)
- 
  			'u_titania_rate',				// Can rate items
- 			'u_titania_rate_reset',			// Can reset the rating on items
- 
  			'u_titania_faq_create',			// Can create FAQ entries
  			'u_titania_faq_edit',			// Can edit own FAQ entries
  			'u_titania_faq_delete',			// Can delete own FAQ entries
- 			'u_titania_faq_mod',			// Can moderate FAQ entries
- 
  			'u_titania_topic',				// Can create new topics
  			'u_titania_bbcode',				// Can post bbcode
  			'u_titania_smilies',			// Can post smilies
--- 398,414 ----
  		'permission_add' => array(
  			'u_titania_',
  
! 			'm_titania_author_mod',			// Can moderate author profiles
! 			'm_titania_contrib_mod',		// Can moderate all contrib items
! 			'm_titania_rate_reset',			// Can reset the rating on items
! 			'm_titania_faq_mod',			// Can moderate FAQ entries
! 			'm_titania_post_mod',			// Can moderate topics
  
  			'u_titania_contrib_submit',		// Can submit contrib items
  			'u_titania_rate',				// Can rate items
  			'u_titania_faq_create',			// Can create FAQ entries
  			'u_titania_faq_edit',			// Can edit own FAQ entries
  			'u_titania_faq_delete',			// Can delete own FAQ entries
  			'u_titania_topic',				// Can create new topics
  			'u_titania_bbcode',				// Can post bbcode
  			'u_titania_smilies',			// Can post smilies
***************
*** 416,425 ****
  			'u_titania_post_edit_own',		// Can edit own posts
  			'u_titania_post_delete_own',	// Can delete own posts
  			'u_titania_post_mod_own',		// Can moderate own topics
- 			'u_titania_post_mod',			// Can moderate topics
  			'u_titania_post_attach',		// Can attach files to posts
  		),
  
  		'custom' => 'titania_custom',
  
  		'cache_purge' => '',
--- 416,463 ----
  			'u_titania_post_edit_own',		// Can edit own posts
  			'u_titania_post_delete_own',	// Can delete own posts
  			'u_titania_post_mod_own',		// Can moderate own topics
  			'u_titania_post_attach',		// Can attach files to posts
  		),
  
+ 		'permission_set' => array(
+ 			array('ROLE_ADMIN_FULL', array(
+ 				'm_titania_author_mod',			// Can moderate author profiles
+ 				'm_titania_contrib_mod',		// Can moderate all contrib items
+ 				'm_titania_rate_reset',			// Can reset the rating on items
+ 				'm_titania_faq_mod',			// Can moderate FAQ entries
+ 				'm_titania_post_mod',			// Can moderate topics
+ 			)),
+ 			array('ROLE_USER_STANDARD', array(
+ 				'u_titania_contrib_submit',		// Can submit contrib items
+ 				'u_titania_rate',				// Can rate items
+ 				'u_titania_faq_create',			// Can create FAQ entries
+ 				'u_titania_faq_edit',			// Can edit own FAQ entries
+ 				'u_titania_faq_delete',			// Can delete own FAQ entries
+ 				'u_titania_topic',				// Can create new topics
+ 				'u_titania_bbcode',				// Can post bbcode
+ 				'u_titania_smilies',			// Can post smilies
+ 				'u_titania_post',				// Can create new posts
+ 				'u_titania_post_edit_own',		// Can edit own posts
+ 				'u_titania_post_delete_own',	// Can delete own posts
+ 				'u_titania_post_attach',		// Can attach files to posts
+ 			)),
+ 			array('ROLE_USER_FULL', array(
+ 				'u_titania_contrib_submit',		// Can submit contrib items
+ 				'u_titania_rate',				// Can rate items
+ 				'u_titania_faq_create',			// Can create FAQ entries
+ 				'u_titania_faq_edit',			// Can edit own FAQ entries
+ 				'u_titania_faq_delete',			// Can delete own FAQ entries
+ 				'u_titania_topic',				// Can create new topics
+ 				'u_titania_bbcode',				// Can post bbcode
+ 				'u_titania_smilies',			// Can post smilies
+ 				'u_titania_post',				// Can create new posts
+ 				'u_titania_post_edit_own',		// Can edit own posts
+ 				'u_titania_post_delete_own',	// Can delete own posts
+ 				'u_titania_post_attach',		// Can attach files to posts
+ 			)),
+ 		),
+ 
+ 
  		'custom' => 'titania_custom',
  
  		'cache_purge' => '',

Modified: trunk/titania/contributions/faq.php
==============================================================================
*** trunk/titania/contributions/faq.php (original)
--- trunk/titania/contributions/faq.php Tue Feb  2 02:28:19 2010
***************
*** 48,54 ****
  {
  	case 'create':
  	case 'edit':
! 		if (!phpbb::$auth->acl_get('u_titania_faq_mod') && !phpbb::$auth->acl_get('u_titania_faq_' . $action) && !titania::$contrib->is_author && !titania::$contrib->is_active_coauthor)
  		{
  			trigger_error('NO_AUTH');
  		}
--- 48,54 ----
  {
  	case 'create':
  	case 'edit':
! 		if (!phpbb::$auth->acl_get('m_titania_faq_mod') && !phpbb::$auth->acl_get('u_titania_faq_' . $action) && !titania::$contrib->is_author && !titania::$contrib->is_active_coauthor)
  		{
  			trigger_error('NO_AUTH');
  		}
***************
*** 108,114 ****
  	break;
  
  	case 'delete':
! 		if (!phpbb::$auth->acl_get('u_titania_faq_mod') && !phpbb::$auth->acl_get('u_titania_faq_delete') && !titania::$contrib->is_author && !titania::$contrib->is_active_coauthor)
  		{
  			trigger_error('NO_AUTH');
  		}
--- 108,114 ----
  	break;
  
  	case 'delete':
! 		if (!phpbb::$auth->acl_get('m_titania_faq_mod') && !phpbb::$auth->acl_get('u_titania_faq_delete') && !titania::$contrib->is_author && !titania::$contrib->is_active_coauthor)
  		{
  			trigger_error('NO_AUTH');
  		}
***************
*** 133,139 ****
  
  	case 'move_up':
  	case 'move_down':
! 		if (!phpbb::$auth->acl_get('u_titania_faq_mod') && !titania::$contrib->is_author && !titania::$contrib->is_active_coauthor)
  		{
  			trigger_error('NO_AUTH');
  		}
--- 133,139 ----
  
  	case 'move_up':
  	case 'move_down':
! 		if (!phpbb::$auth->acl_get('m_titania_faq_mod') && !titania::$contrib->is_author && !titania::$contrib->is_active_coauthor)
  		{
  			trigger_error('NO_AUTH');
  		}
***************
*** 244,253 ****
  					'TOPIC_FOLDER_IMG_WIDTH'		=> phpbb::$user->img($folder_img, '', false, '', 'width'),
  					'TOPIC_FOLDER_IMG_HEIGHT'		=> phpbb::$user->img($folder_img, '', false, '', 'height'),
  
! 					'U_MOVE_UP'		=> (phpbb::$auth->acl_get('u_titania_faq_mod') || titania::$contrib->is_author) ? $faq->get_url('move_up', $row['faq_id']) : false,
! 					'U_MOVE_DOWN'	=> (phpbb::$auth->acl_get('u_titania_faq_mod') || titania::$contrib->is_author) ? $faq->get_url('move_down', $row['faq_id']) : false,
! 					'U_EDIT'		=> (phpbb::$auth->acl_get('u_titania_faq_mod') || phpbb::$auth->acl_get('u_titania_faq_edit') || titania::$contrib->is_author) ? $faq->get_url('edit', $row['faq_id']) : false,
! 					'U_DELETE'		=> (phpbb::$auth->acl_get('u_titania_faq_mod') || phpbb::$auth->acl_get('u_titania_faq_delete') || titania::$contrib->is_author) ? $faq->get_url('delete', $row['faq_id']) : false,
  				));
  			}
  
--- 244,253 ----
  					'TOPIC_FOLDER_IMG_WIDTH'		=> phpbb::$user->img($folder_img, '', false, '', 'width'),
  					'TOPIC_FOLDER_IMG_HEIGHT'		=> phpbb::$user->img($folder_img, '', false, '', 'height'),
  
! 					'U_MOVE_UP'		=> (phpbb::$auth->acl_get('m_titania_faq_mod') || titania::$contrib->is_author) ? $faq->get_url('move_up', $row['faq_id']) : false,
! 					'U_MOVE_DOWN'	=> (phpbb::$auth->acl_get('m_titania_faq_mod') || titania::$contrib->is_author) ? $faq->get_url('move_down', $row['faq_id']) : false,
! 					'U_EDIT'		=> (phpbb::$auth->acl_get('m_titania_faq_mod') || phpbb::$auth->acl_get('u_titania_faq_edit') || titania::$contrib->is_author) ? $faq->get_url('edit', $row['faq_id']) : false,
! 					'U_DELETE'		=> (phpbb::$auth->acl_get('m_titania_faq_mod') || phpbb::$auth->acl_get('u_titania_faq_delete') || titania::$contrib->is_author) ? $faq->get_url('delete', $row['faq_id']) : false,
  				));
  			}
  
***************
*** 263,269 ****
  
  				'S_LIST'					=> true,
  
! 				'U_CREATE_FAQ'				=> (phpbb::$auth->acl_get('u_titania_faq_mod') || phpbb::$auth->acl_get('u_titania_faq_create') || titania::$contrib->is_author) ? $faq->get_url('create') : false,
  			));
  		}
  	break;
--- 263,269 ----
  
  				'S_LIST'					=> true,
  
! 				'U_CREATE_FAQ'				=> (phpbb::$auth->acl_get('m_titania_faq_mod') || phpbb::$auth->acl_get('u_titania_faq_create') || titania::$contrib->is_author) ? $faq->get_url('create') : false,
  			));
  		}
  	break;

Modified: trunk/titania/contributions/index.php
==============================================================================
*** trunk/titania/contributions/index.php (original)
--- trunk/titania/contributions/index.php Tue Feb  2 02:28:19 2010
***************
*** 100,106 ****
  		'manage' => array(
  			'title'		=> 'CONTRIB_MANAGE',
  			'url'		=> titania::$contrib->get_url('manage'),
! 			'auth'		=> (titania::$contrib->is_author || titania::$contrib->is_active_coauthor || phpbb::$auth->acl_get('u_titania_contrib_mod') || titania_types::$types[titania::$contrib->contrib_type]->acl_get('moderate'))
  		),
  	);
  
--- 100,106 ----
  		'manage' => array(
  			'title'		=> 'CONTRIB_MANAGE',
  			'url'		=> titania::$contrib->get_url('manage'),
! 			'auth'		=> (titania::$contrib->is_author || titania::$contrib->is_active_coauthor || phpbb::$auth->acl_get('m_titania_contrib_mod') || titania_types::$types[titania::$contrib->contrib_type]->acl_get('moderate'))
  		),
  	);
  

Modified: trunk/titania/contributions/manage.php
==============================================================================
*** trunk/titania/contributions/manage.php (original)
--- trunk/titania/contributions/manage.php Tue Feb  2 02:28:19 2010
***************
*** 20,26 ****
  
  load_contrib();
  
! if (!titania::$contrib->is_author && !titania::$contrib->is_active_coauthor && !phpbb::$auth->acl_get('u_titania_contrib_mod') && !titania_types::$types[titania::$contrib->contrib_type]->acl_get('moderate'))
  {
  	trigger_error('NO_AUTH');
  }
--- 20,26 ----
  
  load_contrib();
  
! if (!titania::$contrib->is_author && !titania::$contrib->is_active_coauthor && !phpbb::$auth->acl_get('m_titania_contrib_mod') && !titania_types::$types[titania::$contrib->contrib_type]->acl_get('moderate'))
  {
  	trigger_error('NO_AUTH');
  }
***************
*** 111,117 ****
  */
  if (titania::confirm_box(true))
  {
! 	if (!titania::$contrib->is_author && !phpbb::$auth->acl_get('u_titania_contrib_mod') && !titania_types::$types[titania::$contrib->contrib_type]->acl_get('moderate'))
  	{
  		trigger_error('NO_AUTH');
  	}
--- 111,117 ----
  */
  if (titania::confirm_box(true))
  {
! 	if (!titania::$contrib->is_author && !phpbb::$auth->acl_get('m_titania_contrib_mod') && !titania_types::$types[titania::$contrib->contrib_type]->acl_get('moderate'))
  	{
  		trigger_error('NO_AUTH');
  	}
***************
*** 122,127 ****
--- 122,128 ----
  	{
  		titania::$contrib->set_contrib_user_id($change_owner_id);
  
+ 		load_contrib(); // Reload the contrib (to make sure the authors list is updated)
  		$submit = false; // Set submit as false to keep the main stuff from being resubmitted again
  		titania::error_box('SUCCESS', 'CONTRIB_OWNER_UPDATED', TITANIA_SUCCESS);
  	}

Modified: trunk/titania/contributions/support.php
==============================================================================
*** trunk/titania/contributions/support.php (original)
--- trunk/titania/contributions/support.php Tue Feb  2 02:28:19 2010
***************
*** 109,117 ****
  		$message->set_auth(array(
  			'bbcode'		=> phpbb::$auth->acl_get('u_titania_bbcode'),
  			'smilies'		=> phpbb::$auth->acl_get('u_titania_smilies'),
! 			'lock'			=> ($action == 'edit' && $post->post_user_id != phpbb::$user->data['user_id'] && phpbb::$auth->acl_get('u_titania_post_mod')) ? true : false,
! 			'sticky_topic'	=> (($action == 'post' || ($action == 'edit' && $post_id == $post->topic->topic_first_post_id)) && (phpbb::$auth->acl_get('u_titania_post_mod') || titania::$contrib->is_author || titania::$contrib->is_active_coauthor)) ? true : false,
! 			'lock_topic'	=> (phpbb::$auth->acl_get('u_titania_post_mod') || (phpbb::$auth->acl_get('u_titania_post_mod_own') && $post->topic->topic_first_post_user_id == phpbb::$user->data['user_id'])) ? true : false,
  			'attachments'	=> phpbb::$auth->acl_get('u_titania_post_attach'),
  		));
  		$message->set_settings(array(
--- 109,117 ----
  		$message->set_auth(array(
  			'bbcode'		=> phpbb::$auth->acl_get('u_titania_bbcode'),
  			'smilies'		=> phpbb::$auth->acl_get('u_titania_smilies'),
! 			'lock'			=> ($action == 'edit' && $post->post_user_id != phpbb::$user->data['user_id'] && phpbb::$auth->acl_get('m_titania_post_mod')) ? true : false,
! 			'sticky_topic'	=> (($action == 'post' || ($action == 'edit' && $post_id == $post->topic->topic_first_post_id)) && (phpbb::$auth->acl_get('m_titania_post_mod') || titania::$contrib->is_author || titania::$contrib->is_active_coauthor)) ? true : false,
! 			'lock_topic'	=> (phpbb::$auth->acl_get('m_titania_post_mod') || (phpbb::$auth->acl_get('u_titania_post_mod_own') && $post->topic->topic_first_post_user_id == phpbb::$user->data['user_id'])) ? true : false,
  			'attachments'	=> phpbb::$auth->acl_get('u_titania_post_attach'),
  		));
  		$message->set_settings(array(

Modified: trunk/titania/includes/core/titania.php
==============================================================================
*** trunk/titania/includes/core/titania.php (original)
--- trunk/titania/includes/core/titania.php Tue Feb  2 02:28:19 2010
***************
*** 236,242 ****
  
  			'U_BASE_URL'				=> self::$absolute_path,
  			'U_SITE_ROOT'				=> self::$absolute_board,
! 			'U_MANAGE'					=> (sizeof(titania_types::find_authed()) || phpbb::$auth->acl_get('u_titania_contrib_mod') || phpbb::$auth->acl_get('u_titania_post_mod')) ? titania_url::build_url('manage') : '',
  			'U_MY_CONTRIBUTIONS'		=> (phpbb::$user->data['is_registered'] && !phpbb::$user->data['is_bot']) ? titania_url::build_url('author/' . phpbb::$user->data['username_clean'] . '/contributions/') : '',
  
  			'T_TITANIA_TEMPLATE_PATH'	=> self::$template_path,
--- 236,242 ----
  
  			'U_BASE_URL'				=> self::$absolute_path,
  			'U_SITE_ROOT'				=> self::$absolute_board,
! 			'U_MANAGE'					=> (sizeof(titania_types::find_authed()) || phpbb::$auth->acl_get('m_titania_contrib_mod') || phpbb::$auth->acl_get('m_titania_post_mod')) ? titania_url::build_url('manage') : '',
  			'U_MY_CONTRIBUTIONS'		=> (phpbb::$user->data['is_registered'] && !phpbb::$user->data['is_bot']) ? titania_url::build_url('author/' . phpbb::$user->data['username_clean'] . '/contributions/') : '',
  
  			'T_TITANIA_TEMPLATE_PATH'	=> self::$template_path,

Modified: trunk/titania/includes/objects/author.php
==============================================================================
*** trunk/titania/includes/objects/author.php (original)
--- trunk/titania/includes/objects/author.php Tue Feb  2 02:28:19 2010
***************
*** 32,45 ****
  	 *
  	 * @var string
  	 */
! 	protected $sql_table		= TITANIA_AUTHORS_TABLE;
  
  	/**
  	 * SQL identifier field
  	 *
  	 * @var string
  	 */
! 	protected $sql_id_field		= 'user_id';
  
  	/**
  	 * Description parsed for storage
--- 32,45 ----
  	 *
  	 * @var string
  	 */
! 	protected $sql_table = TITANIA_AUTHORS_TABLE;
  
  	/**
  	 * SQL identifier field
  	 *
  	 * @var string
  	 */
! 	protected $sql_id_field = 'author_id';
  
  	/**
  	 * Description parsed for storage
***************
*** 64,69 ****
--- 64,70 ----
  	{
  		// Configure object properties
  		$this->object_config = array_merge($this->object_config, array(
+ 			'author_id'				=> array('default' => 0),
  			'user_id'				=> array('default' => 0),
  			'phpbb_user_id'			=> array('default' => 0),
  
***************
*** 154,159 ****
--- 155,165 ----
  	 */
  	public function submit()
  	{
+ 		if (!$this->user_id)
+ 		{
+ 			throw new exception('No user_id!');
+ 		}
+ 
  		// Nobody parsed the text for storage before. Parse text with lowest settings.
  		if (!$this->description_parsed_for_storage)
  		{

Modified: trunk/titania/includes/objects/contribution.php
==============================================================================
*** trunk/titania/includes/objects/contribution.php (original)
--- trunk/titania/includes/objects/contribution.php Tue Feb  2 02:28:19 2010
***************
*** 643,648 ****
--- 643,653 ----
  	 */
  	public function set_contrib_user_id($user_id)
  	{
+ 		if ($this->contrib_user_id == $user_id)
+ 		{
+ 			return;
+ 		}
+ 
  		// Delete them from the co-authors list if they are in it...
  		$sql = 'DELETE FROM ' . TITANIA_CONTRIB_COAUTHORS_TABLE . '
  			WHERE contrib_id = ' . $this->contrib_id . '
***************
*** 680,691 ****
  	*/
  	private function change_author_contrib_count($user_id, $action = '+', $force = false)
  	{
- 		// Don't change if it's not approved
- 		if ($force == false && (titania::$config->require_validation && $this->contrib_status != TITANIA_CONTRIB_APPROVED))
- 		{
- 			return;
- 		}
- 
  		if (is_array($user_id))
  		{
  			foreach ($user_id as $uid)
--- 685,690 ----
***************
*** 695,700 ****
--- 694,716 ----
  			return;
  		}
  
+ 		// Make sure the author exists, if not we create one (do this before returning if not approved...else we need to duplicate this code in a bunch of places)
+ 		$sql = 'SELECT user_id FROM ' . TITANIA_AUTHORS_TABLE . '
+ 			WHERE user_id = ' . (int) $user_id;
+ 		phpbb::$db->sql_query($sql);
+ 		if (!phpbb::$db->sql_fetchfield('user_id'))
+ 		{
+ 			$author = new titania_author($user_id);
+ 			$author->submit();
+ 		}
+ 		phpbb::$db->sql_freeresult();
+ 
+ 		// Don't change if it's not approved
+ 		if ($force == false && (titania::$config->require_validation && $this->contrib_status != TITANIA_CONTRIB_APPROVED))
+ 		{
+ 			return;
+ 		}
+ 
  		$user_id = (int) $user_id;
  		$action = ($action == '-') ? '-' : '+';
  
***************
*** 705,724 ****
  			WHERE user_id = $user_id " .
  				(($action == '-') ? 'AND author_contribs > 0' : '');
  		phpbb::$db->sql_query($sql);
- 
- 		// If the author profile does not exist set it up
- 		if (!phpbb::$db->sql_affectedrows())
- 		{
- 			$author = new titania_author($user_id);
- 			$author->load();
- 
- 			$author->__set_array(array(
- 				'author_contribs'	=> 1,
- 				titania_types::$types[$this->contrib_type]->author_count => 1,
- 			));
- 
- 			$author->submit();
- 		}
  	}
  
  	/*
--- 721,726 ----

Modified: trunk/titania/includes/objects/post.php
==============================================================================
*** trunk/titania/includes/objects/post.php (original)
--- trunk/titania/includes/objects/post.php Tue Feb  2 02:28:19 2010
***************
*** 314,320 ****
  			case 'post' :
  				if (phpbb::$auth->acl_get('u_titania_post') || // Can post
  					($is_author && phpbb::$auth->acl_get('u_titania_post_mod_own')) || // Is contrib author and can moderate own
! 					phpbb::$auth->acl_get('u_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}
--- 314,320 ----
  			case 'post' :
  				if (phpbb::$auth->acl_get('u_titania_post') || // Can post
  					($is_author && phpbb::$auth->acl_get('u_titania_post_mod_own')) || // Is contrib author and can moderate own
! 					phpbb::$auth->acl_get('m_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}
***************
*** 323,329 ****
  			case 'edit' :
  				if (($is_poster && phpbb::$auth->acl_get('u_titania_post_edit_own')) || // Is poster and can edit own
  					($is_author && phpbb::$auth->acl_get('u_titania_post_mod_own')) || // Is contrib author and can moderate own
! 					phpbb::$auth->acl_get('u_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}
--- 323,329 ----
  			case 'edit' :
  				if (($is_poster && phpbb::$auth->acl_get('u_titania_post_edit_own')) || // Is poster and can edit own
  					($is_author && phpbb::$auth->acl_get('u_titania_post_mod_own')) || // Is contrib author and can moderate own
! 					phpbb::$auth->acl_get('m_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}
***************
*** 336,342 ****
  			case 'soft_delete' :
  				if (($is_poster && phpbb::$auth->acl_get('u_titania_post_delete_own')) || // Is poster and can delete own
  					($is_author && phpbb::$auth->acl_get('u_titania_post_mod_own')) || // Is contrib author and can moderate own
! 					phpbb::$auth->acl_get('u_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}
--- 336,342 ----
  			case 'soft_delete' :
  				if (($is_poster && phpbb::$auth->acl_get('u_titania_post_delete_own')) || // Is poster and can delete own
  					($is_author && phpbb::$auth->acl_get('u_titania_post_mod_own')) || // Is contrib author and can moderate own
! 					phpbb::$auth->acl_get('m_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}
***************
*** 345,358 ****
  			case 'undelete' :
  				if (($is_poster && $is_deleter && phpbb::$auth->acl_get('u_titania_post_delete_own')) || // Is poster and can delete own and did delete their own
  					($is_author && $is_deleter && phpbb::$auth->acl_get('u_titania_post_mod_own')) || // Is contrib author and can moderate own and did delete the message
! 					phpbb::$auth->acl_get('u_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}
  			break;
  
  			case 'hard_delete' :
! 				if (phpbb::$auth->acl_get('u_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}
--- 345,358 ----
  			case 'undelete' :
  				if (($is_poster && $is_deleter && phpbb::$auth->acl_get('u_titania_post_delete_own')) || // Is poster and can delete own and did delete their own
  					($is_author && $is_deleter && phpbb::$auth->acl_get('u_titania_post_mod_own')) || // Is contrib author and can moderate own and did delete the message
! 					phpbb::$auth->acl_get('m_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}
  			break;
  
  			case 'hard_delete' :
! 				if (phpbb::$auth->acl_get('m_titania_post_mod')) // Can moderate posts
  				{
  					return true;
  				}

Modified: trunk/titania/includes/objects/rating.php
==============================================================================
*** trunk/titania/includes/objects/rating.php (original)
--- trunk/titania/includes/objects/rating.php Tue Feb  2 02:28:19 2010
***************
*** 334,340 ****
  	*/
  	public function reset_rating()
  	{
! 		if (!phpbb::$auth->acl_get('u_titania_rate_reset'))
  		{
  			return false;
  		}
--- 334,340 ----
  	*/
  	public function reset_rating()
  	{
! 		if (!phpbb::$auth->acl_get('m_titania_rate_reset'))
  		{
  			return false;
  		}

Modified: trunk/titania/includes/overlords/posts.php
==============================================================================
*** trunk/titania/includes/overlords/posts.php (original)
--- trunk/titania/includes/overlords/posts.php Tue Feb  2 02:28:19 2010
***************
*** 45,51 ****
  
  		$sql .= " ({$prefix}post_access >= " . titania::$access_level . " OR {$prefix}post_user_id = " . phpbb::$user->data['user_id'] . ')';
  
! 		if (phpbb::$auth->acl_get('u_titania_post_mod'))
  		{
  			$sql .= " AND {$prefix}post_approved = 1";
  			$sql .= " AND ({$prefix}post_deleted = 0 OR {$prefix}post_deleted = " . phpbb::$user->data['user_id'] . ')';
--- 45,51 ----
  
  		$sql .= " ({$prefix}post_access >= " . titania::$access_level . " OR {$prefix}post_user_id = " . phpbb::$user->data['user_id'] . ')';
  
! 		if (phpbb::$auth->acl_get('m_titania_post_mod'))
  		{
  			$sql .= " AND {$prefix}post_approved = 1";
  			$sql .= " AND ({$prefix}post_deleted = 0 OR {$prefix}post_deleted = " . phpbb::$user->data['user_id'] . ')';

Modified: trunk/titania/includes/overlords/topics.php
==============================================================================
*** trunk/titania/includes/overlords/topics.php (original)
--- trunk/titania/includes/overlords/topics.php Tue Feb  2 02:28:19 2010
***************
*** 47,53 ****
  		$sql .= " ({$prefix}topic_access >= " . titania::$access_level . " OR {$prefix}topic_first_post_user_id = " . phpbb::$user->data['user_id'] . ")
  			AND ({$prefix}topic_deleted = 0 OR {$prefix}topic_deleted = " . phpbb::$user->data['user_id'] . ')';
  
! 		if (phpbb::$auth->acl_get('u_titania_post_mod'))
  		{
  			$sql .= " AND {$prefix}topic_approved = 1";
  		}
--- 47,53 ----
  		$sql .= " ({$prefix}topic_access >= " . titania::$access_level . " OR {$prefix}topic_first_post_user_id = " . phpbb::$user->data['user_id'] . ")
  			AND ({$prefix}topic_deleted = 0 OR {$prefix}topic_deleted = " . phpbb::$user->data['user_id'] . ')';
  
! 		if (phpbb::$auth->acl_get('m_titania_post_mod'))
  		{
  			$sql .= " AND {$prefix}topic_approved = 1";
  		}

Modified: trunk/titania/includes/tools/sync.php
==============================================================================
*** trunk/titania/includes/tools/sync.php (original)
--- trunk/titania/includes/tools/sync.php Tue Feb  2 02:28:19 2010
***************
*** 70,76 ****
  						$sql_ary['author_contribs'] += $cnt;
  						$sql_ary[$class->author_count] = $cnt;
  					}
- 
  					// Increment/Decrement the contrib counter for the new owner
  					$sql = 'UPDATE ' . TITANIA_AUTHORS_TABLE . '
  						SET ' . phpbb::$db->sql_build_array('UPDATE', $sql_ary) . '
--- 70,75 ----
***************
*** 80,90 ****
  					// If the author profile does not exist set it up
  					if (!phpbb::$db->sql_affectedrows())
  					{
! 						$author = new titania_author($user_id);
! 						$author->load();
! 
  						$author->__set_array($sql_ary);
- 
  						$author->submit();
  					}
  				}
--- 79,86 ----
  					// If the author profile does not exist set it up
  					if (!phpbb::$db->sql_affectedrows())
  					{
! 						$author = new titania_author($row['user_id']);
  						$author->__set_array($sql_ary);
  						$author->submit();
  					}
  				}
***************
*** 291,294 ****
  
  		return ($teams + $authors + $public) . ':' . ($authors + $public) . ':' . $public;
  	}
! }
\ No newline at end of file
--- 287,290 ----
  
  		return ($teams + $authors + $public) . ':' . ($authors + $public) . ':' . $public;
  	}
! }

Modified: trunk/titania/includes/types/mod.php
==============================================================================
*** trunk/titania/includes/types/mod.php (original)
--- trunk/titania/includes/types/mod.php Tue Feb  2 02:28:19 2010
***************
*** 85,90 ****
--- 85,92 ----
  	*/
  	public function auto_install()
  	{
+ 		// If you change anything in here, remember to add the reverse to the uninstall() function below!
+ 
  		if (!isset(phpbb::$config['titania_num_mods']))
  		{
  			if (!class_exists('umil'))
***************
*** 96,104 ****
  
  			// Permissions
  			$umil->permission_add(array(
! 				'u_titania_mod_queue',
! 				'u_titania_mod_validate',
! 				'u_titania_mod_moderate',
  			));
  
  			// Mod count holder
--- 98,106 ----
  
  			// Permissions
  			$umil->permission_add(array(
! 				'm_titania_mod_queue',
! 				'm_titania_mod_validate',
! 				'm_titania_mod_moderate',
  			));
  
  			// Mod count holder
***************
*** 335,343 ****
  
  			// Permissions
  			$umil->permission_remove(array(
! 				'u_titania_mod_queue',
! 				'u_titania_mod_validate',
! 				'u_titania_mod_moderate',
  			));
  
  			// Mod count holder
--- 337,345 ----
  
  			// Permissions
  			$umil->permission_remove(array(
! 				'm_titania_mod_queue',
! 				'm_titania_mod_validate',
! 				'm_titania_mod_moderate',
  			));
  
  			// Mod count holder

Modified: trunk/titania/includes/types/style.php
==============================================================================
*** trunk/titania/includes/types/style.php (original)
--- trunk/titania/includes/types/style.php Tue Feb  2 02:28:19 2010
***************
*** 86,91 ****
--- 86,93 ----
  	*/
  	public function auto_install()
  	{
+ 		// If you change anything in here, remember to add the reverse to the uninstall() function below!
+ 
  		if (!isset(phpbb::$config['titania_num_styles']))
  		{
  			if (!class_exists('umil'))
***************
*** 97,105 ****
  
  			// Permissions
  			$umil->permission_add(array(
! 				'u_titania_style_queue',
! 				'u_titania_style_validate',
! 				'u_titania_style_moderate',
  			));
  
  			// Style count holder
--- 99,107 ----
  
  			// Permissions
  			$umil->permission_add(array(
! 				'm_titania_style_queue',
! 				'm_titania_style_validate',
! 				'm_titania_style_moderate',
  			));
  
  			// Style count holder
***************
*** 138,146 ****
  
  			// Permissions
  			$umil->permission_remove(array(
! 				'u_titania_style_queue',
! 				'u_titania_style_validate',
! 				'u_titania_style_moderate',
  			));
  
  			// Mod count holder
--- 140,148 ----
  
  			// Permissions
  			$umil->permission_remove(array(
! 				'm_titania_style_queue',
! 				'm_titania_style_validate',
! 				'm_titania_style_moderate',
  			));
  
  			// Mod count holder

Modified: trunk/titania/install.php
==============================================================================
*** trunk/titania/install.php (original)
--- trunk/titania/install.php Tue Feb  2 02:28:19 2010
***************
*** 73,78 ****
--- 73,79 ----
  			)),
  			array(TITANIA_AUTHORS_TABLE, array(
  				'COLUMNS'		=> array(
+ 					'author_id'				=> array('UINT', NULL, 'auto_increment'),
  					'user_id'				=> array('UINT', 0),
  					'phpbb_user_id'			=> array('UINT', 0),
  					'author_realname'		=> array('VCHAR_CI', ''),
***************
*** 89,96 ****
  					'author_desc_uid'		=> array('VCHAR:8', ''),
  					'author_desc_options'	=> array('UINT:11', 7),
  				),
! 				'PRIMARY_KEY'	=> 'user_id',
  				'KEYS'			=> array(
  					'author_rating'			=> array('INDEX', 'author_rating'),
  					'author_contribs'		=> array('INDEX', 'author_contribs'),
  					'author_snippets'		=> array('INDEX', 'author_snippets'),
--- 90,98 ----
  					'author_desc_uid'		=> array('VCHAR:8', ''),
  					'author_desc_options'	=> array('UINT:11', 7),
  				),
! 				'PRIMARY_KEY'	=> 'author_id',
  				'KEYS'			=> array(
+ 					'user_id'				=> array('UNIQUE', 'user_id'),
  					'author_rating'			=> array('INDEX', 'author_rating'),
  					'author_contribs'		=> array('INDEX', 'author_contribs'),
  					'author_snippets'		=> array('INDEX', 'author_snippets'),
***************
*** 394,412 ****
  		'permission_add' => array(
  			'u_titania_',
  
! 			'u_titania_author_mod',			// Can moderate author profiles
  
  			'u_titania_contrib_submit',		// Can submit contrib items
- 			'u_titania_contrib_mod',		// Can moderate contrib items (manage them globally)
- 
  			'u_titania_rate',				// Can rate items
- 			'u_titania_rate_reset',			// Can reset the rating on items
- 
  			'u_titania_faq_create',			// Can create FAQ entries
  			'u_titania_faq_edit',			// Can edit own FAQ entries
  			'u_titania_faq_delete',			// Can delete own FAQ entries
- 			'u_titania_faq_mod',			// Can moderate FAQ entries
- 
  			'u_titania_topic',				// Can create new topics
  			'u_titania_bbcode',				// Can post bbcode
  			'u_titania_smilies',			// Can post smilies
--- 396,412 ----
  		'permission_add' => array(
  			'u_titania_',
  
! 			'm_titania_author_mod',			// Can moderate author profiles
! 			'm_titania_contrib_mod',		// Can moderate all contrib items
! 			'm_titania_rate_reset',			// Can reset the rating on items
! 			'm_titania_faq_mod',			// Can moderate FAQ entries
! 			'm_titania_post_mod',			// Can moderate topics
  
  			'u_titania_contrib_submit',		// Can submit contrib items
  			'u_titania_rate',				// Can rate items
  			'u_titania_faq_create',			// Can create FAQ entries
  			'u_titania_faq_edit',			// Can edit own FAQ entries
  			'u_titania_faq_delete',			// Can delete own FAQ entries
  			'u_titania_topic',				// Can create new topics
  			'u_titania_bbcode',				// Can post bbcode
  			'u_titania_smilies',			// Can post smilies
***************
*** 414,423 ****
  			'u_titania_post_edit_own',		// Can edit own posts
  			'u_titania_post_delete_own',	// Can delete own posts
  			'u_titania_post_mod_own',		// Can moderate own topics
- 			'u_titania_post_mod',			// Can moderate topics
  			'u_titania_post_attach',		// Can attach files to posts
  		),
  
  		'custom' => 'titania_custom',
  
  		'cache_purge' => array('', 'auth'),
--- 414,460 ----
  			'u_titania_post_edit_own',		// Can edit own posts
  			'u_titania_post_delete_own',	// Can delete own posts
  			'u_titania_post_mod_own',		// Can moderate own topics
  			'u_titania_post_attach',		// Can attach files to posts
  		),
  
+ 		'permission_set' => array(
+ 			array('ROLE_ADMIN_FULL', array(
+ 				'm_titania_author_mod',			// Can moderate author profiles
+ 				'm_titania_contrib_mod',		// Can moderate all contrib items
+ 				'm_titania_rate_reset',			// Can reset the rating on items
+ 				'm_titania_faq_mod',			// Can moderate FAQ entries
+ 				'm_titania_post_mod',			// Can moderate topics
+ 			)),
+ 			array('ROLE_USER_STANDARD', array(
+ 				'u_titania_contrib_submit',		// Can submit contrib items
+ 				'u_titania_rate',				// Can rate items
+ 				'u_titania_faq_create',			// Can create FAQ entries
+ 				'u_titania_faq_edit',			// Can edit own FAQ entries
+ 				'u_titania_faq_delete',			// Can delete own FAQ entries
+ 				'u_titania_topic',				// Can create new topics
+ 				'u_titania_bbcode',				// Can post bbcode
+ 				'u_titania_smilies',			// Can post smilies
+ 				'u_titania_post',				// Can create new posts
+ 				'u_titania_post_edit_own',		// Can edit own posts
+ 				'u_titania_post_delete_own',	// Can delete own posts
+ 				'u_titania_post_attach',		// Can attach files to posts
+ 			)),
+ 			array('ROLE_USER_FULL', array(
+ 				'u_titania_contrib_submit',		// Can submit contrib items
+ 				'u_titania_rate',				// Can rate items
+ 				'u_titania_faq_create',			// Can create FAQ entries
+ 				'u_titania_faq_edit',			// Can edit own FAQ entries
+ 				'u_titania_faq_delete',			// Can delete own FAQ entries
+ 				'u_titania_topic',				// Can create new topics
+ 				'u_titania_bbcode',				// Can post bbcode
+ 				'u_titania_smilies',			// Can post smilies
+ 				'u_titania_post',				// Can create new posts
+ 				'u_titania_post_edit_own',		// Can edit own posts
+ 				'u_titania_post_delete_own',	// Can delete own posts
+ 				'u_titania_post_attach',		// Can attach files to posts
+ 			)),
+ 		),
+ 
  		'custom' => 'titania_custom',
  
  		'cache_purge' => array('', 'auth'),

Modified: trunk/titania/manage/queue.php
==============================================================================
*** trunk/titania/manage/queue.php (original)
--- trunk/titania/manage/queue.php Tue Feb  2 02:28:19 2010
***************
*** 128,134 ****
  		$message->set_auth(array(
  			'bbcode'		=> phpbb::$auth->acl_get('u_titania_bbcode'),
  			'smilies'		=> phpbb::$auth->acl_get('u_titania_smilies'),
! 			'lock_topic'	=> (phpbb::$auth->acl_get('u_titania_post_mod') || (phpbb::$auth->acl_get('u_titania_post_mod_own') && $post->topic->topic_first_post_user_id == phpbb::$user->data['user_id'])) ? true : false,
  			'attachments'	=> phpbb::$auth->acl_get('u_titania_post_attach'),
  		));
  		$message->set_settings(array(
--- 128,134 ----
  		$message->set_auth(array(
  			'bbcode'		=> phpbb::$auth->acl_get('u_titania_bbcode'),
  			'smilies'		=> phpbb::$auth->acl_get('u_titania_smilies'),
! 			'lock_topic'	=> (phpbb::$auth->acl_get('m_titania_post_mod') || (phpbb::$auth->acl_get('u_titania_post_mod_own') && $post->topic->topic_first_post_user_id == phpbb::$user->data['user_id'])) ? true : false,
  			'attachments'	=> phpbb::$auth->acl_get('u_titania_post_attach'),
  		));
  		$message->set_settings(array(




More information about the customisationdb-commits mailing list