241134← ↑修正パッチ →241136


2004.07.07 (水) 23:50:32 <u*j*2*6*> 変更した点は大きく3つにわかれます
2004.07.07 (水) 23:52:57 <u*j*2*6*> 1つ目:Allow_Registerの動作を実装、ただし6番コマンドの許可用じゃなく、NickServ経由でUserが自分のアカウントを登録するのを許すのに使う
2004.07.07 (水) 23:55:01 <u*j*2*6*> Allow_Registerは設定→Users→「ユーザーが新しいアカウントを登録することを許可する」オプションにチェックを入れるとOnになります。
2004.07.07 (水) 23:58:42 <u*j*2*6*> 2つ目:上記オプションを「登録済みユーザーのみログインを許可する」にチェックがなくても見えるようにして、設定→Linking Servers→「ネットワークのハブ(軸)として動作する」がOFFのとき見えないようにしました。
2004.07.08 (木) 00:00:09 <u*j*2*6*> 3つ目:NickServにregisterコマンドを追加しました。 opennap風につかえると思います。
2004.07.12 (月) 20:29:48 <u*j*2*6*> opennap風というのは勘違いでした。shuusei241139で書式を変更しました

shuusei241135:ユーザーがNickServで新しいアカウントを登録できる機能を実装(24144参照, report by Cru,MuumiPeikko)

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
|
|
|
-
|
-
|
|
!
!
|
-
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
!
|
-
|
|
|
!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
-
|
!
|
|
-
|
|
|
|
|
|
|
|
|
|
diff --dos -urN 241134/StringResources.pas 241135/StringResources.pas
--- 241134/StringResources.pas    Sat Jun 12 17:14:02 2004
+++ 241135/StringResources.pas    Wed Jul 07 22:46:20 2004
@@ -153,6 +153,7 @@
   RS_NickServ_Help_Ghost        = 'ghost [<user> <pass>] - ゴーストを表示/切断';
   RS_NickServ_Help_Help         = 'help - このヘルプメッセージを表示';
   RS_NickServ_Help_Pass         = 'pass <pass> - パスワードを変更';
+  RS_NickServ_Help_Register     = 'register <user> - <user>のアカウントを登録';
   RS_NickServ_Help_Usermode     =
     'usermode [+|-mode1 ...] - モード設定("usermode help"でモード一覧)';
   RS_NickServ_Help_end          = '--------------------------------';
diff --dos -urN 241134/handler.pas 241135/handler.pas
--- 241134/handler.pas    Mon Jul 05 21:22:36 2004
+++ 241135/handler.pas    Wed Jul 07 23:35:02 2004
@@ -2021,6 +2021,8 @@
     GCmd.Id := MSG_CLIENT_GHOST
   else if Action = 'pass' then
     GCmd.Id := MSG_CLIENT_CHANGE_PASS
+  else if Action = 'register' then
+    GCmd.Id := MSG_CLIENT_REGISTER_USER
   else if (Action = 'usermode') or (Action = 'um') then
     GCmd.Id := MSG_CLIENT_USER_MODE
   else if Action = 'help' then
@@ -2030,6 +2032,7 @@
     Local.Exec(MSG_CLIENT_PRIVMSG, 'NickServ ' + RS_NickServ_Help_Ghost);
     Local.Exec(MSG_CLIENT_PRIVMSG, 'NickServ ' + RS_NickServ_Help_Help);
     Local.Exec(MSG_CLIENT_PRIVMSG, 'NickServ ' + RS_NickServ_Help_Pass);
+    Local.Exec(MSG_CLIENT_PRIVMSG, 'NickServ ' + RS_NickServ_Help_Register);
     Local.Exec(MSG_CLIENT_PRIVMSG, 'NickServ ' + RS_NickServ_Help_Usermode);
     Local.Exec(MSG_CLIENT_PRIVMSG, 'NickServ ' + RS_NickServ_Help_end);
     Exit;
@@ -9078,6 +9081,14 @@
 begin
   if not IsLogged then Exit;
   if not CheckParams(1) then Exit;
+  if User.Level <= napUserUser then
+  begin
+    if (not Allow_Register) or (User.Level = napUserLeech) then
+    begin
+      Error(GetLangT(LNG_ACCESS), True);
+      Exit;
+    end;
+  end;
   if HList.Count = 1 then
   begin
     Usr := DB_Online.FindUser(HList.Strings[0]);
