mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-01 11:05:56 +01:00
renaming: name to repoName if repo name is meant; usage of create loading
This commit is contained in:
@@ -8,7 +8,8 @@ import { SubmitButton } from "../../components/buttons";
|
||||
|
||||
type Props = {
|
||||
t: string => string,
|
||||
createPermission: (permission: Permission) => void
|
||||
createPermission: (permission: Permission) => void,
|
||||
loading: boolean
|
||||
};
|
||||
|
||||
type State = {
|
||||
@@ -29,7 +30,7 @@ class CreatePermissionForm extends React.Component<Props, State> {
|
||||
}
|
||||
|
||||
render() {
|
||||
const { t } = this.props;
|
||||
const { t, loading } = this.props;
|
||||
const { name, type, groupPermission } = this.state;
|
||||
|
||||
return (
|
||||
@@ -71,6 +72,7 @@ class CreatePermissionForm extends React.Component<Props, State> {
|
||||
<SubmitButton
|
||||
label={t("add-permission.submit-button")}
|
||||
action={this.submit}
|
||||
loading={loading}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -8,13 +8,13 @@ import { DeleteButton } from "../../../components/buttons/index";
|
||||
type Props = {
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
confirmDialog?: boolean,
|
||||
t: string => string,
|
||||
deletePermission: (
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
) => void,
|
||||
loading: boolean
|
||||
};
|
||||
@@ -28,7 +28,7 @@ class DeletePermissionButton extends React.Component<Props> {
|
||||
this.props.deletePermission(
|
||||
this.props.permission,
|
||||
this.props.namespace,
|
||||
this.props.name
|
||||
this.props.repoName
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ import {
|
||||
isFetchPermissionsPending,
|
||||
getPermissionsOfRepo,
|
||||
hasCreatePermission,
|
||||
createPermission
|
||||
createPermission,
|
||||
isCreatePermissionPending
|
||||
} from "../modules/permissions";
|
||||
import Loading from "../../components/Loading";
|
||||
import ErrorPage from "../../components/ErrorPage";
|
||||
@@ -18,18 +19,19 @@ import CreatePermissionForm from "../components/CreatePermissionForm";
|
||||
|
||||
type Props = {
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
loading: boolean,
|
||||
error: Error,
|
||||
permissions: PermissionCollection,
|
||||
createPermission: boolean,
|
||||
hasPermissionToCreate: boolean,
|
||||
loadingCreatePermission: boolean,
|
||||
|
||||
//dispatch functions
|
||||
fetchPermissions: (namespace: string, name: string) => void,
|
||||
fetchPermissions: (namespace: string, repoName: string) => void,
|
||||
createPermission: (
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
) => void,
|
||||
|
||||
// context props
|
||||
@@ -39,9 +41,9 @@ type Props = {
|
||||
|
||||
class Permissions extends React.Component<Props> {
|
||||
componentDidMount() {
|
||||
const { fetchPermissions, namespace, name } = this.props;
|
||||
const { fetchPermissions, namespace, repoName } = this.props;
|
||||
|
||||
fetchPermissions(namespace, name);
|
||||
fetchPermissions(namespace, repoName);
|
||||
}
|
||||
|
||||
render() {
|
||||
@@ -51,8 +53,9 @@ class Permissions extends React.Component<Props> {
|
||||
permissions,
|
||||
t,
|
||||
namespace,
|
||||
name,
|
||||
createPermission
|
||||
repoName,
|
||||
loadingCreatePermission,
|
||||
hasPermissionToCreate
|
||||
} = this.props;
|
||||
|
||||
if (error) {
|
||||
@@ -69,11 +72,12 @@ class Permissions extends React.Component<Props> {
|
||||
return <Loading />;
|
||||
}
|
||||
|
||||
const createPermissionForm = createPermission ? (
|
||||
const createPermissionForm = hasPermissionToCreate ? (
|
||||
<CreatePermissionForm
|
||||
createPermission={permission =>
|
||||
this.props.createPermission(permission, namespace, name)
|
||||
this.props.createPermission(permission, namespace, repoName)
|
||||
}
|
||||
loading={loadingCreatePermission}
|
||||
/>
|
||||
) : null;
|
||||
|
||||
@@ -94,7 +98,7 @@ class Permissions extends React.Component<Props> {
|
||||
<SinglePermission
|
||||
key={index}
|
||||
namespace={namespace}
|
||||
name={name}
|
||||
repoName={repoName}
|
||||
permission={permission}
|
||||
/>
|
||||
);
|
||||
@@ -111,33 +115,39 @@ class Permissions extends React.Component<Props> {
|
||||
|
||||
const mapStateToProps = (state, ownProps) => {
|
||||
const namespace = ownProps.namespace;
|
||||
const name = ownProps.name;
|
||||
const error = getFetchPermissionsFailure(state, namespace, name);
|
||||
const loading = isFetchPermissionsPending(state, namespace, name);
|
||||
const permissions = getPermissionsOfRepo(state, namespace, name);
|
||||
const repoName = ownProps.repoName;
|
||||
const error = getFetchPermissionsFailure(state, namespace, repoName);
|
||||
const loading = isFetchPermissionsPending(state, namespace, repoName);
|
||||
const permissions = getPermissionsOfRepo(state, namespace, repoName);
|
||||
const loadingCreatePermission = isCreatePermissionPending(
|
||||
state,
|
||||
namespace,
|
||||
repoName
|
||||
);
|
||||
console.log(permissions);
|
||||
const createPermission = hasCreatePermission(state, namespace, name);
|
||||
const hasPermissionToCreate = hasCreatePermission(state, namespace, repoName);
|
||||
return {
|
||||
namespace,
|
||||
name,
|
||||
repoName,
|
||||
error,
|
||||
loading,
|
||||
permissions,
|
||||
createPermission
|
||||
hasPermissionToCreate,
|
||||
loadingCreatePermission
|
||||
};
|
||||
};
|
||||
|
||||
const mapDispatchToProps = dispatch => {
|
||||
return {
|
||||
fetchPermissions: (namespace: string, name: string) => {
|
||||
dispatch(fetchPermissions(namespace, name));
|
||||
fetchPermissions: (namespace: string, repoName: string) => {
|
||||
dispatch(fetchPermissions(namespace, repoName));
|
||||
},
|
||||
createPermission: (
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
) => {
|
||||
dispatch(createPermission(permission, namespace, name));
|
||||
dispatch(createPermission(permission, namespace, repoName));
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -3,7 +3,6 @@ import React from "react";
|
||||
import type { Permission } from "../types/Permissions";
|
||||
import { Checkbox } from "../../components/forms/index";
|
||||
import { translate } from "react-i18next";
|
||||
import { Select } from "../../components/forms/index";
|
||||
import {
|
||||
modifyPermission,
|
||||
isModifyPermissionPending,
|
||||
@@ -26,7 +25,7 @@ type Props = {
|
||||
permission: Permission,
|
||||
t: string => string,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
match: any,
|
||||
history: History,
|
||||
loading: boolean,
|
||||
@@ -58,7 +57,7 @@ class SinglePermission extends React.Component<Props, State> {
|
||||
const { permission } = this.props;
|
||||
this.props.permissionReset(
|
||||
this.props.namespace,
|
||||
this.props.name,
|
||||
this.props.repoName,
|
||||
permission.name
|
||||
);
|
||||
if (permission) {
|
||||
@@ -77,15 +76,13 @@ class SinglePermission extends React.Component<Props, State> {
|
||||
this.props.deletePermission(
|
||||
this.props.permission,
|
||||
this.props.namespace,
|
||||
this.props.name
|
||||
this.props.repoName
|
||||
);
|
||||
};
|
||||
|
||||
render() {
|
||||
const { permission } = this.state;
|
||||
const { t, loading, error, namespace, name } = this.props;
|
||||
const types = ["READ", "OWNER", "WRITE"];
|
||||
|
||||
const { loading, error, namespace, repoName } = this.props;
|
||||
const typeSelector = this.props.permission._links.update ? (
|
||||
<td>
|
||||
<TypeSelector
|
||||
@@ -113,7 +110,7 @@ class SinglePermission extends React.Component<Props, State> {
|
||||
<DeletePermissionButton
|
||||
permission={permission}
|
||||
namespace={namespace}
|
||||
name={name}
|
||||
repoName={repoName}
|
||||
deletePermission={this.deletePermission}
|
||||
loading={this.props.deleteLoading}
|
||||
/>
|
||||
@@ -139,7 +136,7 @@ class SinglePermission extends React.Component<Props, State> {
|
||||
this.props.modifyPermission(
|
||||
permission,
|
||||
this.props.namespace,
|
||||
this.props.name
|
||||
this.props.repoName
|
||||
);
|
||||
};
|
||||
|
||||
@@ -159,26 +156,26 @@ const mapStateToProps = (state, ownProps) => {
|
||||
const loading = isModifyPermissionPending(
|
||||
state,
|
||||
ownProps.namespace,
|
||||
ownProps.name,
|
||||
ownProps.repoName,
|
||||
permission.name
|
||||
);
|
||||
const error =
|
||||
getModifyPermissionFailure(
|
||||
state,
|
||||
ownProps.namespace,
|
||||
ownProps.name,
|
||||
ownProps.repoName,
|
||||
permission.name
|
||||
) ||
|
||||
getDeletePermissionFailure(
|
||||
state,
|
||||
ownProps.namespace,
|
||||
ownProps.name,
|
||||
ownProps.repoName,
|
||||
permission.name
|
||||
);
|
||||
const deleteLoading = isDeletePermissionPending(
|
||||
state,
|
||||
ownProps.namespace,
|
||||
ownProps.name,
|
||||
ownProps.repoName,
|
||||
permission.name
|
||||
);
|
||||
|
||||
@@ -190,23 +187,23 @@ const mapDispatchToProps = dispatch => {
|
||||
modifyPermission: (
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
) => {
|
||||
dispatch(modifyPermission(permission, namespace, name));
|
||||
dispatch(modifyPermission(permission, namespace, repoName));
|
||||
},
|
||||
permissionReset: (
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
permissionname: string
|
||||
) => {
|
||||
dispatch(modifyPermissionReset(namespace, name, permissionname));
|
||||
dispatch(modifyPermissionReset(namespace, repoName, permissionname));
|
||||
},
|
||||
deletePermission: (
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
) => {
|
||||
dispatch(deletePermission(permission, namespace, name));
|
||||
dispatch(deletePermission(permission, namespace, repoName));
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -57,60 +57,60 @@ const CONTENT_TYPE = "application/vnd.scmm-permission+json";
|
||||
|
||||
// fetch permissions
|
||||
|
||||
export function fetchPermissions(namespace: string, name: string) {
|
||||
export function fetchPermissions(namespace: string, repoName: string) {
|
||||
return function(dispatch: any) {
|
||||
dispatch(fetchPermissionsPending(namespace, name));
|
||||
dispatch(fetchPermissionsPending(namespace, repoName));
|
||||
return apiClient
|
||||
.get(`${REPOS_URL}/${namespace}/${name}/${PERMISSIONS_URL}`)
|
||||
.get(`${REPOS_URL}/${namespace}/${repoName}/${PERMISSIONS_URL}`)
|
||||
.then(response => response.json())
|
||||
.then(permissions => {
|
||||
dispatch(fetchPermissionsSuccess(permissions, namespace, name));
|
||||
dispatch(fetchPermissionsSuccess(permissions, namespace, repoName));
|
||||
})
|
||||
.catch(err => {
|
||||
dispatch(fetchPermissionsFailure(namespace, name, err));
|
||||
dispatch(fetchPermissionsFailure(namespace, repoName, err));
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchPermissionsPending(
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: FETCH_PERMISSIONS_PENDING,
|
||||
payload: {
|
||||
namespace,
|
||||
name
|
||||
repoName
|
||||
},
|
||||
itemId: namespace + "/" + name
|
||||
itemId: namespace + "/" + repoName
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchPermissionsSuccess(
|
||||
permissions: any,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: FETCH_PERMISSIONS_SUCCESS,
|
||||
payload: permissions,
|
||||
itemId: namespace + "/" + name
|
||||
itemId: namespace + "/" + repoName
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchPermissionsFailure(
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
error: Error
|
||||
): Action {
|
||||
return {
|
||||
type: FETCH_PERMISSIONS_FAILURE,
|
||||
payload: {
|
||||
namespace,
|
||||
name,
|
||||
repoName,
|
||||
error
|
||||
},
|
||||
itemId: namespace + "/" + name
|
||||
itemId: namespace + "/" + repoName
|
||||
};
|
||||
}
|
||||
|
||||
@@ -119,15 +119,15 @@ export function fetchPermissionsFailure(
|
||||
export function modifyPermission(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
callback?: () => void
|
||||
) {
|
||||
return function(dispatch: any) {
|
||||
dispatch(modifyPermissionPending(permission, namespace, name));
|
||||
dispatch(modifyPermissionPending(permission, namespace, repoName));
|
||||
return apiClient
|
||||
.put(permission._links.update.href, permission, CONTENT_TYPE)
|
||||
.then(() => {
|
||||
dispatch(modifyPermissionSuccess(permission, namespace, name));
|
||||
dispatch(modifyPermissionSuccess(permission, namespace, repoName));
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
@@ -136,7 +136,7 @@ export function modifyPermission(
|
||||
const error = new Error(
|
||||
`failed to modify permission: ${cause.message}`
|
||||
);
|
||||
dispatch(modifyPermissionFailure(permission, error, namespace, name));
|
||||
dispatch(modifyPermissionFailure(permission, error, namespace, repoName));
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -144,27 +144,27 @@ export function modifyPermission(
|
||||
export function modifyPermissionPending(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: MODIFY_PERMISSION_PENDING,
|
||||
payload: permission,
|
||||
itemId: namespace + "/" + name + "/" + permission.name
|
||||
itemId: namespace + "/" + repoName + "/" + permission.name
|
||||
};
|
||||
}
|
||||
|
||||
export function modifyPermissionSuccess(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: MODIFY_PERMISSION_SUCCESS,
|
||||
payload: {
|
||||
permission,
|
||||
position: namespace + "/" + name
|
||||
position: namespace + "/" + repoName
|
||||
},
|
||||
itemId: namespace + "/" + name + "/" + permission.name
|
||||
itemId: namespace + "/" + repoName + "/" + permission.name
|
||||
};
|
||||
}
|
||||
|
||||
@@ -172,12 +172,12 @@ export function modifyPermissionFailure(
|
||||
permission: Permission,
|
||||
error: Error,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: MODIFY_PERMISSION_FAILURE,
|
||||
payload: { error, permission },
|
||||
itemId: namespace + "/" + name + "/" + permission.name
|
||||
itemId: namespace + "/" + repoName + "/" + permission.name
|
||||
};
|
||||
}
|
||||
|
||||
@@ -195,12 +195,12 @@ function newPermissions(
|
||||
|
||||
export function modifyPermissionReset(
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
permissionname: string
|
||||
) {
|
||||
return {
|
||||
type: MODIFY_PERMISSION_RESET,
|
||||
itemId: namespace + "/" + name + "/" + permissionname
|
||||
itemId: namespace + "/" + repoName + "/" + permissionname
|
||||
};
|
||||
}
|
||||
|
||||
@@ -208,19 +208,19 @@ export function modifyPermissionReset(
|
||||
export function createPermission(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
callback?: () => void
|
||||
) {
|
||||
return function(dispatch: Dispatch) {
|
||||
dispatch(createPermissionPending(permission, namespace, name));
|
||||
dispatch(createPermissionPending(permission, namespace, repoName));
|
||||
return apiClient
|
||||
.post(
|
||||
`${REPOS_URL}/${namespace}/${name}/${PERMISSIONS_URL}`,
|
||||
`${REPOS_URL}/${namespace}/${repoName}/${PERMISSIONS_URL}`,
|
||||
permission,
|
||||
CONTENT_TYPE
|
||||
)
|
||||
.then(() => {
|
||||
dispatch(createPermissionSuccess(permission, namespace, name));
|
||||
dispatch(createPermissionSuccess(permission, namespace, repoName));
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
@@ -232,7 +232,7 @@ export function createPermission(
|
||||
`failed to add permission ${permission.name}: ${err.message}`
|
||||
),
|
||||
namespace,
|
||||
name
|
||||
repoName
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -242,39 +242,39 @@ export function createPermission(
|
||||
export function createPermissionPending(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: CREATE_PERMISSION_PENDING,
|
||||
payload: permission,
|
||||
itemId: namespace + "/" + name
|
||||
itemId: namespace + "/" + repoName
|
||||
};
|
||||
}
|
||||
|
||||
export function createPermissionSuccess(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: CREATE_PERMISSION_SUCCESS,
|
||||
payload: {
|
||||
permission,
|
||||
position: namespace + "/" + name
|
||||
position: namespace + "/" + repoName
|
||||
},
|
||||
itemId: namespace + "/" + name
|
||||
itemId: namespace + "/" + repoName
|
||||
};
|
||||
}
|
||||
|
||||
export function createPermissionFailure(
|
||||
error: Error,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: CREATE_PERMISSION_FAILURE,
|
||||
payload: error,
|
||||
itemId: namespace + "/" + name
|
||||
itemId: namespace + "/" + repoName
|
||||
};
|
||||
}
|
||||
|
||||
@@ -283,15 +283,15 @@ export function createPermissionFailure(
|
||||
export function deletePermission(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
callback?: () => void
|
||||
) {
|
||||
return function(dispatch: any) {
|
||||
dispatch(deletePermissionPending(permission, namespace, name));
|
||||
dispatch(deletePermissionPending(permission, namespace, repoName));
|
||||
return apiClient
|
||||
.delete(permission._links.delete.href)
|
||||
.then(() => {
|
||||
dispatch(deletePermissionSuccess(permission, namespace, name));
|
||||
dispatch(deletePermissionSuccess(permission, namespace, repoName));
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
@@ -300,7 +300,7 @@ export function deletePermission(
|
||||
const error = new Error(
|
||||
`could not delete permission ${permission.name}: ${cause.message}`
|
||||
);
|
||||
dispatch(deletePermissionFailure(permission, namespace, name, error));
|
||||
dispatch(deletePermissionFailure(permission, namespace, repoName, error));
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -308,34 +308,34 @@ export function deletePermission(
|
||||
export function deletePermissionPending(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: DELETE_PERMISSION_PENDING,
|
||||
payload: permission,
|
||||
itemId: namespace + "/" + name + "/" + permission.name
|
||||
itemId: namespace + "/" + repoName + "/" + permission.name
|
||||
};
|
||||
}
|
||||
|
||||
export function deletePermissionSuccess(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
): Action {
|
||||
return {
|
||||
type: DELETE_PERMISSION_SUCCESS,
|
||||
payload: {
|
||||
permission,
|
||||
position: namespace + "/" + name
|
||||
position: namespace + "/" + repoName
|
||||
},
|
||||
itemId: namespace + "/" + name + "/" + permission.name
|
||||
itemId: namespace + "/" + repoName + "/" + permission.name
|
||||
};
|
||||
}
|
||||
|
||||
export function deletePermissionFailure(
|
||||
permission: Permission,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
error: Error
|
||||
): Action {
|
||||
return {
|
||||
@@ -344,7 +344,7 @@ export function deletePermissionFailure(
|
||||
error,
|
||||
permission
|
||||
},
|
||||
itemId: namespace + "/" + name + "/" + permission.name
|
||||
itemId: namespace + "/" + repoName + "/" + permission.name
|
||||
};
|
||||
}
|
||||
|
||||
@@ -425,10 +425,10 @@ export default function reducer(
|
||||
export function getPermissionsOfRepo(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
) {
|
||||
if (state.permissions && state.permissions[namespace + "/" + name]) {
|
||||
const permissions = state.permissions[namespace + "/" + name].entries;
|
||||
if (state.permissions && state.permissions[namespace + "/" + repoName]) {
|
||||
const permissions = state.permissions[namespace + "/" + repoName].entries;
|
||||
return permissions;
|
||||
}
|
||||
}
|
||||
@@ -436,77 +436,100 @@ export function getPermissionsOfRepo(
|
||||
export function isFetchPermissionsPending(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
) {
|
||||
return isPending(state, FETCH_PERMISSIONS, namespace + "/" + name);
|
||||
return isPending(state, FETCH_PERMISSIONS, namespace + "/" + repoName);
|
||||
}
|
||||
|
||||
export function getFetchPermissionsFailure(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
) {
|
||||
return getFailure(state, FETCH_PERMISSIONS, namespace + "/" + name);
|
||||
return getFailure(state, FETCH_PERMISSIONS, namespace + "/" + repoName);
|
||||
}
|
||||
|
||||
export function isModifyPermissionPending(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
permissionname: string
|
||||
) {
|
||||
return isPending(
|
||||
state,
|
||||
MODIFY_PERMISSION,
|
||||
namespace + "/" + name + "/" + permissionname
|
||||
namespace + "/" + repoName + "/" + permissionname
|
||||
);
|
||||
}
|
||||
|
||||
export function getModifyPermissionFailure(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
permissionname: string
|
||||
) {
|
||||
return getFailure(
|
||||
state,
|
||||
MODIFY_PERMISSION,
|
||||
namespace + "/" + name + "/" + permissionname
|
||||
namespace + "/" + repoName + "/" + permissionname
|
||||
);
|
||||
}
|
||||
|
||||
export function hasCreatePermission(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
name: string
|
||||
repoName: string
|
||||
) {
|
||||
if (state.permissions && state.permissions[namespace + "/" + name])
|
||||
return state.permissions[namespace + "/" + name].createPermission;
|
||||
if (state.permissions && state.permissions[namespace + "/" + repoName])
|
||||
return state.permissions[namespace + "/" + repoName].createPermission;
|
||||
else return null;
|
||||
}
|
||||
|
||||
export function isCreatePermissionPending(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
repoName: string
|
||||
) {
|
||||
return isPending(
|
||||
state,
|
||||
CREATE_PERMISSION,
|
||||
namespace + "/" + repoName
|
||||
);
|
||||
}
|
||||
export function getCreatePermissionFailure(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
repoName: string
|
||||
) {
|
||||
return getFailure(
|
||||
state,
|
||||
CREATE_PERMISSION,
|
||||
namespace + "/" + repoName
|
||||
);
|
||||
}
|
||||
|
||||
export function isDeletePermissionPending(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
permissionname: string
|
||||
) {
|
||||
return isPending(
|
||||
state,
|
||||
DELETE_PERMISSION,
|
||||
namespace + "/" + name + "/" + permissionname
|
||||
namespace + "/" + repoName + "/" + permissionname
|
||||
);
|
||||
}
|
||||
|
||||
export function getDeletePermissionFailure(
|
||||
state: Object,
|
||||
namespace: string,
|
||||
name: string,
|
||||
repoName: string,
|
||||
permissionname: string
|
||||
) {
|
||||
return getFailure(
|
||||
state,
|
||||
DELETE_PERMISSION,
|
||||
namespace + "/" + name + "/" + permissionname
|
||||
namespace + "/" + repoName + "/" + permissionname
|
||||
);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,10 @@ import reducer, {
|
||||
DELETE_PERMISSION_PENDING,
|
||||
DELETE_PERMISSION_SUCCESS,
|
||||
DELETE_PERMISSION_FAILURE,
|
||||
createPermissionSuccess
|
||||
CREATE_PERMISSION,
|
||||
createPermissionSuccess,
|
||||
getCreatePermissionFailure,
|
||||
isCreatePermissionPending
|
||||
} from "./permissions";
|
||||
import type { Permission, PermissionCollection } from "../types/Permissions";
|
||||
|
||||
@@ -113,7 +116,7 @@ describe("permission fetch", () => {
|
||||
type: FETCH_PERMISSIONS_PENDING,
|
||||
payload: {
|
||||
namespace: "hitchhiker",
|
||||
name: "puzzle42"
|
||||
repoName: "puzzle42"
|
||||
},
|
||||
itemId: "hitchhiker/puzzle42"
|
||||
},
|
||||
@@ -636,4 +639,38 @@ describe("permissions selectors", () => {
|
||||
getDeletePermissionFailure({}, "hitchhiker", "puzzle42", "user_eins")
|
||||
).toBe(undefined);
|
||||
});
|
||||
|
||||
it("should return true, when create permission is pending", () => {
|
||||
const state = {
|
||||
pending: {
|
||||
[CREATE_PERMISSION + "/hitchhiker/puzzle42"]: true
|
||||
}
|
||||
};
|
||||
expect(isCreatePermissionPending(state, "hitchhiker", "puzzle42")).toEqual(
|
||||
true
|
||||
);
|
||||
});
|
||||
|
||||
it("should return false, when create permissions is not pending", () => {
|
||||
expect(isCreatePermissionPending({}, "hitchiker", "puzzle42")).toEqual(
|
||||
false
|
||||
);
|
||||
});
|
||||
|
||||
it("should return error when create permissions did fail", () => {
|
||||
const state = {
|
||||
failure: {
|
||||
[CREATE_PERMISSION + "/hitchhiker/puzzle42"]: error
|
||||
}
|
||||
};
|
||||
expect(getCreatePermissionFailure(state, "hitchhiker", "puzzle42")).toEqual(
|
||||
error
|
||||
);
|
||||
});
|
||||
|
||||
it("should return undefined when create permissions did not fail", () => {
|
||||
expect(getCreatePermissionFailure({}, "hitchhiker", "puzzle42")).toBe(
|
||||
undefined
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -104,7 +104,7 @@ class RepositoryRoot extends React.Component<Props> {
|
||||
component={() => (
|
||||
<Permissions
|
||||
namespace={repository.namespace}
|
||||
name={repository.name}
|
||||
repoName={repository.name}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user