Esempio n. 1
0
        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));
            }
        }