Ticket #3773 (closed enhancement: fixed)

Opened 8 years ago

Last modified 8 years ago

コミュニティ権限の分割機能

Reported by: BW Assigned to: BW
Priority: major Milestone: OpenPNE2.14beta1
Component: 指定しない Version:
Keywords: Cc:

Description (Last modified by BW)

■概要

  • 現状、コミュニティへの参加方法、公開範囲を1つのフラグで管理しているので、コミュニティに関する権限を分割するフラグを追加し、権限を細かく指定できるようにする。
  • トピック・コメント作成機能に「誰でも作成可能」項目を追加し、コミュニティに参加しなくても掲示板が使えるようにする

■機能詳細

コミュニティに関する権限を以下の4項目とする 1.参加条件(既存) 2.公開範囲(既存) 3.トピック作成権限(既存) 4.コメント作成権限(新設)

各権限と、設定できる値を以下のようにする
(1)参加条件

  • 誰でも参加OK  (既存)
  • 管理者の承認が必要 (既存)

(2)公開範囲

  • 全員に公開  (既存)
  • 参加者にのみ公開 (既存)

(3)トピック作成権限

  • コミュニティ参加者が作成可能 (既存)
  • 管理者のみ作成可能  (既存)
  • 誰でも作成可能  (新設)

(4)コメント作成権限

  • 参加者のみ作成可能 (新設)
  • 誰でも作成可能  (新設)

ただし、公開範囲に「参加者のみ公開」が指定された場合、 (3)(4)の「誰でも作成可能)は指定できないようにする
フラグのマトリクスと現行にある状態かどうかを表にまとめました。

参加条件公開範囲トピック作成権限コメント作成権限現行状態有無
誰でも全員参加者のみ参加者のみ有り
誰でも無し
管理者のみ参加者のみ有り
誰でも無し
誰でも参加者のみ無し
誰でも無し
参加者のみ参加者のみ参加者のみ無し
誰でもNG
管理者のみ参加者のみ無し
誰でもNG
誰でも参加者のみNG
誰でもNG
承認全員参加者のみ参加者のみ有り
誰でも無し
管理者のみ参加者のみ有り
誰でも無し
誰でも参加者のみ無し
誰でも無し
参加者のみ参加者のみ参加者のみ有り
誰でもNG
管理者のみ参加者のみ有り
誰でもNG
誰でも参加者のみNG
誰でもNG

■修正内容

(1) DB
コミュニティ管理テーブル[c_commu]で管理されている、以下のフィールドは未使用とする
  ・public_flag
  ・topic_authority

[c_commu]テーブルに、以下の4フィールドを追加する
  ・参加条件
    カラム名  : is_admit (default:public)
                 public : 誰でも参加可能
                 auth   : 管理者の承認が必要
  ・公開範囲
    カラム名  : is_open  (default:public)
                 public : 全員に公開
                 member : 参加者にのみ公開
  ・トピック作成権限
    カラム名  : is_topic (default:member)
                 member : 参加者のみ作成可能
                 admit_member : 管理者のみ作成可能
                 public : 誰でも作成可能
  ・コメント作成権限
    カラム名  : is_comment (default:member)
                 member : 参加者のみ作成可能
                 public : 誰でも作成可能
              

(2) SQL
ALTER TABLE c_commu ADD COLUMN is_admit enum('public','auth') NOT NULL DEFAULT 'public';
ALTER TABLE c_commu ADD COLUMN is_open enum('public','member') NOT NULL DEFAULT 'public';
ALTER TABLE c_commu ADD COLUMN is_topic enum('member','admin_only','public') NOT NULL DEFAULT 'member';
ALTER TABLE c_commu ADD COLUMN is_comment enum('member','public') NOT NULL DEFAULT 'member';

UPDATE c_commu SET is_admit='public',is_open='public',is_comment='member' WHERE public_flag='public';
UPDATE c_commu SET is_admit='auth',is_open='public',is_comment='member' WHERE public_flag='auth_sns';
UPDATE c_commu SET is_admit='auth',is_open='public',is_comment='member' WHERE public_flag='auth_public';
UPDATE c_commu SET is_admit='auth',is_open='member',is_comment='member' WHERE public_flag='auth_commu_member';

