作者itoc.bbs@processor.tfcis.org (核心動力) 看板: plan
標題Re: 推薦人
時間動力核心 (2004/03/30 Tue 00:42:13) Updated: 2004/03/30
※ 引述《aling0306.bbs@fhbb.twbbs.org.tw (yenning~)》之銘言:
> 新使用者new 帳號時
> 填完所有資料後
> 會出現一個詢問視窗 "請輸入推薦你來這裡的人ID"
> 輸入被推薦人id後 會自動PO在一個板上
註冊時填寫介紹人
這功能用 HAVE_GUARANTOR 改寫即可:
a) 拿掉檢查保人密碼的部分
b) 新增將 log 記錄在特定看板
: config.h
#ifdef LOGINASNEW
- #undef HAVE_GUARANTOR /* itoc.000319: 採用保證人制度 */
+ #define HAVE_GUARANTOR /* itoc.000319: 採用保證人制度 */
#endif
: bbsd.c:login_user()
vget(b_lines - 2, 0, " [您的保人] ", uid, IDLEN + 1, DOECHO);
if (!*uid || (acct_load(&cuser, uid) < 0))
{
vmsg("抱歉,沒有介紹人不得加入本站");
}
- else if (!HAS_PERM(PERM_GUARANTOR))
- {
- vmsg("抱歉,您不夠資格擔任別人的介紹人");
- }
- else if (!vget(b_lines - 2, 40, "[保人密碼] ",
- passbuf, PSWDLEN + 1, NOECHO))
- {
- continue;
- }
else
{
- if (chkpasswd(cuser.passwd, passbuf))
- {
- logattempt('-', content);
- vmsg(ERR_PASSWD);
- }
- else
{
FILE *fp;
char parentid[IDLEN + 1], buf[80];
time_t now;
+ HDR hdr;
+ char folder[64];
...
...
sprintf(buf, "%s 於 %s 介紹此人(%s)加入本站\n",
parentid, Btime(&now), cuser.userid);
usr_fpath(fpath, cuser.userid, "guarantor");
if (fp = fopen(fpath, "a"))
{
fputs(buf, fp);
fclose(fp);
}
+ brd_fpath(folder, "sysop", fn_dir); // 看板自定
+ hdr_stamp(folder, HDR_COPY | 'A', &hdr, fpath);
+ strcpy(hdr.owner, parentid);
+ strcpy(hdr.nick, "介紹人");
+ sprintf(hdr.title, %s 介紹 %s 加入本站, parentid, cuser.userid);
+ rec_add(folder, &hdr, sizeof(HDR));
sprintf(buf, "%s 於 %s 被此人(%s)介紹加入本站\n",
cuser.userid, Btime(&now), parentid);
--
╭┼ Origin: Maple-itoc˙動力核心 processor.tfcis.org
┼╯ Author: itoc 從 itoc.dorm11.nctu.edu.tw 發表精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