Skip to content

Commit

Permalink
fix: fix CRUD
Browse files Browse the repository at this point in the history
  • Loading branch information
kharkevich committed Apr 8, 2024
1 parent 5cd63cb commit e7fd44a
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 39 deletions.
36 changes: 15 additions & 21 deletions mlflow_oidc_auth/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,12 @@
_logger = logging.getLogger(__name__)


def _get_experiment_id(request_data: dict) -> str:
experiment_id = request_data.get("experiment_id")
if "experiment_id" not in request_data:
experiment_id = mlflow_client.get_experiment_by_name(request_data.get("experiment_name")).experiment_id
return experiment_id

def _get_request_param(param: str) -> str:
if request.method == "GET":
args = request.args
Expand Down Expand Up @@ -208,16 +214,12 @@ def make_basic_auth_response() -> Response:

def create_experiment_permission():
request_data = request.get_json()
# Get the experiment
experiment = mlflow_client.get_experiment_by_name(request_data.get("experiment_name"))

# # Update the experiment
store.create_experiment_permission(
experiment.experiment_id,
_get_experiment_id(request_data),
request_data.get("user_name"),
request_data.get("new_permission"),
)
return "Experiment permission has been created."
return jsonify({"message": "Experiment permission has been created."})


# Experiment views
Expand Down Expand Up @@ -517,29 +519,21 @@ def _password_generation():

def update_experiment_permission():
request_data = request.get_json()
# Get the experiment
experiment_id = request_data.get("experiment_id", mlflow_client.get_experiment_by_name(request_data.get("experiment_name")).experiment_id)

# # Update the experiment
store.update_experiment_permission(
experiment_id,
_get_experiment_id(request_data),
request_data.get("user_name"),
request_data.get("new_permission"),
)
return "Experiment permission has been changed."
return jsonify({"message": "Experiment permission has been changed."})


def delete_experiment_permission():
request_data = request.get_json()
# Get the experiment
experiment = mlflow_client.get_experiment_by_name(request_data.get("experiment_name"))

# # Update the experiment
store.delete_experiment_permission(
experiment.experiment_id,
_get_experiment_id(request_data),
request_data.get("user_name"),
)
return "Experiment permission has been deleted."
return jsonify({"message": "Experiment permission has been deleted."})


def create_model_permission():
Expand All @@ -550,7 +544,7 @@ def create_model_permission():
request_data.get("user_name"),
request_data.get("new_permission"),
)
return "Model permission has been created."
return jsonify({"message": "Model permission has been created."})


def get_model_permission():
Expand All @@ -571,7 +565,7 @@ def update_model_permission():
request_data.get("user_name"),
request_data.get("new_permission"),
)
return "Model permission has been changed."
return jsonify({"message": "Model permission has been changed."})


def delete_model_permission():
Expand All @@ -581,4 +575,4 @@ def delete_model_permission():
request_data.get("model_name"),
request_data.get("user_name"),
)
return "Model permission has been deleted."
return jsonify({"message": "Model permission has been deleted."})
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ export class ExperimentPermissionDetailsComponent implements OnInit {
.afterClosed()
.pipe(
switchMap((data) => this.permissionDataService.updateExperimentPermission({
user_name: data.name,
user_name: event.username,
experiment_id: this.experimentId,
new_permission: data.permission,
}) )
}))
)
.subscribe((data) => {
console.log(data)
Expand All @@ -83,7 +83,8 @@ export class ExperimentPermissionDetailsComponent implements OnInit {
}

revokePermissionForUser(item: any) {
this.permissionDataService.updateExperimentPermission(item.username)
this.permissionDataService.deleteExperimentPermission(
{ experiment_id: this.experimentId, user_name: item.username })
.subscribe(console.log);
}

Expand All @@ -94,7 +95,7 @@ export class ExperimentPermissionDetailsComponent implements OnInit {
{ data: { users } })
.afterClosed()),
filter(Boolean),
switchMap(({ user, permission }) => this.permissionDataService.updateExperimentPermission({
switchMap(({ user, permission }) => this.permissionDataService.createExperimentPermission({
experiment_id: this.experimentId,
new_permission: permission,
user_name: user,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ export class ModelPermissionDetailsComponent implements OnInit {
}

revokePermissionForUser(item: any) {
this.permissionDataService.deleteModelPermission(item.id)
this.permissionDataService.deleteModelPermission(
{ model_name: this.modelId, user_name: item.username }
)
.subscribe(console.log);
}

Expand Down Expand Up @@ -102,9 +104,9 @@ export class ModelPermissionDetailsComponent implements OnInit {
{ data: { users } })
.afterClosed()),
filter(Boolean),
switchMap(({ user }) => this.permissionDataService.updateModelPermission({
switchMap(({ user, permission }) => this.permissionDataService.createModelPermission({
model_name: this.modelId,
new_permission: 'edit',
new_permission: permission,
user_name: user,
})),
switchMap(() => this.loadUsersForModel(this.modelId)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export class UserPermissionDetailsComponent implements OnInit {
entities: models.map(({ name }) => name),
userName: this.userId,
}
}).afterClosed()
}).afterClosed()
),
filter(Boolean),
switchMap(({ entity, permission, user }) => this.permissionDataService.createModelPermission({
Expand All @@ -77,11 +77,10 @@ export class UserPermissionDetailsComponent implements OnInit {
entities: experiments.map(({ name }) => name),
userName: this.userId,
}
}).afterClosed()
}).afterClosed()
),
filter(Boolean),
switchMap(({ entity, permission, user }) => {
debugger
return this.permissionDataService.createExperimentPermission({
user_name: this.userId,
experiment_name: entity,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export interface CreateExperimentPermissionRequestBodyModel {
experiment_name: string;
experiment_name?: string;
experiment_id?: string;
user_name: string;
new_permission: string;
}
Expand Down
18 changes: 11 additions & 7 deletions web-ui/src/app/shared/services/data/permission-data.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,24 @@ export class PermissionDataService {
return this.http.post(API_URL.CREATE_EXPERIMENT_PERMISSION, body, { responseType: 'text' });
}

updateExperimentPermission(body: { user_name: string, experiment_id: string, new_permission: string }) {
return this.http.post(API_URL.UPDATE_EXPERIMENT_PERMISSION, body, { responseType: 'text' });
}

deleteExperimentPermission(body: { experiment_id: string, user_name: string }) {
return this.http.post(API_URL.DELETE_EXPERIMENT_PERMISSION, body, { responseType: 'text' });
}

createModelPermission(body: CreateModelPermissionRequestBodyModel) {
return this.http.post(API_URL.CREATE_MODEL_PERMISSION, body);
}

updateModelPermission(body: { user_name: string, model_name: string, new_permission: string }) {
return this.http.post(API_URL.UPDATE_MODEL_PERMISSION, body, {responseType: 'text'});
}

updateExperimentPermission(body: { user_name: string, experiment_id: string, new_permission: string }) {
return this.http.post(API_URL.UPDATE_EXPERIMENT_PERMISSION, body, { responseType: 'text' });
return this.http.post(API_URL.UPDATE_MODEL_PERMISSION, body, { responseType: 'text' });
}

deleteModelPermission(body: any) {
return this.http.post(API_URL.DELETE_EXPERIMENT_PERMISSION, body);
deleteModelPermission(body: { model_name: string, user_name: string }) {
return this.http.post(API_URL.DELETE_MODEL_PERMISSION, body, { responseType: 'text' });
}

}

0 comments on commit e7fd44a

Please sign in to comment.