public ActionResult Save(Usuario model) { try{ var usuario = UserSession.Get(Request.HttpContext).Usuario; if (model.Cod_Comum == 0 || !usuario.Admin) { model.Cod_Comum = usuario.Cod_Comum; } //if(!model.Aluno && !model.Oficializado && !model.Instrutor) if (model.Cod_Usuario != 0 && !usuario.Admin && UsuarioComum.Find(model.Cod_Usuario, model.Cod_Comum) == null) { throw new Exception("Usuário não cadastrado nesta comum!"); } if (Usuario.EmailJaCadastrado(model.Email, model.Cod_Usuario)) { throw new Exception("Email já cadastrado!"); } char oper = model.Cod_Usuario == 0 ? 'C' : 'U'; model.Save(); Monitor.Add <Usuario>(HttpContext, oper, model.Nome); if (usuario.Dev || usuario.Admin || usuario.Instrutor) { UsuarioPermissao permissao = UsuarioPermissao.Find(model.Cod_Usuario); if (usuario.Dev) { permissao.Dev = model.Dev; } if (usuario.Admin) { permissao.Admin = model.Admin; //permissao.Cod_Comum = model.Cod_Comum; } if (usuario.Instrutor) { permissao.Instrutor = model.Instrutor; permissao.Oficializado = model.Oficializado; permissao.RJM = model.RJM; permissao.Aluno = model.Aluno; permissao.Ativo = model.Ativo; //permissao.Cod_Grupo = model.Cod_Grupo; } permissao.Update(); if (usuario.Instrutor) { UsuarioGrupo.UpdateGrupos(model.Cod_Usuario, model.Cod_Grupos); } } return(Json("ok")); } catch (Exception ex) { return(Json(ex.Message)); } }