-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgd-e.cgi
142 lines (125 loc) · 4.48 KB
/
gd-e.cgi
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
129
130
131
132
133
134
135
136
137
138
139
140
141
use utf8;
# ギルド人事 2004/01/20 由來
Lock(), $Q{mode}=$Q{edit} if $Q{edit};
DataRead();
CheckUserPass();
RequireFile('inc-gd.cgi');
$Q{er}='gd';
my $functionname=$Q{mode};
$functionname||="leave";
OutError('bad request') if !defined(&$functionname);
&$functionname;
OutSkin();
1;
sub leave
{
OutError('bad request') if (!$DT->{guild});
$disp.=<<"HTML";
$TB$TR
$TD$image[0]$TD
<SPAN>${\l('ギルド受付')}</SPAN>:${\l('ギルドを退団しますか?')}<br>
${\l('メンバーに連絡してから退団することをおすすめします。')}
$TRE$TBE<br>
HTML
$disp.=l("ギルド戦中は退団できません"),return if ($DTevent{guildbattle});
$disp.=<<STR;
<form action="action.cgi" $METHOD>
<INPUT TYPE=HIDDEN NAME=key VALUE="user">
<INPUT TYPE=HIDDEN NAME=mode SIZE=10 VALUE="guild">
$USERPASSFORM
<SPAN>${\l('ギルド退団')}</SPAN>
<INPUT TYPE=TEXT NAME=guild SIZE=10 VALUE="">
(${\l('leaveと入力')})
<INPUT TYPE=SUBMIT VALUE="${\l('退団する')}"></FORM>
STR
}
sub submit
{
OutError('bad request') if (!$DT->{guild});
my $checkok;
$ckeckok=1 if ($GUILD_DETAIL{$DT->{guild}}->{leadt} eq $MYDIR && $GUILD_DETAIL{$DT->{guild}}->{leader} == $DT->{id});
$ckeckok=1 if ($GUILD_DETAIL{$DT->{guild}}->{$MYDIR} == $DT->{id});
OutError('bad request') if (!$ckeckok);
$disp.=<<"HTML";
$TB$TR
$TD$image[0]$TD
<SPAN>${\l('ギルド受付')}</SPAN>:${\l('人事室では,メンバーに肩書きをつけたり,退団させたりできます。')}<br>
${\l('ただし,この街のメンバーに限りますのでご注意ください。')}
$TRE$TBE<br>
HTML
my $formmember;
foreach(@DT)
{
next if ($_->{guild} ne $DT->{guild});
$formmember.="<OPTION VALUE=\"$_->{id}\">$_->{shopname}";
}
$disp.=<<STR;
<form action="action.cgi" $METHOD>
$MYFORM$USERPASSFORM
<BIG>●${\l('肩書き命名')}</BIG>:
<INPUT TYPE=HIDDEN NAME=edit VALUE="name">
<SELECT NAME=id SIZE=1>
<OPTION VALUE="">${\l('選択')}
$formmember
</SELECT> ${\l('の肩書きを')}
<INPUT TYPE=TEXT NAME=name SIZE=16 VALUE="">
${\l('と')} <INPUT TYPE=SUBMIT VALUE="${\l('命名する')}"> (${\l('%1文字以内',20)})
</FORM>
<hr width=500 noshade size=1>
<form action="action.cgi" $METHOD>
$MYFORM$USERPASSFORM
<SPAN>${\l('退団処分')}</SPAN>:
<INPUT TYPE=HIDDEN NAME=edit VALUE="fire">
<SELECT NAME=id SIZE=1>
<OPTION VALUE="">${\l('選択')}
$formmember
</SELECT> ${\l('を')} <INPUT TYPE=SUBMIT VALUE="${\l('退団させる')}">
<INPUT TYPE=TEXT NAME=guild SIZE=10 VALUE="">
(${\l('leaveと入力')})
</FORM>
STR
}
sub name
{
OutError('bad request') if (!$DT->{guild});
my $checkok;
$ckeckok=1 if ($GUILD_DETAIL{$DT->{guild}}->{leadt} eq $MYDIR && $GUILD_DETAIL{$DT->{guild}}->{leader} == $DT->{id});
$ckeckok=1 if ($GUILD_DETAIL{$DT->{guild}}->{$MYDIR} == $DT->{id});
OutError('bad request') if (!$ckeckok);
OutError(l('命名する相手を選んでください。')) if !$Q{id};
OutError(l('存在しない店舗です。')) if !defined($id2idx{$Q{id}});
my $tg=$id2idx{$Q{id}};
OutError(l('命名権限がありません。')) if ($DT[$tg]->{guild} ne $DT->{guild});
OutError(l('肩書きが長すぎです。')) if length($Q{name})>20;
$DT[$tg]->{user}{_so_e}=$Q{name};
my $ret=l("%1を「%2」に叙しました。",$DT[$tg]->{shopname},$Q{name});
PushLog(2,0,l("ギルド「%1」は%2",$GUILD{$DT->{guild}}->[$GUILDIDX_name],$ret));
$disp.=$ret;
RenewLog();
DataWrite();
DataCommitOrAbort();
UnLock();
}
sub fire
{
OutError('bad request') if (!$DT->{guild});
my $checkok;
$ckeckok=1 if ($GUILD_DETAIL{$DT->{guild}}->{leadt} eq $MYDIR && $GUILD_DETAIL{$DT->{guild}}->{leader} == $DT->{id});
$ckeckok=1 if ($GUILD_DETAIL{$DT->{guild}}->{$MYDIR} == $DT->{id});
OutError('bad request') if (!$ckeckok);
OutError(l('退団させるメンバーを選んでください。')) if !$Q{id};
OutError(l('存在しない店舗です。')) if !defined($id2idx{$Q{id}});
my $tg=$id2idx{$Q{id}};
OutError(l('権限がありません。')) if ($DT[$tg]->{guild} ne $DT->{guild});
OutError(l('団長を退団させることはできません。')) if ($GUILD_DETAIL{$DT->{guild}}->{leadt} eq $MYDIR && $GUILD_DETAIL{$DT->{guild}}->{leader} == $Q{id});
OutError(l('退団させるにはleaveと入力してください')) if $Q{guild} ne 'leave';
delete $DT[$tg]->{user}{_so_e};
$DT[$tg]->{guild}="";
my $name=$GUILD{$DT->{guild}}->[$GUILDIDX_name];
PushLog(1,0,l("%1がギルド「%2」から除名されました。",$DT[$tg]->{shopname},$name));
$disp.=$DT[$tg]->{shopname}."を退団させました。";
RenewLog();
DataWrite();
DataCommitOrAbort();
UnLock();
}