@@ -9092,6 +9103,8 @@
       else
       begin
         RegisterUser(Usr, User^.UserName);
+        Error(GetLangT(LNG_REGOK2, User^.UserName,
+          Usr^.UserName, Level2Str(Usr^.Level)), True);
         Wallop(MSG_SERVER_NOSUCH, wallopRegister, GetLangT(LNG_REGOK2,
           User^.UserName, Usr^.UserName, Level2Str(Usr^.Level)), True);
         if User^.Server = nil then
diff --dos -urN 241134/mainform.pas 241135/mainform.pas
--- 241134/mainform.pas    Thu Jul 01 22:14:14 2004
+++ 241135/mainform.pas    Wed Jul 07 22:38:24 2004
@@ -1154,10 +1154,15 @@
       TimeOut_Login := Ini.ReadInteger('Server', 'TimeoutLogin', 60000);
       Network_Hub := Ini.ReadBool('Server', 'NetworkHub', False);
       if Network_Hub then
-        Registered_Only := False
+      begin
+        Registered_Only := False;
+        Allow_Register := False;
+      end
       else
+      begin
         Registered_Only := Ini.ReadBool('Server', 'RegisteredOnly', False);
-      Allow_Register := Ini.ReadBool('Server', 'AllowRegister', False);
+        Allow_Register := Ini.ReadBool('Server', 'AllowRegister', False);
+      end;
       Accept_Remote_Users := Ini.ReadBool('Servers',
         'AcceptRemoteUserRegistrations', False);
       Allow_Link := TAllowLinkType(Ini.ReadInteger('Server', 'AllowLink', 1));
diff --dos -urN 241134/settings.dfm 241135/settings.dfm
--- 241134/settings.dfm    Tue Jul 06 21:48:26 2004
+++ 241135/settings.dfm    Wed Jul 07 23:37:48 2004
@@ -286,7 +286,7 @@
       Top = 38
       Width = 365
       Height = 392
-      ActivePage = Sh_Other3
+      ActivePage = Sh_Users
       Align = alClient
       MultiLine = True
       OwnerDraw = True
@@ -476,7 +476,6 @@
           Height = 18
           Caption = '登録済みユーザーのみログインを許可する'
           TabOrder = 4
-          OnClick = Cb_Users_Reg_OnlyClick
         end
         object Cb_Users_Reg_Allow: TCheckBox
           Left = 7
diff --dos -urN 241134/settings.pas 241135/settings.pas
--- 241134/settings.pas    Tue Jul 06 21:41:36 2004
+++ 241135/settings.pas    Wed Jul 07 22:56:32 2004
@@ -643,7 +643,6 @@
     procedure TreeChange(Sender: TObject; Node: TTreeNode);
     procedure Sh_MainShow(Sender: TObject);
     procedure Sh_UsersShow(Sender: TObject);
-    procedure Cb_Users_Reg_OnlyClick(Sender: TObject);
     procedure Sh_LimitsShow(Sender: TObject);
     procedure Sh_InterfaceShow(Sender: TObject);
     procedure Sh_LogShow(Sender: TObject);
@@ -1085,11 +1084,6 @@
     Pages.ActivePage := Sh_Other4;
 end;
 
-procedure TSlavaNapSettings.Cb_Users_Reg_OnlyClick(Sender: TObject);
-begin
-  Cb_Users_Reg_Allow.Visible := Cb_Users_Reg_Only.Checked;
-end;
-
 procedure TSlavaNapSettings.Cb_Log_SaveClick(Sender: TObject);
 begin
   Cb_Log_Users.Visible := Cb_Log_Save.Checked;
@@ -1118,7 +1112,7 @@
   Cb_Users_Reg_Only.Visible := not Network_Hub;
   Cb_Users_Reg_Only.Checked := Registered_Only;
   Cb_Users_Reg_Allow.Checked := Allow_Register;
-  Cb_Users_Reg_Allow.Visible := Cb_Users_Reg_Only.Checked;
+  Cb_Users_Reg_Allow.Visible := not Network_Hub;
   Cb_Users_NoRemote.Checked := not Accept_Remote_Users;
   Edit_Users_Limit.Value := Max_Users;
   Edit_Users_Clones.Value := Max_Clones;
241134← ↑修正パッチ →241136