UPDATE c_commu SET is_topic='member' WHERE topic_authority='public';
UPDATE c_commu SET is_topic='admin_only' WHERE topic_authority='admin_only';

(3) ソース
OpenPNE2.13.6ベースで作成

Change History

04/03/09 16:18:16 changed by BW

04/06/09 17:49:52 changed by BW

  • description changed.

04/09/09 13:52:13 changed by BW

  • description changed.

04/15/09 14:00:03 changed by kiwa

  • milestone set to OpenPNE2.13.8.

ありがとうございます><2.13.8で取り込み検討します。

04/15/09 14:35:08 changed by kiwa

  • priority changed from minor to major.

04/17/09 21:27:11 changed by urabe

  • owner changed from nobody to urabe.
  • status changed from new to assigned.

04/17/09 21:49:21 changed by urabe

  • keywords set to 確認中.

r11351 でトランクにマージしました。

04/23/09 15:15:18 changed by urabe

r11429 でSQLファイル名を適用バージョン用に変更しました。

04/28/09 15:26:41 changed by kawahara

r11516

アップデートSQLのファイル名の連番・バージョンを変更しました。

04/28/09 20:21:59 changed by kawahara

  • keywords changed from 確認中 to 差し戻し.

Descriptionに

コミュニティ管理テーブル[c_commu]で管理されている、以下のフィールドは未使用とする
  ・public_flag
  ・topic_authority

とありますが、上記2つのフィールドは削除すべきであると考えます。

MySQL4.1<= の場合、現行のUPDATE SQLの最後に

ALTER TABLE c_commu DROP public_flag;
ALTER TABLE c_commu DROP topic_authority;

とすることで2つのフィールドを削除できると思います。

04/30/09 16:12:44 changed by kiwa

update sqlに問題があるので、今回はちょっと取り込み内容から外したいと思います。魅力的な機能ではあるので2.14beta1では対応させましょう。

04/30/09 17:13:36 changed by kiwa

取り外しやります

04/30/09 17:51:27 changed by kiwa

  • keywords changed from 差し戻し to 確認中.

以下のリビジョンで変更を取り消しました。

05/01/09 10:47:12 changed by imamura623

  • keywords deleted.
  • milestone changed from OpenPNE2.13.8 to OpenPNE2.14beta1.

機能取り外し後、2.13xで正常に動作することを確認しました。
Milestoneを2.14Beta1に変更いたします。

05/01/09 19:08:22 changed by BW

r11563でpublic_flag、topic_authorityの削除SQL追加しました。 r11564でpublic_flagの使用している箇所の修正漏れを修正しました。

05/08/09 18:41:35 changed by imamura623

  • r11600で取り外した機能をtrunkへ再マージ
  • r11601r11563のpublic_flag、topic_authorityの削除SQL追加をtrunkへマージ
  • r11602r11564のpublic_flagの使用している箇所の修正漏れを修正をtrunkへマージ

05/15/09 12:15:20 changed by kiwa

  • owner changed from urabe to nobody.
  • status changed from assigned to new.

ownerを外します

05/20/09 16:53:43 changed by nakasone

以下の表で動作確認を行ったところ、問題ありません。

参加条件公開範囲トピック作成権限コメント作成権限現行状態有無動作(管理者)動作(参加者)動作(非参加者)
誰でも全員参加者のみ参加者のみ有り
誰でも無し
管理者のみ参加者のみ有り
誰でも無し
誰でも参加者のみ無し
誰でも無し
参加者のみ参加者のみ参加者のみ無し
誰でもNG---
管理者のみ参加者のみ無し
誰でもNG---
誰でも参加者のみNG---
誰でもNG---
承認全員参加者のみ参加者のみ有り
誰でも無し
管理者のみ参加者のみ有り
誰でも無し
誰でも参加者のみ無し
誰でも無し
参加者のみ参加者のみ参加者のみ有り
誰でもNG---
管理者のみ参加者のみ有り
誰でもNG---
誰でも参加者のみNG---
誰でもNG---

05/21/09 10:58:48 changed by imamura623

  • owner changed from nobody to BW.

05/21/09 11:00:26 changed by imamura623

  • status changed from new to closed.
  • resolution set to fixed.

問題無いようなので修正完了としこのチケットは閉じます。
お疲れ様でした。