Merge branch '2013.10' into 2014.11
[tine20] / scripts / addgrant.php
1 #!/usr/bin/env php
2 <?php
3 /**
4  * Tine 2.0 add grant script
5  * - This script adds a defined grant for all containers of a group in an application 
6  *
7  * @package     HelperScripts
8  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
9  * @author      Philipp Schuele <p.schuele@metaways.de>
10  * @copyright   Copyright (c) 2010 Metaways Infosystems GmbH (http://www.metaways.de)
11  * @version     $Id$
12  * 
13  */
14
15 if (php_sapi_name() != 'cli') {
16     die('not allowed!');
17 }
18
19 // db info
20 $host   = 'host';
21 $user   = 'user';
22 $pass   = 'pass';
23 $db     = 'db';
24
25 // values
26 $containerTable = 'tine20_container';
27 $aclTable       = 'tine20_container_acl';
28 $grant          = 'deleteGrant';
29 $accountId      = 'f68dbbc2b4ad4e823423962f2b1a2e78ea1703e4';
30 $accountType    = 'group';
31 $appId          = '3584703dcd783a3427a1d9a2cf0352327a6d4ca7';
32
33 $link = mysql_connect($host, $user, $pass)
34     or die("No connection: " . mysql_error());
35 mysql_select_db($db) or die("Could not select DB.");
36
37 // get all containers where this group has access
38 $query = 'SELECT DISTINCT container.id FROM `' . $containerTable . '` as container left join ' . $aclTable . ' as acl on container.id = acl.container_id '
39     . 'WHERE application_id = \'' . $appId . '\' and account_id = \'' . $accountId . '\' and account_type = \'' . $accountType . '\'';
40
41 $result = mysql_query($query) or die("\n" . mysql_error());
42
43 while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
44     $lines[] = $line;
45 }
46
47 //print_r($lines);
48
49 echo 'Adding ' . count($lines) . ' new grants for ' . $accountType . ' ' . $accountId;
50 foreach($lines as $line) {
51     $id = sha1(mt_rand(). microtime());
52     $query = " 
53     INSERT INTO $aclTable
54         (`id` ,
55         `container_id` ,
56         `account_type` ,
57         `account_id` ,
58         `account_grant`
59         ) VALUES (
60         '$id',  '" . $line['id'] . "',  '$accountType',  '$accountId',  '$grant')";
61     //echo $query;
62     $result = mysql_query($query) or die("\n" . mysql_error() . "\n");
63     if ($result) {
64         echo ".";
65     }
66 }
67 echo " done.\n";
68
69 mysql_close($link);