Browse Source

Stop allowing channels to be re-registered by a new user

Nathaniel van Diepen 9 years ago
parent
commit
c7ad590724
2 changed files with 27 additions and 19 deletions
  1. 26 18
      site/api/index.php
  2. 1 1
      site/index.php

+ 26 - 18
site/api/index.php

@@ -218,25 +218,33 @@
 		case 'register-channel':
 		case 'register-channel':
 			$u or die('{"code":1,"message":"'.__('You have been logged out').'"}');
 			$u or die('{"code":1,"message":"'.__('You have been logged out').'"}');
 			isset($_GET['channel']) or die('{"code":1,"message":"'.__('No channel given').'"}');
 			isset($_GET['channel']) or die('{"code":1,"message":"'.__('No channel given').'"}');
-			$ret = irccommands(array(
-				'join '.$_GET['channel'],
-				'samode '.$_GET['channel'].' +o RehashServ',
-				'cs register '.$_GET['channel'],
-				'cs set '.$_GET['channel'].' keeptopic on',
-				'cs set '.$_GET['channel'].' founder '.$_COOKIE['user']
-			));
-			if($ret['code'] !== 0){
-				die(json_encode($ret));
-			}
-			$ret2 = irccommands(array(
-				'join '.$_GET['channel'],
-				'cs set '.$_GET['channel'].' founder '.$_COOKIE['user'],
-				'cs flags '.$_GET['channel'].' RehashServ -AORafhioqrstv'
-			),$_COOKIE['user']);
-			if($ret2['code'] !== 0){
-				$ret2['message'] = 'Failed to register channel. See log for information.';
+			$channel = atheme_command(get_conf('xmlrpc-server'),get_conf('xmlrpc-port'),get_conf('xmlrpc-path'),USER_IP,$_COOKIE['user'],$_SESSION['password'],'ChanServ','info',Array($_GET['channel']));
+			if(!$channel[0]){
+				$ret = irccommands(array(
+					'join '.$_GET['channel'],
+					'samode '.$_GET['channel'].' +o RehashServ',
+					'cs register '.$_GET['channel'],
+					'cs set '.$_GET['channel'].' keeptopic on',
+					'cs set '.$_GET['channel'].' founder '.$_COOKIE['user']
+				));
+				if($ret['code'] !== 0){
+					die(json_encode($ret));
+				}
+				$ret2 = irccommands(array(
+					'join '.$_GET['channel'],
+					'cs set '.$_GET['channel'].' founder '.$_COOKIE['user'],
+					'cs flags '.$_GET['channel'].' RehashServ -AORafhioqrstv'
+				),$_COOKIE['user']);
+				if($ret2['code'] !== 0){
+					$ret2['message'] = 'Failed to register channel. See log for information.';
+				}
+				@$ret2['log'] = $ret['log']."\r\n".$ret2['log'];
+			}else{
+				$ret = array(
+					'code'=>1,
+					'message'=>'Channel '.$_GET['channel'].' already exists.'
+				);
 			}
 			}
-			$ret2['log'] = $ret['log']."\r\n".$ret2['log'];
 			die(json_encode($ret));
 			die(json_encode($ret));
 		break;
 		break;
 		case 'persona-login':
 		case 'persona-login':

+ 1 - 1
site/index.php

@@ -35,7 +35,7 @@
 			<script src="//cdnjs.cloudflare.com/ajax/libs/authy-forms.js/2.0/form.authy.min.js"></script>
 			<script src="//cdnjs.cloudflare.com/ajax/libs/authy-forms.js/2.0/form.authy.min.js"></script>
 		<?php } ?>
 		<?php } ?>
 		<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-url-parser/2.3.1/purl.min.js"></script>
 		<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-url-parser/2.3.1/purl.min.js"></script>
-		<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min.js"></script>
+		<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.0/handlebars.min.js"></script>
 		<?php if(get_conf('persona-endpoint') != 'none'){ ?>
 		<?php if(get_conf('persona-endpoint') != 'none'){ ?>
 			<script src="//login.persona.org/include.js"></script>
 			<script src="//login.persona.org/include.js"></script>
 		<?php } ?>
 		<?php } ?>