source: contrib/Dms/out/out.FolderAccess.php @ 4362

Revision 4362, 10.5 KB checked in by afernandes, 13 years ago (diff)

Ticket #1416 - Disponibilizado módulo de recursos para a comunidade

  • Property svn:executable set to *
Line 
1<?php
2include("../inc/inc.Settings.php");
3include("../inc/inc.AccessUtils.php");
4include("../inc/inc.ClassAccess.php");
5include("../inc/inc.ClassDocument.php");
6include("../inc/inc.ClassFolder.php");
7include("../inc/inc.ClassGroup.php");
8include("../inc/inc.ClassUser.php");
9include("../inc/inc.DBAccess.php");
10include("../inc/inc.FileUtils.php");
11include("../inc/inc.Language.php");
12include("../inc/inc.OutUtils.php");
13
14include("../inc/inc.Authentication.php");
15//
16
17
18function printAccessModeSelection($defMode)
19{
20        print "<select name=\"mode\">\n";
21        print "\t<option value=\"".M_NONE."\"" . (($defMode == M_NONE) ? " selected" : "") . ">" . getMLText("access_mode_none") . "\n";
22        print "\t<option value=\"".M_READ."\"" . (($defMode == M_READ) ? " selected" : "") . ">" . getMLText("access_mode_read") . "\n";
23        print "\t<option value=\"".M_READWRITE."\"" . (($defMode == M_READWRITE) ? " selected" : "") . ">" . getMLText("access_mode_readwrite") . "\n";
24        print "\t<option value=\"".M_ALL."\"" . (($defMode == M_ALL) ? " selected" : "") . ">" . getMLText("access_mode_all") . "\n";
25        print "</select>\n";
26}
27
28$folderid       = (isset($_GET['folderid'])) ? (int) $_GET['folderid'] : NULL;
29//$folder               = getFolder($folderid);
30
31if(!$folder = getFolder($folderid)) {
32$GLOBALS['phpgw']->redirect_link('out/out.ViewFolder.php?error=accesso denegado!');
33               
34}
35
36if ($folder->getAccessMode($user) < M_READWRITE)
37$GLOBALS['phpgw']->redirect_link('out/out.ViewFolder.php?error=accesso denegado!');
38
39
40//$allUsers = getAllUsers();
41//foreach($allUsers as $c=>$v)
42   //  echo "<p>El vector con indice $c tiene el valor $v </p>";
43     //while (list($clave, $valor) = each($allUsers)) {
44      //echo "<p>El vector con indice $clave tiene el valor $valor </p>";
45     //}
46//asort($allUsers);
47//uasort($allUsers,'ordenar');
48 
49
50
51
52
53$accounts = $GLOBALS['phpgw']->accounts->get_list('accounts');
54        $allUsers = array();
55        for ($i = 0; $i < count($accounts); $i++)
56        {
57                $id = $accounts[$i]["account_id"];
58                $login = $accounts[$i]["account_lid"];
59                $fullName = $accounts[$i]['account_firstname'].' '.$accounts[$i]['account_lastname'];
60                $email = $accounts[$i]["account_email"];
61                $isAdmin = phpgw_is_admin($id);
62                $pwd = '';
63                $comment = '';
64                //$myCollection->add($id,$login,$fullName,$email,$isAdmin,$pwd,$comment);
65                $allUsers[$i]=new User($id, $login, $pwd, $fullName, $email, $comment, $isAdmin);
66        }
67//$allUsers->sortDataSet("fullName");
68
69       
70         function cmpNames($a,$b)
71    {
72        //Use sort() for simple alphabetical comparison
73        //Convert to lowercase to ensure consistent behaviour
74        $sortable = array(strtolower($a->_fullName),strtolower($b->_fullName));
75        $sorted = $sortable;
76        sort($sorted);   
77       
78        //If the names have switched position, return -1. Otherwise, return 1.
79        return ($sorted[0] == $sortable[0]) ? -1 : 1;
80    }
81uasort($allUsers, "cmpNames");
82
83
84//                                      $allGroups = getAllGroups();
85$phpgw_groups = $GLOBALS['phpgw']->accounts->get_list('groups');
86
87$allGroups= array();
88       
89       
90        for ($i = 0; $i < count($phpgw_groups); $i++)
91                $allGroups[$i] = new Group($phpgw_groups[$i]["account_id"], $phpgw_groups[$i]["account_lid"], '');
92       
93 function cmpNamesg($a,$b)
94    {
95        //Use sort() for simple alphabetical comparison
96        //Convert to lowercase to ensure consistent behaviour
97        $sortable = array(strtolower($a->_name),strtolower($b->_name));
98        $sorted = $sortable;
99        sort($sorted);   
100       
101        //If the names have switched position, return -1. Otherwise, return 1.
102        return ($sorted[0] == $sortable[0]) ? -1 : 1;
103    }
104   
105    uasort($allGroups, "cmpNamesg");
106   
107
108//Sort by name:
109//$myCollection->sortDataSet("fullName");
110//print_r($myCollection->dataSet);
111 //$allUsers[]->sortDataSet("fullName");
112
113//Sort by x
114//$myCollection->sortDataSet("login");
115//print_r($myCollection->dataSet);
116
117//Sort by y
118//$myCollection->sortDataSet("id");
119//print_r($myCollection->dataSet);
120
121//Sort by order added
122//$myCollection->sortDataSet("added");
123//print_r($myCollection->dataSet);
124       
125
126
127//if ($folder->getAccessMode($user) < M_ALL)
128        //die ("Access denied");
129
130
131printHTMLHead( getMLText("folder_title", array("foldername" => $folder->getName()) ) );
132?>
133
134<script language="JavaScript">
135function checkForm()
136{
137        msg = "";
138        if ((document.form1.userid.options[document.form1.userid.selectedIndex].value == 'none') &&
139                (document.form1.groupid.options[document.form1.groupid.selectedIndex].value == 'none'))
140                        msg += "<?php printMLText("js_select_user_or_group");?>\n";
141        if (msg != "")
142        {
143                alert(msg);
144                return false;
145        }
146        else
147                return true;
148}
149</script>
150
151<?php
152printTitleBar($folder);
153printFolderPageStart($folder);
154printPageHeader(getMLText("edit_folder_access") . ": " . $folder->getName());
155$owner = $folder->getOwner();
156if($user->getID()==1120 ||$owner->getID()==$user->getID()){
157
158//Nur admin darf Besitzer ï¿œndern
159if ($user->isAdmin())
160{
161        printStartBox(getMLText("set_owner"));
162        ?>
163                <form action="../op/op.FolderAccess.php">
164                <input type="Hidden" name="action" value="setowner">
165                <input type="Hidden" name="folderid" value="<?php print $folderid;?>">
166                <table>
167                        <tr>
168                                <td class="inputDescription"><?php printMLText("owner");?></td>
169                                <td>
170                                        <select name="ownerid">
171                                                <?php
172                                                        $owner = $folder->getOwner();
173                                                        foreach ($allUsers as $currUser)
174                                                        {
175                                                                if ($currUser->getID() == $settings->_guestID)
176                                                                        continue;
177                                                                print "<option value=\"".$currUser->getID()."\"";
178                                                                if ($currUser->getID() == $owner->getID())
179                                                                        print " selected";
180                                                                print ">" . $currUser->getFullname() . "\n";
181                                                        }
182                                                ?>
183                                        </select>
184                                </td>
185                        </tr>
186                        <tr>
187                                <td colspan="2"><br><input type="Submit"></td>
188                        </tr>
189                </table>
190                </form>
191        <?php
192        printNextBox(getMLText("edit_inherit_access"));
193}
194else
195        printStartBox(getMLText("edit_inherit_access"));
196
197print "<div class=\"inheritAccess\">";
198
199if ($folder->inheritsAccess())
200{
201        printMLText("inherits_access_msg", array(
202                "copyurl" => "../op/op.FolderAccess.php?folderid=".$folderid."&action=notinherit&mode=copy",
203                "emptyurl" => "../op/op.FolderAccess.php?folderid=".$folderid."&action=notinherit&mode=empty"));
204        printEndBox();
205        printFolderPageEnd($folder);
206        printHTMLFoot();
207        exit();
208}
209
210if($user->getID()==1120 ){
211printMLText("does_not_inherit_access_msg", array("inheriturl" => "../op/op.FolderAccess.php?folderid=".$folderid."&action=inherit"));
212}
213print "</div>";
214
215
216$accessList = $folder->getAccessList();
217
218//printNextBox(getMLText("default_access"));
219?>
220
221
222
223<?php
224printNextBox(getMLText("edit_existing_access"));
225?>
226
227<table border="0" cellpadding="0" cellspacing="5">
228        <?php
229                if ((count($accessList["users"]) == 0) && (count($accessList["groups"]) == 0))
230                {
231                        print "<tr><td class=\"accessList\">".getMLText("empty_access_list")."</td></tr>";
232                }
233                else
234                {
235                        $rownum = count($accessList["users"])+count($accessList["groups"])+1;
236                        ?>
237                                <tr>
238                                        <td></td>
239                                        <td class="accessList" style="border-bottom: 1pt solid #000080;"><i><?php printMLText("name");?></i></td>
240                                        <td rowspan="<?php print $rownum;?>" style="border-left: 1pt solid #000080;">&nbsp;</td>
241                                        <td class="accessList" style="border-bottom: 1pt solid #000080;"><i><?php printMLText("access_mode");?></i></td>
242                                        <td></td>
243                                </tr>
244                                <?php
245                                        foreach ($accessList["users"] as $userAccess)
246                                        {
247                                                $userObj = $userAccess->getUser();
248                                                print "<form action=\"../op/op.FolderAccess.php\">\n";
249                                                print "<input type=\"Hidden\" name=\"folderid\" value=\"".$folderid."\">\n";
250                                                print "<input type=\"Hidden\" name=\"action\" value=\"editaccess\">\n";
251                                                print "<input type=\"Hidden\" name=\"userid\" value=\"".$userObj->getID()."\">\n";
252                                                print "<tr>\n";
253                                                print "<td><img src=\"images/usericon.gif\" width=16 height=16></td>\n";
254                                                print "<td class=\"accessList\">". $userObj->getFullName() . "</td>\n";
255                                                print "<td>\n";
256                                                printAccessModeSelection($userAccess->getMode());
257                                                print "</td>\n";
258                                                print "<td><input type=\"Image\" src=\"images/save.gif\"></td>\n";
259                                                print "<td><a href=\"../op/op.FolderAccess.php?folderid=".$folderid."&action=delaccess&userid=".$userObj->getID()."\"><img src=\"images/del.gif\" width=15 height=15 border=0></a></td>\n";
260                                                print "</tr>\n";
261                                                print "</form>\n";
262                                        }
263                                       
264                                        foreach ($accessList["groups"] as $groupAccess)
265                                        {
266                                                $groupObj = $groupAccess->getGroup();
267                                                $mode = $groupAccess->getMode();
268                                                print "<form action=\"../op/op.FolderAccess.php\">";
269                                                print "<input type=\"Hidden\" name=\"folderid\" value=\"".$folderid."\">";
270                                                print "<input type=\"Hidden\" name=\"action\" value=\"editaccess\">";
271                                                print "<input type=\"Hidden\" name=\"groupid\" value=\"".$groupObj->getID()."\">";
272                                                print "<tr>";
273                                                print "<td><img src=\"images/groupicon.gif\" width=16 height=16 border=0></td>";
274                                                print "<td class=\"accessList\">". $groupObj->getName() . "</td>";
275                                                print "<td>";
276                                                printAccessModeSelection($groupAccess->getMode());                                              print "</td>\n";
277                                                print "<td><input type=\"Image\" src=\"images/save.gif\"></td>";
278                                                print "<td><a href=\"../op/op.FolderAccess.php?folderid=".$folderid."&action=delaccess&groupid=".$groupObj->getID()."\"><img src=\"images/del.gif\" width=15 height=15 border=0></a></td>";
279                                                print "</tr>";
280                                                print "</form>";
281                                        }
282                }
283        ?>
284</table>
285
286<?php
287printNextBox(getMLText("add_access"));
288?>
289
290<form action="../op/op.FolderAccess.php" name="form1" onsubmit="return checkForm();">
291        <input type="Hidden" name="folderid" value="<?php print $folderid?>">
292        <input type="Hidden" name="action" value="addaccess">
293        <table>
294        <tr>
295                <td class="inputDescription"><?php printMLText("user");?>:</td>
296                <td>
297                        <select name="userid">
298                                <option value="none"><?php printMLText("select_one");?>
299                                <option value="none">-------------------------------
300                                <?php
301                                        foreach ($allUsers as $userObj)
302                                        {
303                                                if ($userObj->getID() == $settings->_guestID)
304                                                        continue;
305                                                print "<option value=\"".$userObj->getID()."\">" . $userObj->getFullName() . "\n";
306                                        }
307                                ?>
308                        </select>
309                </td>
310        </tr>
311        <tr>
312                <td class="inputDescription"><?php printMLText("group");?>:</td>
313                <td>
314                        <select name="groupid">
315                                <option value="none"><?php printMLText("select_one");?>
316                                <option value="none">-------------------------------
317                                <?php
318                                        foreach ($allGroups as $groupObj)
319                                                print "<option value=\"".$groupObj->getID()."\">" . $groupObj->getName() . "\n";
320                                ?>
321                        </select>
322                </td>
323        </tr>
324        <tr>
325                <td class="inputDescription"><?php printMLText("access_mode");?>:</td>
326                <td>
327                        <?php
328                                printAccessModeSelection(M_READ);
329                        ?>
330                </td>
331        </tr>
332        <tr>
333                <td colspan="2"><br><input type="Submit"></td>
334        </tr>
335</table>
336</form>
337
338<?php
339
340printEndBox();
341
342
343printFolderPageEnd($folder);
344
345}
346printHTMLFoot();
347?>
Note: See TracBrowser for help on using the repository browser.