root/trunk/install/perl/envpolicyupdate.pl

リビジョン 70, 1.5 kB (コミッタ: sorshi, コミット時期: 17 年 前)

環境ポリシー機能搭載

Line 
1 #!/usr/bin/perl
2 #
3 # Anime recording system foltia
4 # http://www.dcc-jpl.com/soft/foltia/
5 #
6 #
7 # envpolicyupdate.pl
8 #
9 # 環境ポリシー利用時に.htpasswdを再編する。
10 #
11 #
12 # DCC-JPL Japan/foltia project
13 #
14 #
15
16 use DBI;
17 use DBD::Pg;
18
19 $path = $0;
20 $path =~ s/envpolicyupdate.pl$//i;
21 if ($pwd  ne "./"){
22 push( @INC, "$path");
23 }
24
25 require "foltialib.pl";
26
27 # 環境ポリシーを使っているかPHPコンフィグファイル解析
28 $returnparam = getphpstyleconfig("useenvironmentpolicy");
29 eval "$returnparam\n";
30
31 if ($useenvironmentpolicy == 1){
32 $returnparam = getphpstyleconfig("environmentpolicytoken");
33 eval "$returnparam\n";
34
35         my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d",
36                 $DBDriv,$DBName,$DBHost,$DBPort);
37          $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;;
38
39 $DBQuery =  "SELECT userclass,name,passwd1 FROM foltia_envpolicy ";
40
41  $envph = $dbh->prepare($DBQuery);
42         $envph->execute();
43
44 #なければつくる
45 unless (-e "$toolpath/.htpasswd"){
46         $oserr = `touch $toolpath/.htpasswd`;
47 }else{
48         $oserr = `mv $toolpath/.htpasswd $toolpath/htpasswd_foltia_old`;
49         $oserr = `touch $toolpath/.htpasswd`;
50 }
51
52 while (@ref = $envph->fetchrow_array ){
53
54 if ($ref[0] == 0){
55 #ユーザクラス
56 #0:特権管理者
57 #1:管理者:予約削除、ファイル削除が出来る
58 #2:利用者:EPG追加、予約追加が出来る
59 #3:ビュアー:ファイルダウンロードが出来る
60 #4:ゲスト:インターフェイスが見れる
61
62         $htpasswd = "$ref[2]";
63 }else{
64         $htpasswd = "$ref[2]"."$environmentpolicytoken";
65 }
66
67 $oserr = `htpasswd -b $toolpath/.htpasswd $ref[1] $htpasswd`;
68
69
70 }#end while
71 &writelog("envpolicyupdate htpasswd updated.");
72
73 }#endif
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。
track feed