1 package org.apache.archiva.security;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import org.apache.archiva.admin.model.beans.ManagedRepository;
23
24 import java.util.List;
25
26 /**
27 * UserRepositories
28 *
29 *
30 */
31 public interface UserRepositories
32 {
33 /**
34 * Get the list of observable repository ids for the user specified.
35 *
36 * @param principal the principle to obtain the observable repository ids from.
37 * @return the list of observable repository ids.
38 * @throws PrincipalNotFoundException
39 * @throws AccessDeniedException
40 * @throws ArchivaSecurityException
41 */
42 List<String> getObservableRepositoryIds( String principal )
43 throws PrincipalNotFoundException, AccessDeniedException, ArchivaSecurityException;
44
45 /**
46 * Get the list of writable repository ids for the user specified.
47 *
48 * @param principal the principle to obtain the observable repository ids from.
49 * @return the list of observable repository ids.
50 * @throws PrincipalNotFoundException
51 * @throws AccessDeniedException
52 * @throws ArchivaSecurityException
53 */
54 List<String> getManagableRepositoryIds( String principal )
55 throws PrincipalNotFoundException, AccessDeniedException, ArchivaSecurityException;
56
57 /**
58 * Create any missing repository roles for the provided repository id.
59 *
60 * @param repoId the repository id to work off of.
61 * @throws ArchivaSecurityException if there was a problem creating the repository roles.
62 */
63 void createMissingRepositoryRoles( String repoId )
64 throws ArchivaSecurityException;
65
66 /**
67 * Check if user is authorized to upload artifacts in the repository.
68 *
69 * @param principal
70 * @param repoId
71 * @return
72 * @throws PrincipalNotFoundException
73 * @throws ArchivaSecurityException
74 */
75 boolean isAuthorizedToUploadArtifacts( String principal, String repoId)
76 throws PrincipalNotFoundException, ArchivaSecurityException;
77
78 /**
79 * Check if user is authorized to delete artifacts in the repository.
80 *
81 * @param principal
82 * @param repoId
83 * @return
84 * @throws ArchivaSecurityException
85 * @throws AccessDeniedException
86 */
87 boolean isAuthorizedToDeleteArtifacts( String principal, String repoId )
88 throws AccessDeniedException, ArchivaSecurityException;
89
90 /**
91 *
92 * @param principal
93 * @since 1.4-M3
94 * @return
95 * @throws ArchivaSecurityException
96 * @throws AccessDeniedException
97 * @throws PrincipalNotFoundException
98 */
99 List<ManagedRepository> getAccessibleRepositories( String principal )
100 throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException;
101
102 /**
103 *
104 * Returns a list of repositories for which the user has the manager role.
105 *
106 * @param principal
107 * @since 2.2.2
108 * @return
109 * @throws ArchivaSecurityException
110 * @throws AccessDeniedException
111 * @throws PrincipalNotFoundException
112 */
113 List<ManagedRepository> getManagableRepositories( String principal )
114 throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException;
115
116 }