internal static bool IsActionAccessible(string actionCode, out BackendAction action) { using (new QPConnectionScope()) { action = BackendActionRepository.GetByCode(actionCode); if (action == null) { throw new ApplicationException($"Action is not found: {actionCode}"); } if (QPContext.IsAdmin) { return(true); } var actionType = BackendActionTypeRepository.GetById(action.TypeId); if (actionType == null) { throw new ApplicationException($"Action Type is not found: {action.TypeId}"); } var userPLevel = GetActionPermissionLevelForUser(action, QPContext.CurrentUserId); if (userPLevel == null) { return(false); } return(userPLevel >= actionType.RequiredPermissionLevel); } }
void MakeRequest(BackendTarget target, BackendAction action, HttpListenerContext context, Dictionary <string, string> parameters, string response, int provider) { var evArgs = new ProviderRequestEventArgs(); evArgs.Context = context; evArgs.Parameters = parameters; evArgs.Action = action; evArgs.Provider = provider; switch (target) { case BackendTarget.Playlist: evArgs.Response = response; PlayListRequest?.Invoke(this, evArgs); break; case BackendTarget.Epg: evArgs.Response = response; EPGRequest?.Invoke(this, evArgs); break; case BackendTarget.Channel: evArgs.Response = response; ChannelRequest?.Invoke(this, evArgs); break; case BackendTarget.WebSite: case BackendTarget.Unknown: default: break; } }
public void MakeResponse(int provider, string response, BackendAction action, Dictionary <string, string> parameters, HttpListenerContext context) { var evArgs = new ChannelProviderResponseEventArgs(); evArgs.Provider = provider; evArgs.Action = action; evArgs.Response = response; evArgs.context = context; evArgs.Parameters = parameters; ChannelProviderResponse?.Invoke(this, evArgs); }
private static int?GetActionPermissionLevelForUser(BackendAction action, int userId) { using (var scope = new QPConnectionScope()) { var row = Common.GetActionPermissionsForUser(QPContext.EFContext, scope.DbConnection, userId, action.EntityTypeId, action.Id).FirstOrDefault(); if (row != null && !row.IsNull("PERMISSION_LEVEL")) { return(Converter.ToInt32(row.Field <decimal>("PERMISSION_LEVEL"))); } return(null); } }
public bool IsActionAccessible(string actionCode, out BackendAction action) => SecurityRepository.IsActionAccessible(actionCode, out action);