source: contrib/Dms/op/op.FolderAccess.php @ 3526

Revision 3526, 4.5 KB checked in by afernandes, 13 years ago (diff)

Ticket #1416 - Disponibilizado modulos Timesheet e DMS 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");
13include("../inc/inc.Authentication.php");
14
15$folderid       = isset($_GET['folderid']) ? (int) $_GET['folderid'] : NULL;
16
17$userid         = isset($_GET['userid']) ? (int) $_GET['userid'] : NULL;
18$groupid        = isset($_GET['groupid']) ? (int) $_GET['groupid'] : NULL;
19
20$action         = $_GET['action'];
21$mode           = $_GET['mode'];
22
23$ownerid        = isset($_GET['ownerid']) ? (int) $_GET['ownerid'] : NULL;
24
25$folder = getFolder($folderid);
26
27printHTMLHead( getMLText("folder_title", array("foldername" => $folder->getName()) ) );
28printTitleBar($folder);
29printCenterStart();
30
31printStartBox(getMLText("edit_folder_access"));
32
33print "<div class=\"standardText\">";
34
35
36if ($folder->getAccessMode($user) < M_ALL)
37{
38        printMLText("operation_not_allowed");
39        printGoBack();
40}
41else
42{
43        //Ändern des Besitzers ----------------------------------------------------------------------------
44        if ($action == "setowner")
45        {
46                if (!$user->isAdmin())
47                        die("Only an Administrator may set a new owner");
48                $newOwner = getUser($ownerid);
49                printMLText("setting_owner");
50               
51                $folder->setOwner($newOwner);
52        }
53
54        //Änderung auf nicht erben ------------------------------------------------------------------------
55        else if ($action == "notinherit")
56        {
57                if ($mode == "copy")
58                        printMLText("folder_set_not_inherit_copy");
59                else
60                        printMLText("folder_set_not_inherit_empty");
61               
62                $defAccess = $folder->getDefaultAccess();
63                $folder->setInheritAccess(false);
64                $folder->setDefaultAccess($defAccess);
65               
66                if ($mode == "copy")
67                {
68                        $parent = $folder->getParent();
69                        $accessList = $parent->getAccessList();
70                       
71                        foreach ($accessList["users"] as $userAccess)
72                                $folder->addAccess($userAccess->getMode(), $userAccess->getUserID(), true);
73                        foreach ($accessList["groups"] as $groupAccess)
74                                $folder->addAccess($groupAccess->getMode(), $groupAccess->getGroupID(), false);
75                }
76        }
77
78        //Änderung auf erben ------------------------------------------------------------------------------
79        else if ($action == "inherit")
80        {
81                printMLText("folder_set_inherit");
82               
83                $folder->clearAccessList();
84                $folder->setInheritAccess(true);
85        }
86
87        //Standardberechtigung setzen----------------------------------------------------------------------
88        else if ($action == "setdefault")
89        {
90                if (!is_numeric($mode))
91                        die ("invalid access mode");
92                       
93                printMLText("folder_set_default_access");
94                $folder->setDefaultAccess($mode);
95        }
96
97        //Bestehende Berechtigung änndern -----------------------------------------------------------------
98        else if ($action == "editaccess")
99        {
100                printMLText("folder_edit_access");
101               
102                if (!is_numeric($mode))
103                        die ("invalid access mode");
104               
105                if (isset($userid)) {
106                        if (!is_numeric($userid))
107                                die ("invalid user id");
108                        $folder->changeAccess($mode, $userid, true);
109                }
110                else if (isset($groupid)) {
111                        if (!is_numeric($groupid))
112                                die ("invalid group id");
113                        $folder->changeAccess($mode, $groupid, false);
114                }
115        }
116
117        //Berechtigung löschen ----------------------------------------------------------------------------
118        else if ($action == "delaccess")
119        {
120                printMLText("folder_del_access");
121                if (isset($userid)) {
122                        if (!is_numeric($userid))
123                                die ("invalid user id");
124                        $folder->removeAccess($userid, true);
125                }
126                else if (isset($groupid)) {
127                        if (!is_numeric($groupid))
128                                die ("invalid group id");
129                        $folder->removeAccess($groupid, false);
130                }
131        }
132
133        //Neue Berechtigung hinzufügen --------------------------------------------------------------------
134        else if ($action == "addaccess")
135        {
136                printMLText("folder_add_access");
137               
138                if (!is_numeric($mode))
139                        die ("invalid access mode");
140               
141                if ($userid != 'none') {
142                        if (!is_numeric($userid))
143                                die ("invalid user id");
144                        $folder->addAccess($mode, $userid, true);
145                }
146                if ($groupid != 'none') {
147                        if (!is_numeric($groupid))
148                                die ("invalid group id");
149                        $folder->addAccess($mode, $groupid, false);
150                }
151        }
152       
153        printMLText("op_finished");
154        printGoto(array(array($folder->getName(), "../out/out.ViewFolder.php?folderid=".$folder->getID()),
155                                array(getMLText("folder_access_again"), "../out/out.FolderAccess.php?folderid=".$folder->getID())));
156}
157
158
159
160print "</div>";
161printEndBox();
162printCenterEnd();
163printHTMLFoot();
164?>
Note: See TracBrowser for help on using the repository browser.