<HTML>
<BODY BGCOLOR="white">
<PRE>
<FONT color="green">001</FONT>    package org.apache.archiva.security;<a name="line.1"></a>
<FONT color="green">002</FONT>    <a name="line.2"></a>
<FONT color="green">003</FONT>    /*<a name="line.3"></a>
<FONT color="green">004</FONT>     * Licensed to the Apache Software Foundation (ASF) under one<a name="line.4"></a>
<FONT color="green">005</FONT>     * or more contributor license agreements.  See the NOTICE file<a name="line.5"></a>
<FONT color="green">006</FONT>     * distributed with this work for additional information<a name="line.6"></a>
<FONT color="green">007</FONT>     * regarding copyright ownership.  The ASF licenses this file<a name="line.7"></a>
<FONT color="green">008</FONT>     * to you under the Apache License, Version 2.0 (the<a name="line.8"></a>
<FONT color="green">009</FONT>     * "License"); you may not use this file except in compliance<a name="line.9"></a>
<FONT color="green">010</FONT>     * with the License.  You may obtain a copy of the License at<a name="line.10"></a>
<FONT color="green">011</FONT>     *<a name="line.11"></a>
<FONT color="green">012</FONT>     *  http://www.apache.org/licenses/LICENSE-2.0<a name="line.12"></a>
<FONT color="green">013</FONT>     *<a name="line.13"></a>
<FONT color="green">014</FONT>     * Unless required by applicable law or agreed to in writing,<a name="line.14"></a>
<FONT color="green">015</FONT>     * software distributed under the License is distributed on an<a name="line.15"></a>
<FONT color="green">016</FONT>     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY<a name="line.16"></a>
<FONT color="green">017</FONT>     * KIND, either express or implied.  See the License for the<a name="line.17"></a>
<FONT color="green">018</FONT>     * specific language governing permissions and limitations<a name="line.18"></a>
<FONT color="green">019</FONT>     * under the License.<a name="line.19"></a>
<FONT color="green">020</FONT>     */<a name="line.20"></a>
<FONT color="green">021</FONT>    <a name="line.21"></a>
<FONT color="green">022</FONT>    import org.apache.archiva.admin.model.beans.ManagedRepository;<a name="line.22"></a>
<FONT color="green">023</FONT>    <a name="line.23"></a>
<FONT color="green">024</FONT>    import java.util.List;<a name="line.24"></a>
<FONT color="green">025</FONT>    <a name="line.25"></a>
<FONT color="green">026</FONT>    /**<a name="line.26"></a>
<FONT color="green">027</FONT>     * UserRepositories <a name="line.27"></a>
<FONT color="green">028</FONT>     *<a name="line.28"></a>
<FONT color="green">029</FONT>     *<a name="line.29"></a>
<FONT color="green">030</FONT>     */<a name="line.30"></a>
<FONT color="green">031</FONT>    public interface UserRepositories<a name="line.31"></a>
<FONT color="green">032</FONT>    {<a name="line.32"></a>
<FONT color="green">033</FONT>        /**<a name="line.33"></a>
<FONT color="green">034</FONT>         * Get the list of observable repository ids for the user specified.<a name="line.34"></a>
<FONT color="green">035</FONT>         * <a name="line.35"></a>
<FONT color="green">036</FONT>         * @param principal the principle to obtain the observable repository ids from.<a name="line.36"></a>
<FONT color="green">037</FONT>         * @return the list of observable repository ids.<a name="line.37"></a>
<FONT color="green">038</FONT>         * @throws PrincipalNotFoundException<a name="line.38"></a>
<FONT color="green">039</FONT>         * @throws AccessDeniedException<a name="line.39"></a>
<FONT color="green">040</FONT>         * @throws ArchivaSecurityException<a name="line.40"></a>
<FONT color="green">041</FONT>         */<a name="line.41"></a>
<FONT color="green">042</FONT>        List&lt;String&gt; getObservableRepositoryIds( String principal )<a name="line.42"></a>
<FONT color="green">043</FONT>            throws PrincipalNotFoundException, AccessDeniedException, ArchivaSecurityException;<a name="line.43"></a>
<FONT color="green">044</FONT>        <a name="line.44"></a>
<FONT color="green">045</FONT>        /**<a name="line.45"></a>
<FONT color="green">046</FONT>         * Get the list of writable repository ids for the user specified.<a name="line.46"></a>
<FONT color="green">047</FONT>         * <a name="line.47"></a>
<FONT color="green">048</FONT>         * @param principal the principle to obtain the observable repository ids from.<a name="line.48"></a>
<FONT color="green">049</FONT>         * @return the list of observable repository ids.<a name="line.49"></a>
<FONT color="green">050</FONT>         * @throws PrincipalNotFoundException<a name="line.50"></a>
<FONT color="green">051</FONT>         * @throws AccessDeniedException<a name="line.51"></a>
<FONT color="green">052</FONT>         * @throws ArchivaSecurityException<a name="line.52"></a>
<FONT color="green">053</FONT>         */<a name="line.53"></a>
<FONT color="green">054</FONT>        List&lt;String&gt; getManagableRepositoryIds( String principal )<a name="line.54"></a>
<FONT color="green">055</FONT>            throws PrincipalNotFoundException, AccessDeniedException, ArchivaSecurityException;<a name="line.55"></a>
<FONT color="green">056</FONT>        <a name="line.56"></a>
<FONT color="green">057</FONT>        /**<a name="line.57"></a>
<FONT color="green">058</FONT>         * Create any missing repository roles for the provided repository id.<a name="line.58"></a>
<FONT color="green">059</FONT>         * <a name="line.59"></a>
<FONT color="green">060</FONT>         * @param repoId the repository id to work off of.<a name="line.60"></a>
<FONT color="green">061</FONT>         * @throws ArchivaSecurityException if there was a problem creating the repository roles.<a name="line.61"></a>
<FONT color="green">062</FONT>         */<a name="line.62"></a>
<FONT color="green">063</FONT>        void createMissingRepositoryRoles( String repoId )<a name="line.63"></a>
<FONT color="green">064</FONT>            throws ArchivaSecurityException;<a name="line.64"></a>
<FONT color="green">065</FONT>        <a name="line.65"></a>
<FONT color="green">066</FONT>        /**<a name="line.66"></a>
<FONT color="green">067</FONT>         * Check if user is authorized to upload artifacts in the repository.<a name="line.67"></a>
<FONT color="green">068</FONT>         * <a name="line.68"></a>
<FONT color="green">069</FONT>         * @param principal<a name="line.69"></a>
<FONT color="green">070</FONT>         * @param repoId<a name="line.70"></a>
<FONT color="green">071</FONT>         * @return<a name="line.71"></a>
<FONT color="green">072</FONT>         * @throws PrincipalNotFoundException<a name="line.72"></a>
<FONT color="green">073</FONT>         * @throws ArchivaSecurityException<a name="line.73"></a>
<FONT color="green">074</FONT>         */<a name="line.74"></a>
<FONT color="green">075</FONT>        boolean isAuthorizedToUploadArtifacts( String principal, String repoId)<a name="line.75"></a>
<FONT color="green">076</FONT>            throws PrincipalNotFoundException, ArchivaSecurityException;<a name="line.76"></a>
<FONT color="green">077</FONT>         <a name="line.77"></a>
<FONT color="green">078</FONT>        /**<a name="line.78"></a>
<FONT color="green">079</FONT>         * Check if user is authorized to delete artifacts in the repository.<a name="line.79"></a>
<FONT color="green">080</FONT>         * <a name="line.80"></a>
<FONT color="green">081</FONT>         * @param principal<a name="line.81"></a>
<FONT color="green">082</FONT>         * @param repoId<a name="line.82"></a>
<FONT color="green">083</FONT>         * @return<a name="line.83"></a>
<FONT color="green">084</FONT>         * @throws ArchivaSecurityException <a name="line.84"></a>
<FONT color="green">085</FONT>         * @throws AccessDeniedException <a name="line.85"></a>
<FONT color="green">086</FONT>         */<a name="line.86"></a>
<FONT color="green">087</FONT>        boolean isAuthorizedToDeleteArtifacts( String principal, String repoId )<a name="line.87"></a>
<FONT color="green">088</FONT>            throws AccessDeniedException, ArchivaSecurityException;<a name="line.88"></a>
<FONT color="green">089</FONT>    <a name="line.89"></a>
<FONT color="green">090</FONT>        /**<a name="line.90"></a>
<FONT color="green">091</FONT>         *<a name="line.91"></a>
<FONT color="green">092</FONT>         * @param principal<a name="line.92"></a>
<FONT color="green">093</FONT>         * @since 1.4-M3<a name="line.93"></a>
<FONT color="green">094</FONT>         * @return<a name="line.94"></a>
<FONT color="green">095</FONT>         * @throws ArchivaSecurityException<a name="line.95"></a>
<FONT color="green">096</FONT>         * @throws AccessDeniedException<a name="line.96"></a>
<FONT color="green">097</FONT>         * @throws PrincipalNotFoundException<a name="line.97"></a>
<FONT color="green">098</FONT>         */<a name="line.98"></a>
<FONT color="green">099</FONT>        List&lt;ManagedRepository&gt; getAccessibleRepositories( String principal )<a name="line.99"></a>
<FONT color="green">100</FONT>                throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException;<a name="line.100"></a>
<FONT color="green">101</FONT>        <a name="line.101"></a>
<FONT color="green">102</FONT>    }<a name="line.102"></a>




























































</PRE>
</BODY>
</HTML>