<p>+1 this in core.<br>I maintain IMCE and it uses folder based quotation for users. It scans physical directories to get the file list. With this patch in core one can easily get the files of a user from DB and calculate quota. It would probably be faster than IMCE&#39;s current method. (or wouldn&#39;t it?)
</p>
<p>For a well organized file system directory, what completes this patch and what IMCE currently implements partially and will probably improve, is user(role)-folder associations.</p>
<p>Folders are assigned to user roles, each having its own permission for browsing, uploading, and other operations like deleting, renaming etc. <br>Folder names may contain tokens like %uid and %uname to allow more specialized/personalized directory structure. And a wildcard * can be used for specifying subfolders.
</p>
<p>an example for an admin role (full access to file directory path):<br>folder1: *<br>permissions: +upload, +browse(+all files, -own files), +delete(+all, -own)</p>
<p>an example for an editor role (a personal folder to upload + browsing access to other editors&#39; folders):<br>folder1: editors/%uname<br>permissions: +upload, +browse(+all, -own), +delete(+all, -own)<br>folder2: editors/*
<br>permissions: -upload, +browse(+all, -own), -delete</p>
<p>an example for auth. user role(upload to a shared folder, browse and delete own files)<br>folder1: userfiles<br>permissions: +upload, +browse(-all, +own), +delete(-all, +own)</p>
<p>Note: For limitations/permissions on quantitative values(e.g. user quota), role precedence setting becomes a necessity when a user has multiple roles. Will roles in D6 have weight attribute? Was this discussed anywhere?
</p>
<p><br>Then comes the file browser. It will probably have a UI like ftp clients. Users will only be able to see the folders to which they have browsing access.</p>
<p>To list files in a folder faster, it would be better to store filepath as separated into directory name(relative to file directory path) and the filename(as it is now). I think queries like &quot;SELECT ... WHERE dirname=&#39;foo&#39;&quot; will be faster than queries like &quot;SELECT ... WHERE filepath LIKE &#39;foo/&#39;&quot;.
</p>
<p>Besides that, it may end up where we maintain a folders table. This will be necessary to get subfolders of a folder without a physical folder scan or without a query that includes a regular expression. Think about getting subfolders of the file sytem directory by just using the current files table.
</p>
<p>Actually this resembles the taxonomy system where taxonomy terms are folders and nodes are files. We should implement a similar but simpler system in order to make the file system browsable by just querying the DB.</p>

<p>To conclude, i liked this patch and thank Darrel for all efforts.</p>
<p>(I would really want to test the patch througly and see the result of porting IMCE to the new system before code freeze. I don&#39;t know if i will have time but thanks to Nathan :)&nbsp;i&#39;m not alone anymore in this project.)
<br></p>