public static bool is_authorized_to_handle_jurisdiction_id ( System.Security.Claims.ClaimsPrincipal p_claims_principal, ResourceRightEnum p_resource_action, mmria.common.model.couchdb.user_role_jurisdiction p_user_role_jurisdiction ) { bool result = false; var jurisdiction_hashset = mmria.server.util.authorization.get_current_jurisdiction_id_set_for(p_claims_principal); foreach (var jurisdiction_item in jurisdiction_hashset) { var regex = new System.Text.RegularExpressions.Regex("^" + jurisdiction_item.jurisdiction_id); if (p_user_role_jurisdiction.jurisdiction_id != null && regex.IsMatch(p_user_role_jurisdiction.jurisdiction_id) && p_resource_action == jurisdiction_item.ResourceRight ) { result = true; break; } } return(result); }
public async System.Threading.Tasks.Task <mmria.common.model.couchdb.document_put_response> Post ( [FromBody] mmria.common.model.couchdb.user_role_jurisdiction user_role_jurisdiction ) { string user_role_jurisdiction_json; mmria.common.model.couchdb.document_put_response result = new mmria.common.model.couchdb.document_put_response(); try { if (!mmria.server.util.authorization_user.is_authorized_to_handle_jurisdiction_id(User, mmria.server.util.ResourceRightEnum.WriteUser, user_role_jurisdiction)) { return(null); } Newtonsoft.Json.JsonSerializerSettings settings = new Newtonsoft.Json.JsonSerializerSettings(); settings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore; user_role_jurisdiction_json = Newtonsoft.Json.JsonConvert.SerializeObject(user_role_jurisdiction, settings); string jurisdiction_tree_url = Program.config_couchdb_url + "/jurisdiction/" + user_role_jurisdiction._id; cURL document_curl = new cURL("PUT", null, jurisdiction_tree_url, user_role_jurisdiction_json, Program.config_timer_user_name, Program.config_timer_password); try { string responseFromServer = await document_curl.executeAsync(); result = Newtonsoft.Json.JsonConvert.DeserializeObject <mmria.common.model.couchdb.document_put_response>(responseFromServer); } catch (Exception ex) { Log.Information($"jurisdiction_treeController:{ex}"); } if (!result.ok) { } } catch (Exception ex) { Log.Information($"{ex}"); } return(result); }